ACCESSのSQL文でテーブルのデータを抽出する方法
- ACCESSのSQL文でテーブルのデータを抽出する方法について教えてください。
- SELECT文を使用してテーブルからデータを抽出する際、Like演算子を使った条件式の書き方について質問があります。
- Like演算子を使用して抽出したいデータを指定する際、正しく条件を指定する方法を教えてください。
- ベストアンサー
ACCESSのSQL文
ACCESSのSQL文 いつもお世話になります。 SQL文でテーブルのデータを抽出したいのですが上手くいきません。 Dim rs4 As ADODB.Recordset Dim cmdrs4 As New ADODB.Command Set cmdrs4.ActiveConnection = CurrentProject.Connection a = "SELECT 管理NO" & " FROM マスタ" If strFlter = "" Then a = a & ";" Else a = a & " WHERE " & strFlter & ";" End If cmdrs4.CommandText = a Set rs4 = cmdrs4.Execute() MsgBox rs4.GetString aの内容は a = "SELECT 管理NO FROM マスタ WHERE 管理NO Like ""*2*"";" 実行すると、rs4.GetString文で下記エラーが出ます。 「BOFとEOFのいづれかがTrueになっているか、または現在のレコードが削除されています。 要求された操作には、現在のレコードが必要です。」 aを "SELECT 管理NO FROM マスタ WHERE 管理NO = ""2-6"";" なら問題ありません。 Likeの使い方が悪いのでしょうか? よろしくお願いします。
- s_masasama
- お礼率53% (8/15)
- その他(データベース)
- 回答数1
- ありがとう数2
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
""*2*"";" ↓ ""%2%"";" では、どうでしょう。
関連するQ&A
- SQL文の最後に「;」はいらないのでしょうか?
VBAのADOについて質問です。 SQL文の最後には「;」を付けなくちゃいけないものだと思っているのですが ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ Private Sub test_Click() Dim CN As ADODB.Connection Dim RS As ADODB.Recordset Set CN = CurrentProject.Connection Set RS = New ADODB.Recordset SQL = "SELECT * FROM Tテーブル" ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ でも問題なくコードが動きました。 SQL文の最後に「;」はいらないのでしょうか? ちなみに SQL = "SELECT * FROM Tテーブル;" でもエラーになりませんでした。
- 締切済み
- Visual Basic
- ACCESS SQLで複数データ表示させるには?
*************************************************** Private Sub Form_Load() Dim cn As New ADODB.Connection Dim rs As New ADODB.Recordset Set cn = CurrentProject.Connection mySQL = "select * from テーブル" rs.Open mySQL, cn, adOpenForwardOnly, adLockOptimistic ’コントロールに代入 Me.No = rs![No] Me.項目 = rs![項目] ・・・ End Sub *************************************************** こんな感じで、クエリでなくSQLで フォームにテーブルの全レコードを表示させたい場合、 どのようにすればよいのでしょうか? 上の文には、何が不足しているのでしょうか? http://www.accessclub.jp/ado/09.html を見ましたが、解決できませんでした。
- ベストアンサー
- オフィス系ソフト
- Accessで、メモリを開放するタイミング
すみませんが、教えてください。 次のコードように、SQL命令を2回以上行う場合、メモリの開放は、最後だけでよいのでしょうか? これでも、一応動くのですが、メモリを余計に消費していないのかどうか、よく分かりません。 SUB SAMPLE() Dim CN As ADODB.Connection Dim RS As ADODB.Recordset Dim SQL As String '接続 Set CN = CurrentProject.Connection 'レコードセットを取得(1) Set RS = New ADODB.Recordset SQL = "SELECT COUNT(*) AS CNT FROM 生徒名簿 WHERE クラス = 'TS'" RS.Open SQL, CN, adOpenKeyset, adLockOptimistic Msgbox(CNT) 'レコードセットを取得(2) Set RS = New ADODB.Recordset SQL = "SELECT COUNT(*) AS CNT FROM 生徒名簿 WHERE クラス = 'WS'" RS.Open SQL, CN, adOpenKeyset, adLockOptimistic Msgbox(CNT) '終了 RS.Close: Set RS = Nothing CN.Close: Set CN = Nothing End Sub
- ベストアンサー
- その他(データベース)
- ACCESS VBA
ACCESSで検索フォームを作りたいと思っています。 VBAを使って行きたいと思うのですが、うまくいきません。 希望としては、該当するレコードのデータを抽出したいです。 よろしくお願いいたします。 ※現段階でのソースを書いてみました。 最終的に行いたい処理とは違うのですが、根本的に間違っているようなので簡略化しました。 /------------------------------------------------/ Private Sub コマンド1_Click() Dim cn As ADODB.Connection Dim rs As ADODB.Recordset Dim sql As String '接続 Set cn = CurrentProject.Connection 'レコードセットを取得 Set rs = New ADODB.Recordset sql = "SELECT * FROM 従業員データ " & _ "WHERE 年齢=30" rs.Open sql, cn, adOpenDynamic, adLockReadOnly rs.Close: Set rs = Nothing cn.Close: Set cn = Nothing End Sub /------------------------------------------------/
- ベストアンサー
- Visual Basic
- VBSの中で書くSQL文の記述方法
よろしくお願いします。 select * from db1 into id,password,date,name where db1_id = **** and db1_password = **** and db1_date = 99999999; (db1_id,db1_password,db1_dateがプライマリキー) db1という表からプライマリキーに該当したデータを取り出し、 変数に格納したいと思っています。 このSQL文をASPのVBSの中で実現する方法を教えてください。 <% Dim Conn,SQL,RS Dim id Dim password Dim date Dim name db1=server.mappath("db1.mdb") DBName="Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & db1 Set Conn = Server.CreateObject("ADODB.Connection") Conn.open DBName SQL = "select * from db1" INTO = "into id,password,date,name" WHERE = "where db1_id = **** and db1_password = **** _ and db1_date = 99999999" SQL = SQL & INTO & WHERE & ";" Set RS = Server.CreateObject("ADODB.Recordset") RS.Open SQL, Conn,3,3 %> これでうまくいくかな~と思ったのですが・・・。
- 締切済み
- Microsoft ASP
- ASP+アクセスでのSQLコメントについて
SQL文にコメントを入れたいのですが、下記エラーになります。下記コードでSQL文にコメント入れる方法を教えてください。 Microsoft JET Database Engine (0x80040E14) SQL ステートメントの後に文字が見つかりました。 SELECT * FROM sqltable where idnum like 'hoge';-- SELECT * FROM sqltable where idnum like 'hoge'--; を試して両方同じエラーでした。 Dim objCon Set objCon = Server.CreateObject("ADODB.Connection") objCon.Mode=1 objCon.ConnectionString = Server.MapPath("db1.mdb") objCon.Provider = "Microsoft.Jet.OLEDB.4.0" objCon.Open strSQL = "SELECT * FROM sqltable where idnum like 'hoge';--" SET result = objCon.Execute(strSQL) objCon.Close Set objCon = Nothing 環境は以下のようになります。 WinXP+IIS5+Access2003
- ベストアンサー
- Microsoft ASP
- MSFlexGridでデータの追加の方法は?
VB6.0 WINXP DB:Oracle10g よろしくお願いします。 SELECT文でデータベースからデータを取ってきてMSFlexGridにデータを送ったのですが、そのデータに更に追加したいと思います。 ' ADOのオブジェクト変数を宣言する Dim cn As New ADODB.Connection Dim rs As New ADODB.Recordset Dim STRSQL As String 'Oracleとの接続 cn.Open "Provider=MSDAORA;" & _ "Data Source=NT;", "scott", "tiger" ' SQLステートメントを指定してレコードセットを作成する re.Open STRSQL = "select * from TOKUI WHERE A01 = 100" rs.CursorLocation = adUseClient rs.Open STRSQL, cn, adOpenDynamic, adLockBatchOptimistic 'グリッドに送る Set MSFlexGrid1.DataSource = rs 'ここからのSELECT文を追加したいと思います。 STRSQL = "SELECT TOKUI FROM WHERE A01 = 200" Set rs = New ADODB.Recordset rs.CursorLocation = adUseClient rs.Open STRSQL, cn, adOpenDynamic, adLockBatchOptimistic よろしくお願いします。
- 締切済み
- Visual Basic
- SQLのINSERT文について
SQLのINSERT文について Accessを使用していて1列目が管理Noとなっています。 その時のレコード数を管理Noに指定したいのですがうまく行きません。 Insert Into TableA Values((Select Count(*) From TableA),'データ') 原因もしくは他の方法があればご教授お願いします。
- ベストアンサー
- その他(データベース)
- ExcelからAccessデータの抽出
部署内の機器管理にExcelを使用しています、今回レコード数がExcelでは対応できなくなりデータのみAccessに置いといてデータ処理はExcelマクロで行おうと思っています。 そのAccessファイルからある日付(または期間○日~△日まで等)岳のレコードを抽出したいと思っています。 ネットや書籍でいろいろ調べたのですがうまく抽出できません(SQL文がおかしいと思います)。ご教授お願いします(Access・SQLは全くの素人です) テーブル名は『4』です Sub Macro3() Dim objDB As New ADODB.Connection Dim RS As New ADODB.Recordset objDB.Open _ "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=" & "C:\aaa.mdb" With RS .ActiveConnection = objDB .Source = "SELECT * from 4 WHERE 日付<2009/04/15" .Open End With Range("A3").CopyFromRecordset RS objDB.Close Set objDB = Nothing End Sub
- ベストアンサー
- その他MS Office製品
- SQL文で
SQLのWHEREの条件文の中に、「(+)」というのがあるのですが、 どういう意味なのでしょうか? select * from Office WHERE a.Office_cd=b.Office_cd(+) といった感じですが。 よろしくお願いします。
- ベストアンサー
- Visual Basic
お礼
ありがとうございました。 感謝です!!! 出来ました。 何故%?って疑問も残りましたが・・・