SQL 中连接的字符串变量(以访问数据库),由于引号引起的语法错误?

2023-12-26

我有 2 个列表框,定义了 2 个需要通过 SQL 语句传递给 OpenRecordSet 的变量。

传送带_ID是访问表名
Width是表Conveyor_ID中的字段名称
行宽是字段宽度中的字符串值

Dim db As DAO.Database
Dim rs As DAO.Recordset
Const DbLoc As String = "DB location info"


Dim Conveyor_ID As String  ' Conveyor ID Table
Dim Width_Row As String    ' Width row, string values such as 12" or 12in

Set rs = db.OpenRecordset("SELECT * FROM " & [Conveyor_ID] & " Where Width = " & [Width_Row])

根据为 Width_row 选择的值,我将收到两个不同的错误。

如果选择“14in”,“查询表达式 'Width = 14in' 中没有 () 的 In 运算符”的错误

如果选择“14”,错误“查询表达式‘Width = 12’中的字符串存在语法错误”。

我相信我不理解向传递到 Openrecordset 方法的 SQL 字符串添加变量的语法。


问题是您传递的字符串不带任何引号,并将其与 SQL 连接起来。这会导致无效的 SQL。

这意味着您的最终字符串可能类似于:

SELECT * FROM someTable Where Width = 12in

这不是有效的 SQL。 SQL 中的字符串需要用单引号或双引号引起来。

有多种方法可以解决这个问题。正确的方法是使用参数。

Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim qd As DAO.QueryDef
Const DbLoc As String = "DB location info"


