在Access 2007 VBA中执行SQL“插入”命令时,对象必需的错误

时间:2014-01-22 17:03:18

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

我已经无数次使用过这种方法,但我不能为我的生活让这个工作。我一直在绊倒运行时错误“424”。任何帮助都表示赞赏,因为tblNormaAppend.[SORT SCORE].Value显示为“空”,tblNormaAppend.SORT.Value也是如此。两者都有表中的值。非常感谢您的帮助。

Private Sub Command9_Click()
DoCmd.SetWarnings False


DoCmd.OpenQuery "qryDeleteNormaRadar"
DoCmd.OpenQuery "qryDeleteNormaAppend"
DoCmd.OpenQuery "qryFilterMFG"
DoCmd.OpenQuery "qryNormaAppend"


Dim strSQL As String
    strSQL = "INSERT INTO tblNormaRadar (Attribute, Score) VALUES (" & tblNormaAppend.[SORT SCORE].Value & ", '" & tblNormaAppend.SORT.Value & "');"
    DoCmd.RunSQL strSQL
    DoCmd.SetWarnings True
End Sub

2 个答案:

答案 0 :(得分:1)

我不清楚tblNormaAppend是什么。在命令按钮的代码的上下文中,它看起来像一个表单控件,但听起来你指的是表中的字段,而不是表单当前记录中的值。

如果您只想将一个表中的所有值插入另一个表中,可以为此编写直接(非连接)SQL:

'add one record to tblNormaRadar for each record in tblNormaAppend
strSQL = "INSERT INTO tblNormaRadar (Attribute, Score) SELECT [SORT SCORE], [Sort] FROM tblNormaAppend;"
Dim db As DAO.Database
Set db = CurrentDB
db.Execute strSQL, dbFailOnError

如果您的目标是其他内容,请详细说明tblNormaAppend以及您希望将哪些值添加到tblNormaRadar

答案 1 :(得分:0)

我使用直接SQL。我创建了多个INSERT INTO个查询,因为Access 2007不允许您在同一个查询中UNION ALL多个字段。

感谢您的帮助。