過去ログを参照してExcelから特定のデータを抜き出す方法を試してみたのですが、うまくいきません。今やろうとしているのはIDと名前という列があって、ユーザが入力したID(String型)からそれに合ったデータを抜き出そうというものです。しかし実行すると、パラメータが少なすぎます。1を指定してくださいと出ます。VB6,Windows XPを使っています。知っている方いましたらどうかよろしくお願いします。
Private Sub cmdHDRYES_Click()
Dim ws As DAO.Workspace
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim strXLSName As String
Dim strSQL As String
Dim searchNum As String
strXLSName = App.Path & "\Book1.xls"
searchNum = 12'仮に12としました
Set ws = DBEngine.Workspaces(0)
Set db = ws.OpenDatabase(strXLSName, False, False, "EXCEL 8.0;HDR=YES;")
'strSQL = "Select * From [Sheet1$] "
strSQL = "SELECT * FROM [Sheet1$] WHERE [ID] = searchNum"
Set rs = db.OpenRecordset(strSQL, dbOpenDynaset)
私はDAOではなく、ADOでやってますが・・・
因みに、SQL文のところおかしいです。
strSQL = "SELECT * FROM [Sheet1$] WHERE [ID] = searchNum"
ただしくは・・・
strSQL = "SELECT * FROM [Sheet1$] WHERE [ID] = " & CStr(searchNum)
では?
以上。
訂正・・・
strSQL = "SELECT * FROM [Sheet1$] WHERE [ID] = searchNum"
の、searchNum って、String宣言だったので・・・
searchNum = "12"
strSQL = "SELECT * FROM [Sheet1$] WHERE [ID] = " & searchNum
で正しい・・・
以上。
ありがとうございましたとても助かりました。これで丸1日悩んでいたんですが、本当に初歩的なエラーですみませんでした。
ツイート | ![]() |