我有一个宏,它使用Access表中的下拉列表填充表单,然后要求用户选择多个项目:
代码:
With myconn
.Open ("DATABASE")
End With
Set dataRst = myconn.Execute("SELECT ID, Name FROM [TABLE IN DATABASE] ORDER BY Name;") 'WHERE variable = '" & x & "';")
Do While Not dataRst.EOF
cboVAR1.AddItem x, x
cboVAR1.Column(0, x) = dataRst!Name
cboVAR1.Column(1, x) = dataRst!ID
cboVAR2.AddItem x, x
cboVAR2.Column(0, x) = dataRst!Name
cboVAR2.Column(1, x) = dataRst!ID
x = x + 1
dataRst.MoveNext
Loop
我使用的表单如下所示:
然后我想采取这些选择并将它们添加到电子邮件中:
Set myEmail = myOlApp.CreateItem(olMailItem)
myEmail.BodyFormat = olFormatHTML
myEmail.To = Var1
myEmail.CC = Var2
然后使用以下命令将新行更新为新表:
INSERT INTO [NEW TABLE] ([Variable 1], [Variable 2])
VALUES (VAR1, VAR2)
我可以填充电子邮件,但每当我尝试更新新表时,我都会得到:
运行时错误'-2147217900(80040e14)':
查询表达式'VAR1 value1中的语法错误(缺少运算符); VAR1 value2;'。
我已经尝试过阅读这个错误,但却无法弄清楚我错过了什么。任何帮助表示赞赏!
答案 0 :(得分:0)
如果那是你的确切代码,你需要做这样的事情,
此外,假设这两个变量始终是文本值。
myEmail.To = VAR1
myEmail.CC = VAR2
str = "INSERT INTO [NEW TABLE] ([Variable 1], [Variable 2])" _
& " VALUES ('" & VAR1 & "','" & VAR2 & "')"
显然,我刚刚添加了str
变量来演示插入语句的字符串如何在VBA中查找。