
はじめまして。よろしくお願いします
select文のwhere条件にidを指定したいのですがうまくいきません。
べつに変数を使用しなくてもよいのですが良い方法がありましたらご教授下さい
Private Sub コマンド8_Click()
Dim adoCON As ADODB.Connection
Dim adoRS As ADODB.Recordset
Dim no As interger
no=me.id
Set adoCON = Application.CurrentProject.Connection
Set adoRS=adoCON.Execute("select varcodeno from varcode_tbl where id=no")strName = adoRS!varcodeno
adoRS.Close
adoCON.Close
Set adoRS = Nothing
Set adoCON = Nothing
Me.jancode.Value = strName
End Sub
No.1ベストアンサー
- 回答日時:
>Set adoRS=adoCON.Execute("select varcodeno from varcode_tbl where id=no")
idのタイプが数値だと
Set adoRS=adoCON.Execute("select varcodeno from varcode_tbl where id=" & no)
文字列だと
Set adoRS=adoCON.Execute("select varcodeno from varcode_tbl where id='" & no & "'")
にしたらOK。
No.4
- 回答日時:
SQL文は文字列です。
実行する直前までに、正しく文字列が編集されておればよい。不変の文字列の部分と「可変になる場合が多い条件の文字列」を&でくっつけます。その際条件部分が文字列か数値か注意する。MsgboxでSQL文を作った変数を表示してみれば、期待通りになっているか判ります。
No.3
- 回答日時:
私ならば、次のような書き方をします。
×"id=Me.id"
○"id=" & Me.id
は、単なる初歩的なミスですので二度としないと思いますよ!
Private Sub コマンド8_Click()
Me.jancode.Value = DBLookup("varcodeno", "varcode_tbl", "id=" & Me.id)
End Sub
Public Function DBLookup(ByVal strField As String, _
ByVal strTable As String, _
Optional ByVal strWhere As String = "", _
Optional ByVal ReturnValue = Null) As Variant
On Error GoTo Err_DBLookup
Dim DataValue
Dim strQuerySQL As String
Dim rst As ADODB.Recordset
Set rst = New ADODB.Recordset
strQuerySQL = "SELECT " & strField & " FROM " & strTable
If Len(strWhere) > 0 Then
strQuerySQL = strQuerySQL & " WHERE " & strWhere
End If
With rst
.Open strQuerySQL, _
CurrentProject.Connection, _
adOpenStatic, _
adLockReadOnly
If Not .BOF Then
.MoveFirst
DataValue = .Fields(0)
End If
End With
Exit_DBLookup:
On Error Resume Next
rst.Close
Set rst = Nothing
DBLookup = Nz(DataValue, ReturnValue)
Exit Function
Err_DBLookup:
MsgBox "SELECT 文の実行時にエラーが発生しました。(DBLookup)" & Chr$(13) & Chr$(13) & _
"・Err.Description=" & Err.Description & Chr$(13) & _
"・SQL Text=" & strQuerySQL, _
vbExclamation, " 関数エラーメッセージ"
Resume Exit_DBLookup
End Function
No.2
- 回答日時:
Set adoRS=adoCON.Execute("select varcodeno from varcode_tbl where id = " & no)
とか、
変数id を使わなくとも
Set adoRS=adoCON.Execute("select varcodeno from varcode_tbl where id = " & me!id)
では?
あと、no は Access の予約語なので変更したほうが宜しいかと。
http://support.microsoft.com/default.aspx?scid=k …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ExcelからAccessのテーブルに書き込む時に時間がかかる 1 2022/10/14 20:38
- Access(アクセス) 実行時エラー3131 FROM 句の構文エラーです について 7 2022/06/13 15:45
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
- Access(アクセス) アクセス テーブルの空白を変数に置換するボタンが作りたい 4 2022/07/08 11:19
- Visual Basic(VBA) 【追加】ファイルを閉じてダイアログで保存した時だけ処理の実行をする 3 2022/03/23 15:43
- Visual Basic(VBA) Accessフォームで全レコードを指定のExcelのセルへ転送し印刷する方法について 2 2022/09/08 18:23
- Visual Basic(VBA) シフト表のコマで「ブロック」されている前の時間の「出」を同一列の「休」と入れ替えたいがふぇきません。 2 2023/08/02 18:49
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Visual Basic(VBA) VBAが止まります。 3 2022/08/31 14:09
- Access(アクセス) アクセス where句を使用して複数条件抽出をするには 2 2022/08/29 13:24
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
テーブル作成について質問があ...
-
SQLiteでご教示願います。
-
参照先に値が無い場合空欄にす...
-
この場合の賢いSQL文は?
-
PHP+MySQLで文が正しいのに実行...
-
PHP/MySQL INSERT文について。
-
mySQLのカラムの並び順によるデ...
-
SELECT クエリーの OR の使い方...
-
DDLのインポート方法
-
UPDATE文のエラー直せますでし...
-
特定の範囲のデータを削除するには
-
テーブルが5つの時の結合の仕...
-
エクセルで最後の文字だけ置き...
-
mysqlのインデックスについて質...
-
2つのテーブルを連結させる方法
-
2つの関連するテーブルの並び替え
-
レコードAとBが等しい場合にupd...
-
SQL文を教えてください
-
複数のテーブルからのデータ抽出
-
カラムを好きな順で並び替え(...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで最後の文字だけ置き...
-
エクセルの関数について教えて...
-
select文のwhere句に配列を入れ...
-
VIEWの元のテーブルのindexって...
-
エラー 1068 (42000): 複数の主...
-
SQLにて特定の文字を除いた検索...
-
【Transact-sql】 execの結果を...
-
マイクラPC版のコマンドで効率...
-
SQL Left Join で重複を排除す...
-
sqlで、600行あるテーブルを100...
-
複数テーブルのGROUP BY の使い...
-
WordpressのContact form 7でzi...
-
クエリ表示と、ADOで抽出したレ...
-
SQLサーバから、項目の属性(型...
-
selectした大量データをinsert...
-
Access パラメータクエリをcsv...
-
副問合せの書き方について
-
inner joinをすると数がおかし...
-
insertを高速化させたい
-
[MySQL] 3つのテーブルの結合で...
おすすめ情報