如何从组合框中获取值并使用它来运行SQL查询

时间:2014-05-16 19:31:46

标签: sql ms-access access-vba ms-access-2010

我试图从组合框中获取值(在这种情况下,'cboFullName'位于'frmMasterNotebook'')并将其交叉引用到表'tblSearchEngine01',以便更新所有列'query05contactselect'记录“联系”列中的值与组合框选择的值匹配('cboFullName')。下面是我的代码,但我收到语法错误消息。

Private Sub cboFullName_AfterUpdate()

 st_sql = "UPDATE tblSearchEngine01, SET tblSearchEngine01.Query05ContactSelect = '1' WHERE (((tblSearchEngine01.[contact])=([forms]![frmmasternotebook]![cbofullname]))))"
            Application.DoCmd.RunSQL (st_sql)

2 个答案:

答案 0 :(得分:1)

您的代码构建了一个UPDATE语句,其中包含表名后的逗号...

UPDATE tblSearchEngine01, SET
                        ^

删除该逗号,看看Access是否抱怨其他任何内容。

但是我建议您首先在Access的查询设计器中创建和测试新查询。将此语句粘贴到新查询的SQL视图中......

UPDATE tblSearchEngine01
SET Query05ContactSelect = '1'
WHERE [contact] = [forms]![frmmasternotebook]![cbofullname];

在修改并测试语句以便Access无怨无悔地执行它之后,您可以修改VBA代码以生成在查询设计器中工作的完全相同的语句文本。

答案 1 :(得分:1)

使用DAO这是解决我的问题的另一种方法:

Private Sub cboFullName_AfterUpdate()


Dim rst As DAO.Recordset
Set rst = CurrentDb.OpenRecordset("tblSearchEngine06", dbOpenTable)
rst.AddNew
rst!Contact = Me.cboFullName.Text
rst!ContactID = Me.cboFullName
rst.Update
rst.Close
Set rst = Nothing