软件: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
烦请拨冗解惑,感谢。