ExcelからSQLを使ってデータを抽出する

解決


MIY  2004-10-28 20:38:40  No: 117254  IP: [192.*.*.*]

過去ログを参照して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)

編集 削除
岡田 之仁  2004-10-28 21:30:18  No: 117255  IP: [192.*.*.*]

私はDAOではなく、ADOでやってますが・・・
因みに、SQL文のところおかしいです。

strSQL = "SELECT * FROM [Sheet1$] WHERE [ID] = searchNum"

ただしくは・・・
strSQL = "SELECT * FROM [Sheet1$] WHERE [ID] = " & CStr(searchNum)

では?

以上。

編集 削除
岡田 之仁  2004-10-28 21:31:41  No: 117256  IP: [192.*.*.*]

訂正・・・

strSQL = "SELECT * FROM [Sheet1$] WHERE [ID] = searchNum"

の、searchNum って、String宣言だったので・・・

searchNum = "12"
strSQL = "SELECT * FROM [Sheet1$] WHERE [ID] = " & searchNum

で正しい・・・

以上。

編集 削除
MIY  2004-10-28 21:33:42  No: 117257  IP: [192.*.*.*]

ありがとうございましたとても助かりました。これで丸1日悩んでいたんですが、本当に初歩的なエラーですみませんでした。

編集 削除