Access (VBA)

Access VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 7 Professional : Access 2013)
SQLについて
投稿日時: 17/04/17 14:38:42
投稿者: KEN1120

VBAを使ってレコードを呼び出して、画面に表示しています。
下記のコードを記入しましたが
型が一致しませんとエラーが発生しています。
多分、単純なミスだと思うのですがわかりませrん。
誰か教えてください。
 
※日付は日付/時刻型です
※IDは文字列です
 
Set GetTbl = myDB.OpenRecordset("select * from テーブル名 WHERE 日付= #" & Me![日付] & "#" And "ID='" & Me![ID] & "'")
 
よろしくお願いします

回答
投稿日時: 17/04/17 14:59:18
投稿者: Suzu

[quote="KEN1120"型が一致しませんとエラーが発生しています。
 
Set GetTbl = myDB.OpenRecordset(・・・[/quote]
 
・GetTbl の データ型は何でしょうか。
    OpenRecordset で返されるのは、Recordset オブジェクトです。
    GetTblは、同じ Recordset 型になっていますか?
 
・"select * from テーブル名 WHERE 日付= #" & Me![日付] & "#" And "ID='" & Me![ID] & "'"
                                                              ↑
                                                     「AND」 が 文字列の外に出ています。
                                             SQLとして、渡されず、VBA内で
                                             AND演算子 として評価されています。
 
  "select * from テーブル名 WHERE 日付= #" & Me![日付] & "# And ID='" & Me![ID] & "'"

回答
投稿日時: 17/04/17 15:03:10
投稿者: Suzu

SQLもそうですが、コードの途中途中や、確認が必要になりうる変数は
きちんと変数 で受けた方が、ローカルウィンドウで確認できますので検証等が楽です。
 
 
Dim myDB As DAO.Database
Dim GetTbl As DAO.Recordset
 
Dim mySQL As String
 
strSQL = "select * from テーブル名 WHERE 日付= #" & Me![日付] & "# And ID='" & Me![4ID] & "'"
Set GetTbl = myDB.OpenRecordset(strSQL)

投稿日時: 17/04/17 16:31:41
投稿者: KEN1120

有り難うございました。
解決しました。