vba - 插入查询/选择查询在访问中有效,但在 vba 中无效
问题描述
我创建了一个在 Access 中运行良好且没有错误的查询,并且在尝试将其转换为我的 vba 设置时,我无法弄清楚为什么我没有得到任何值,即使该查询在 access 中显然有效,并且不会导致VBA 端的错误。
在这里拉我的头发,我创建了一个边桌,看看我是否可以“伪插入”计算值,但我遇到了与上面相同的问题 - 插入工作没有访问错误,在 vba 中通过没有问题,但实际上并没有插入任何数据。
我在暂停代码时复制了字符串查询,以确保所有内容都在有效的 Access 查询和 VBA 查询之间匹配,并且没有发现任何差异。
我在某处读到,因为我试图提取“第一行”数据片段,可能有一些我可以更改的 HDR 设置,但是当我尝试应用任何修复时,我发现他们打开了另一个 excel 实例并打开了一个对话框。
请让我知道我在这里做错了什么。
Public Function PullNextLineItemNumB(QuoteNum) As Integer
Dim strQuery As String
Dim ConnDB As New ADODB.Connection
Dim myRecordset As ADODB.Recordset
Dim QuoteModifiedNum As String
ConnDB.Open ConnectionString:="Provider = Microsoft.ACE.OLEDB.12.0; data
source=" & ThisWorkbook.Path & "\OEE Info.accdb"
'Query to try and make Access dump the value "18" into the table so I can
grab it after the query is finished, sidestepping excel not working
strQuery = "INSERT INTO TempTableColm (TempColm) SELECT
MAX(MID([Quote_Number_Line],InStr(1,[Quote_Number_Line]," & Chr(34) & "-"
& Chr(34) & ")+1)) AS MaxNum from UnifiedQuoteLog where Quote_Number_Line
like '" & QuoteNum & "*'"
ConnDB.Execute strQuery
'Original query, returns "18" as expected in Access, and null or empty in
the recordset
strQuery = "SELECT MAX(MID([Quote_Number_Line],InStr(1,
[Quote_Number_Line]," & Chr(34) & "-" & Chr(34) & ")+1)) from
UnifiedQuoteLog where Quote_Number_Line like '" & QuoteNum & "*'"
Set myRecordset = ConnDB.Execute(strQuery)
Do Until myRecordset.EOF
For Each fld In myRecordset.Fields
Debug.Print fld.Name & "=" & fld.Value
Next fld
myRecordset.MoveNext
Loop
myRecordset.Close
Set myRecordset = Nothing
ConnDB.Close
Set ConnDB = Nothing
End Function
访问的实际输出为“18”,这是预期的,excel 的 vba 记录集的输出始终为 null 或空字符串。
解决方案
看来我解决了这个问题,而显然使用 ADODB 访问的 excel 运算符是 % for LIKE 而不是 * (因为原因)。一旦我做出改变,一切就开始工作了。
有人可以解释为什么会这样吗?我真的很想了解为什么这是一个设计选择。
推荐阅读
- amazon-web-services - AWS Kinesis Firehose 是否在数据传输期间提供完整性控制?
- docker - 如何在 docker 中部署带有静态文件的 Web 应用程序?
- python - 无法弄清楚为什么 PyDub 不起作用
- linux - 如何识别正在使用此端口的应用程序(lsof / fuser 没有帮助)?
- php - PhpStorm 将使用的 CSS 选择器标记为未使用
- linux - 如果符号链接是可执行的,文件是否暴露?
- npm - npm 错误!node-sass@4.14.1 安装:`node scripts/install.js`
- yaml - YAML 错误:需要流结束或文档分隔符
- keycloak - keycloak - 为每个租户/帐户赋予用户不同的权限
- ios - 如何将 MLKit Vision3DPoint 转换为 UV 坐标