軟體:Excel + Sqlite3 版本:Excel 2013, Sqlite3 各位板上的大大下午好,我在用VBA連線sqlite查詢的時候得到的結果只有第一筆。 可是在DB Browser上同樣的指令可以找出所有的資料。 而且神奇的是,我用單步執行還可以印出一筆資料。但是如果直接按按鈕,只會得到 欄位名稱,沒有結果。 可否請大大指導發生什麼事? 我的資料內容如下範例 模號 品名 G001 5678 G002 5678 G003 5678 G004 2125 G005 1388 G006 7758 G007 7758 G023 150 G024 150 我的畫面如下圖 https://imgur.com/Gy4ghAj 照理說,查詢品名150會查到G023跟G024這兩個模號,可是結果卻只出現一筆。 我用DB Browser的查詢結果 https://imgur.com/1fy3r2i 我的程式碼如下: Private Sub ItemAndDieInquiry_Click() Dim search_command As String If ([B1].Value <> "") And ([B2].Value <> "") Then MsgBox "請只填要查詢的欄位" Exit Sub ElseIf [B1].Value <> "" Then MsgBox "將為您查詢模號" search_command = "select * from 品名對模號 where 品名=" & [B1].Value & ";" sql_data_inquiry search_command Else MsgBox "將為您查詢品號" search_command = "select * from 品名對模號 where 模號=" & [B2].Value & ";" End If End Sub Sub sql_data_inquiry(search_command As String) Dim cn, rs, f Set cn = CreateObject("adodb.connection") '開啟sqlite指定資料庫,路徑與檔案名稱要對 cn.Open ("Driver={SQLite3 ODBC Driver};database=C:\DSDMS\SQL\DMS.db") '寫出SQL查詢語法 Set rs = cn.Execute(search_command) For f = 0 To rs.Fields.Count - 1 ActiveSheet.Cells(10, f + 1).Value = rs.Fields(f).Name Next ActiveSheet.Cells(11, 1).CopyFromRecordset (rs) cn.Close End Sub 煩請撥冗解惑,感謝。