use*_*980 1 forms ms-access vba sql-insert
我创建了一个表,它的目的是存放我多年来创建的查询数据库,我创建了一个相应的表单来插入所有信息,但我无法使代码正常工作。
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
Run Code Online (Sandbox Code Playgroud)
目标表上的三列是 KW、Source 和 Code,插入到它们中的值是 text_key(这是我输入的关键字,以便我稍后在需要引用某些内容时可以搜索它们)、combo_source.Value(其中是一个组合框,其中包含保存这些代码和查询的数据库列表,我将在插入表时选择正确的)和 text_code(这是查询的实际代码本身)
该代码应该将关键字(文本)、源代码(组合框列表)和代码(文本)插入到 KWTable 中。但是当我单击添加记录按钮时,我收到一个“运行时错误 424:需要对象”错误框,并且它突出显示了整个插入字符串行。我无法解决错误所在。有什么想法吗?
正如 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
Run Code Online (Sandbox Code Playgroud)
我认为这将处理在您的表中存储单引号和双引号:
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
Run Code Online (Sandbox Code Playgroud)