当前位置: 首页 > 面试题库 >

转换为VBA时SELECT查询不起作用-无效的SQL语句

井嘉胜
2023-03-14
问题内容

转换为VBA时,我一直在努力处理SQL语句。基本上,我希望在执行之前向其中添加一些内容(这应该不是问题)。但是,当我尝试在更改之前运行它时,VBA不会将其识别为有效的SQL语句。尽管尝试添加/删除方括号和任何其他特殊字符,它仍然无法正常工作。请注意,它作为查询运行时效果很好。请查看下面的字符串:

SQLstr = "SELECT SourceData.[Fiscal Year], SourceData.[Fiscal Quarter ID], " _
& "SourceData.[Transaction Date], SourceData.[Sales Order Number], SourceData.[Activated?], " _
& "SourceData.[Product ID], SourceData.[Bookings Quantity], SourceData.[Term Length], " _
& "SourceData.[Estimated Expiring Quarter], SourceData.[End Customer Company Name], " _
& "SourceData.[Sold To Company Name] " _
& "FROM SourceData, finalCust, finalPart " _
& "WHERE (((SourceData.[End Customer Company Name]) Like finalCust.[FinalList]) " _
& "And ((SourceData.[Sold To Company Name]) Like finalPart.[FinalList]))"

代码是“纯” SQL到VBA中的代码,没有进行任何修改,但我不想误导。

这是一条错误消息:

Run-time error '2342':
A RunSQL action requires an argument consisting of an SQL statement.

我将其视为VBA的不可读SQL语句。


问题答案:

该错误消息具有误导性。真正的问题是,DoCmd.RunSQL是为“行动”的查询:UPDATE; INSERT; DELETE; 等等。

它不会接受普通SELECT查询。例如,这个简单的SELECT查询给了我同样的 “A RunSQL操作需要由一个SQL语句的参数”
消息来自DoCmd.RunSQL

Dim SQLstr As String
SQLstr = "SELECT * FROM tblFoo;"
DoCmd.RunSQL SQLstr

但是,DoCmd.RunSQL执行此有效UPDATE语句时不会出现错误:

SQLstr = "UPDATE tblFoo SET long_text='bar' WHERE id=1;"
DoCmd.RunSQL SQLstr

您需要使用其他方法来使用您的SELECT查询。方法的选择取决于您要对查询返回的结果执行的操作。



 类似资料:
  • 数据库: SQL查询 搜索 当我使用“Like”查询时,一切都正常,但是当我查找John时,它会显示John和Johnson的两个结果,因为它们是相似的。但当我搜索约翰时,它必须只显示约翰(而不是约翰逊)的结果。 到目前为止,我试过: 但它不起作用LogCat: 请给我一个提示。

  • 这是从下面提到的SQL查询创建的JPQl查询: “org.springframework.dao.invalidDataAccessResourceUsageException:无法提取ResultSet;SQL[n/a];嵌套异常为org.hibernate.exception.sqlgrammarexception:无法提取ResultSet” 请问上述例外情况我能做些什么?

  • 问题内容: 我有一个带下表的sqlite数据库: 两个示例记录如下所示: (大麦的球队输了,安娜的赢了。每场比赛每队都有几名球员。)我想创建一个查询,该查询将返回所有有x个玩家在一个团队而y个玩家在另一个团队的游戏,以及这些游戏的累积结果。游戏。 我知道如何使用perl和csv文件来执行此操作,并且我相信我可以对dbi接口使用相同的方法。但是,我想学习如何仅使用SQL查询来创建此报告。我是SQL的

  • 问题内容: 我想将以下SQL查询转换为Elasticsearch之一。谁能帮上忙 我尝试了以下方法: 但不确定我是否做对了,因为它无法验证结果。似乎要在聚合内添加查询。 问题答案: 假设您使用Elasticsearch 2.x,则有可能在Elasticsearch中 具有 -semantics。我不知道2.0之前的可能性。 您可以使用新的Pipeline Aggregation Bucket Se

  • 问题内容: 有很多问题可以帮助将特定的SQL查询转换为ActiveRecord查询。 是否有一些帮助/指导[在线]工具可以自动进行转换? 问题答案: 这是您正在寻找的工具:http : //www.scuttle.io/

  • 问题内容: 我正在使用查询从存储为GMT的Oracle DB获取一些应用程序的“接收日期”。现在,我必须在检索时将其转换为东部标准/夏令时。我为此使用以下查询: 它适合标准时间。但是,为了节省夏时制,我们需要根据时区信息将其转换为“ edt”。我不确定如何执行此操作。请帮帮我 问题答案: 您可以使用此查询,而不必担心时区更改。 前任: 美东时间: 美东时间: 更新: 感谢Alex Poole提醒您