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

解決


MIY  2004-10-29 05:38:40  No: 117254

過去ログを参照して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-29 06:30:18  No: 117255

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

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

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

では?

以上。


岡田 之仁  2004-10-29 06:31:41  No: 117256

訂正・・・

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

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

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

で正しい・・・

以上。


MIY  2004-10-29 06:33:42  No: 117257

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


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加