1

我创建了一个表,其目的是容纳我多年来创建的查询数据库,我创建了一个相应的表单来插入所有信息,但我无法让代码正常工作。

Private Sub cmd_go_Click()
Dim insertstring As String

    insertstring = "INSERT INTO KWTable (KW, Source, Code) VALUES (" & text_key.Value & "," & combo_source.Value & "," & text_code.Text & ");"

    DoCmd.RunSQL insertstring

End Sub

目标表上的三列是 KW、Source 和 Code,插入其中的值是 text_key(这是我输入的关键字,因此我可以稍后在需要引用某些内容时搜索它们)、combo_source.Value(其中是一个组合框,其中包含保存这些代码和查询的数据库列表,我将在插入表时选择正确的)和 text_code(这是查询的实际代码本身)

该代码应该将关键字(文本)源(组合框列表)和代码(文本)插入到 KWTable 中。但是当我单击添加记录按钮时,我得到一个“运行时错误 424:需要对象”错误框,并且它突出显示了整个插入字符串行。我无法解决错误在哪里。有什么想法吗?

4

1 回答 1

6

选项1

正如 Remou 所说,您的文字周围没有引号。我在您的每个字段周围添加了一些单引号,并添加了一些换行符以便于阅读。那样有用吗?

Private Sub cmd_go_Click()
    Dim insertstring As String
    insertstring = "INSERT INTO KWTable (KW, Source, Code) VALUES ('" & _
                    text_key.Value & "','" & _
                    combo_source.Value & "','" & _
                    text_code & "');"
    DoCmd.RunSQL insertstring

End Sub

选项 2

我认为这将处理在您的表中存储单引号和双引号:

Private Sub cmd_go_Click()
Dim rst As recordset
Set rst = CurrentDb.OpenRecordset("KWTable ")
With rst
     .addnew
     .fields("KW")=text_key.Value
     .fields("Source")=combo_source.Value
     .fields("Code")=text_code
     .update
 End with
 End sub
于 2013-03-12T20:14:40.797 回答