我正在尝试将.mbd文件中的一些数据导入Excel。 我可以将整个数据库复制到电子表格中,没问题。 我也可以使用像这样的声明
sSQL = "SELECT HOEHE " & "FROM h_datei WHERE HOEHE >= 53 "
在类型不是int或float的字段上使用WHERE时会出现问题。 (我没有MS Access,但是MDB Plus告诉我.mdb中文本字段的类型被称为' Widestring')
我在Excel的MsgBox中得到了这个: 运行时错误' -2147217913(80040e07)': 自动化错误
我一直在谷歌上搜索和修补,但我被卡住了。 Under是我的VBA代码。 我不知道这是否与提供商(Microsoft.ACE.OLEDB.12.0)有关,但我尝试过其他一些。 我也在考虑unicode,因为这个数据库来自德国的测量计划。
sConnect = "Provider=Microsoft.ACE.OLEDB.12.0;" & "Data Source=" & _
sPath & "Oskarb04.mdb"
sSQL = "SELECT HOEHE " & "FROM h_datei WHERE PNR >= 53 "
Set rsData = New ADODB.Recordset
Debug.Print sSQL
rsData.Open sSQL, sConnect, adOpenForwardOnly, adLockReadOnly, adCmdUnknown
答案 0 :(得分:0)
对于字符串比较,您通常会使用'Like'运算符,例如
SELECT column1, column2, ...
FROM table_name
WHERE columnN LIKE pattern;
您可以将其与Wildcards结合使用以获得部分匹配。该链接的一个例子:
要获得完全匹配,您可以使用"="
SELECT column1, column2, ...
FROM table_name
WHERE columnN = 'myString';
如果像">="
之类的东西在字符串字段上工作,那么我怀疑字段设置不正确,我猜测不熟悉有问题的软件,和/或,可以执行隐式转换导致性能开销并且易于破坏。
如果它是一个unicode字符串,快速Google似乎暗示widestring
数据类型是,那么
WHERE columnN = N'myString'
如果不能,您可以尝试将列强制转换为其他类型,例如
StrConv(PNR,128) = '309'