Dim Conveyor_ID As String  ' Conveyor ID Table
Dim Width_Row As String    ' Width row, string values such as 12" or 12in
Set db = CurrentDb 'You were missing this in your sample
Set qd = db.CreateQueryDef("", "SELECT * FROM " & [Conveyor_ID] & " Where Width = @theWidth")
qd.Parameters("@theWidth") = [Width_Row]
Set rs = qd.OpenRecordset
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SQL 中连接的字符串变量(以访问数据库),由于引号引起的语法错误? 的相关文章

  • Excel VBA 组合框识别

    我的用户表单上有 4 个以上的组合框 当他们触发时 他们触发相同的事件 我想做的是找出哪个 ComboBox 触发了该事件 组合框的创建取决于组件的数量 生成组合框的代码如下所示 For j 0 To UBound ComponentLis
  • 链接到 SQL 表时如何在 Access 中获得“查找”功能?

    我正在构建一个 SQL 数据库 该数据库将具有 Access 2010 前端 我希望在 Access 中查找某些字段 即用户单击 Access 中的字段并填充下拉列表 在 Access 中使一个字段成为另一个表的查找相当简单 但我似乎不知道
  • 将 Excel 模板 (xltx) 作为 Excel 模板而不是工作簿打开

    我正在尝试编写一行代码来打开 Excel 模板 xltx 文件作为 Excel 模板文件而不是新工作簿 我只是想让用户查看和编辑他们在我们网络上的库文件夹中的模板 然而 我尝试过的所有操作都会打开一个新的工作簿而不是模板 我尝试过互操作 W
  • COM 错误?打开工作簿两次会导致引用损坏

    归功于fuglede https stackoverflow com users 5085211 fuglede为了引起我的注意 这是 COM 错误吗 我打开 Excel 工作簿 A 然后打开工作簿 B 这两个工作簿在单元格 A1 中都有一
  • Excel IE 自动化识别“css”元素

    仍然在抓取网站 从网页打印等方面进行掠夺 但遇到了一个障碍 我希望有人可以帮助我 下图显示了我想要激活的选项卡 我有代码可以到达那里 但无法激活该选项卡 虽然最后一行代码可以在我的台式电脑上运行 但我无法让它在我的其他电脑上运行 我可能可以
  • UCanAccess:向现有表添加列

    我有一个正在运行的 Java 项目 它使用 Access accdb 数据库来存储数据 我正在对我的程序进行更新 以便为用户提供更多功能 为此 我需要向填充数据的现有表添加一列 当我研究时 我发现 UCanAccess 不支持 ALTER
  • 如何使用 VBA 在 Excel 中搜索单词然后删除整行? [复制]

    这个问题在这里已经有答案了 请有人帮忙 我正在尝试编写一个 VBA 代码 在 Excel 工作表 D 列中搜索特定单词 DR 然后删除整行 工作表中特定单词多次出现 我想做的就是搜索这些出现的情况 然后删除包含这些单词的整行 我的问题是我不
  • 替换VBA中的变量字符串

    我需要替换字符串中的某些内容 但替换的内容可能会有所不同 有可能 XY test XXxY test XXyyXx TEST yXyy Test 以及几乎任何其他空格和上述情况的组合 我需要替换 test 部分并保留 XXX 所以 当使用简
  • 用于替换格式但保留单元格值的 VBA:部分解决

    我正在尝试组合 VBA 来搜索特定的单元格格式 然后更改该单元格格式 我从这篇文章中得到了灵感 Excel VBA 值替换后仍保持字符串格式 https stackoverflow com questions 25825136 excel
  • 在vba中为图例设置颜色代码

    我在每个工作表中都有数据透视表 我必须对它们进行比较 但每个工作表中图例的颜色都不同 如何设置颜色 例如 如果我的图例条目是 ISO 我希望它始终为 蓝色 如果它是 LAT 我希望它在每张纸中都为 红色 这可以通过操纵来完成Series中的
  • 获取每件商品的最新价格

    我有一张桌子 ItemID PurchaseDate Price 001 03 17 2013 19 00 002 03 17 2013 14 00 001 03 18 2013 13 00 002 03 18 2013 15 00 001
  • 点击后如何等待页面加载

    下面是简单的 IE 自动化代码 只需输入订单号 例如1413105088和邮政编码始终是78759并单击 提交 按钮 然后从结果页面中获取跟踪号码 例如017136295201034并将它们放入 C 列 它按预期工作 但由于 IE 不太可靠
  • 打开 Access 2007 文件

    我正在尝试打开受我们客户端保护的 Access 2007 文件 当我双击它时 它显示以下错误 错误 您没有使用该对象所需的权限 让您的系统管理员或创建此对象的人员为您建立适当的权限 错误3033 在我搜索此解决方案时 我了解到它受 Wind
  • 是否可以编写自定义 Power Query 连接器?

    在 来自其他来源 下的 Power Query 中 我们看到许多专业提供商 Facebook SAP SalesForce 等 我有兴趣编写一个自定义提供程序来访问无法通过任何内置连接器使用的本地专有数据存储 我知道 访问没有支持连接器的数
  • 错误:如何读取 Excel 中的空单元格

    我正在尝试使用 POI 从 Excel 读取数据 如何检查该单元格是否为空单元格 我不知道缺少什么我认为这应该有效 java util Iterator
  • Mac 上使用 Excel VBA 进行正则表达式

    我需要将 regEx 与 Excel VBA 一起使用 我使用的是 Mac OS 10 10 和 Office 2011 因此没有可以使用的 DLL 文件 这里有什么可做的 我读到我必须绑定一个苹果脚本 这是如何完成的以及该脚本需要什么内容
  • VBA:如何从 MS Access 运行另一个应用程序

    我一直在试图解决这个问题 但似乎我在任何地方都找不到解决该问题的方法 这是第一部分 VBA Shell 命令始终返回 找不到文件 https stackoverflow com questions 10439024 vba shell co
  • VBA半正矢公式

    我正在尝试将半正矢公式应用到Excel函数中 它看起来像这样 Public Function Haversine Lat1 As Variant Lon1 As Variant Lat2 As Variant Lon2 As Variant
  • 在打开的Word文档中找到未知的姓名和姓氏,将其复制并使用excel VBA粘贴到excel .activesheet中的单元格A12中

    你好 Stackoverflow 社区 我的目标是编写一个宏 在之前打开 活动的 Word 文档中查找未知姓名 或两个名字都写成 Firstname Secondname 和姓氏 或两个姓氏写成 Firstsurname Secondsur
  • 将一个大的 xlsx 文件导入到 R 中?

    我想知道是否有人知道从 大 xlsx 文件 20Mb 导入数据的方法 我尝试使用 xlsx 和 XLConnect 库 不幸的是 两者都使用 rJava 我总是收到相同的错误 gt library XLConnect gt wb lt lo

随机推荐