[英]Execute a SQL statement inside VBA Code
我正在尝试在 VBA 代码中执行 SQL 查询。 该查询适用于 MS Access 并要求用户输入 Customer_Name 和 Part_Number 的值
我所做的是在 Outlook 中编写 VBA 代码,以便我们可以运行宏来执行 Outlook 中的查询。 我目前使用的代码直到 DoCmd.RunSQL 部分的最底线为止。 我想我的语法不正确。 我需要告诉它运行上面列出的 SQL 字符串:
Public Sub AppendAllTables()
Part_Number = InputBox("Enter Part Number")
Customer_Name = InputBox("Enter Customer Name")
Dim strsqlQuery As String
Dim Y As String
Y = "YES, Exact Match"
Dim P As String
P = "Possible Match - Base 6"
Dim X As String
X = "*"
strsqlQuery = "SELECT Append_All_Tables.Customer,
Append_All_Tables.CustomerCode, Append_All_Tables.PartNumber,
Append_All_Tables.Description, Append_All_Tables.Vehicle, SWITCH" &
Customer_Name & " = Append_All_Tables.PartNumber, " & Y & ", LEFT(" &
Part_Number & ",12) = LEFT(Append_All_Tables.PartNumber,12)," & Y & ",
LEFT(" & Part_Number & ",6) = LEFT(Append_All_Tables.PartNumber,6)," & P
& ") AS Interchangeability FROM Append_All_Tables WHERE" & Customer_Name
& "Like " & X & Customer_Name & X & "AND
LEFT(Append_All_Tables.PartNumber,6) = LEFT(" & Part_Number & ",6);"
Set appAccess = CreateObject("Access.Application")
appAccess.OpenCurrentDatabase "path.accdb"
appAccess.DoCmd.RunSQL "strsqlQuery"
End Sub
请注意,出于隐私考虑,路径已更改。 SQL 代码已在 Access 中工作。 我只需要评估最后一行。
如果您想让数据表表单视图显示这些记录,您可以使用
DoCmd.OpenForm
首先使用您想要查看的数据创建一个查询,然后使用Record Source
属性将其绑定到您的表单,然后在您调用DoCmd.OpenForm
传入您想要的过滤器。
我没有关注您在查询中尝试使用SWITCH
的操作(这应该是switch()
函数吗?它没有括号)。 但是您需要调整它以加入以使用Where
语句。
我同意上面的几个帖子。
我个人的偏好是像您一样定义 SQL,然后使用该 SQL 创建实际查询(创建查询定义),然后调用该查询,因为它现在将成为数据库中的实际对象。 QUERY 可以显示为没有任何形式要求的数据表,但纯 SQL 语句不能。
迈克尔
删除引号。
appAccess.DoCmd.RunSQL "strsqlQuery"
到appAccess.DoCmd.RunSQL strsqlQuery
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.