在我的表单上,我有一个用户可以点击的按钮。然后,它将向用户提示3个输入框,用户可以在其中输入他想要运行查询的信息。我希望查询根据他输入3个输入框的值运行,但我似乎无法弄清楚这一点。该查询基于我的数据库中的另一个表。这是我写的代码。它不会编译,因为我有太多的参数。这可能是因为我不知道如何使用DoCmd.OpenQuery命令传递变量。
Private Sub VariableQuery_Click()
Dim strProdCode As String
Dim strCampCode As String
Dim strMailDate As String
strProdCode = InputBox("Enter Product Code", "Product Code")
strCampCode = InputBox("Enter Campaign Code", "Campaign Code")
strMailDate = InputBox("Enter Mail Date", "Mail Date")
DoCmd.OpenQuery "contribution", , , "[PRODUCT_CODE]=" & strProdCode & _
"[CAMPAIGN_CODE]=" & strCampCode & "[MAIL_DATE]=" & strMailDate
End Sub
感谢任何帮助。我试图运行的查询的名称是“贡献”。 PRODUCT_CODE,CAMPAIGN_CODE和MAIL_DATE是数据库中字段的名称,PRODUCT_CODE和CAMPAIGN_CODE都是文本字段,MAIL_DATE是日期/时间字段。
答案 0 :(得分:0)
我不知道是否有不同的方法可以做到这一点,但我如何处理问题是通过创建SQL字符串
Dim strSQL As String
strSQL = "SELECT ... INTO ... " _
& "FROM ... " _
& "WHERE [PRODUCT_CODE]='" & strProdCode &"' AND [CAMPAIGN_CODE]='" & strCampCode & "' AND [MAIL_DATE]=#" & strMailDate & "#"
DoCmd.RunSQL strSQL
注意事项
WHERE
种条款时,您必须适当地限定字段的值,例如: ''
围绕字符串,##
围绕日期而不围绕数字UPDATE
,DELETE
等。普通SELECT
不是操作查询。CurrentDB.Execute(strSQL)
代替DoCmd.SetWarnings(False)
和DoCmd.SetWarnings(True)
编辑(可能有用的链接)