访问中的插入语句会出错

时间:2016-06-17 21:22:06

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

我一直致力于创建一个非常简单的数据库,每个列只有4个表,只有几个信息。我的一张桌子名为" Customer"在这个表的内部有4列信息。 enter image description here

我的" AddCustomerForm"运行以下命令

Private Sub cmdadd_Click()
CurrentDb.Execute "INSERT INTO Customer(Customer ID, Email, Identifier) " & _
 = VALUES(Customer ID, Email, Identifier)  
End Sub

我的添加客户表单如下所示: enter image description here

有人可以指出我搞砸了什么吗?我收到的错误是:

语法错误。

2 个答案:

答案 0 :(得分:3)

我看到一些问题 - [客户ID]是自动编号字段吗?如果是这样,请不要包含它。

此外 - 如果您正在运行手动插入,我假设您的表单未绑定到您的表格,但我开始想知道为什么客户ID在表单上显示为可编辑?

最后,看起来“位置”是属于“商家ID”字段中填写的“位置”下拉列表的ID字段的数字ID

这将帮助您调试SQL并向我们显示错误的内容

将其添加到按钮,并在代码暂停时向我们显示立即窗口中显示的值

    Dim strSQL as string
    strSQL = "INSERT INTO Customer ([Customer ID], Email, Identifier) VALUES (" _
    & me.[Customer ID] & ",""" & Me.[Email] & """,""" & Me.[Identifier] & """)"
    Debug.print strSQL

    CurrentDb.Execute strSQL

如果客户ID是自动编号,请尝试此操作(假设表单为UNBOUND),并且Location是下拉列表第一列的ID值

    Dim strSQL as string
    strSQL = "INSERT INTO Customer (Email, Identifier) VALUES (" _
    & me.[Customer ID] & ",""" & Me.[Email] & """, & Me.[Identifier] & ")"
    Debug.print strSQL

    CurrentDb.Execute strSQL

答案 1 :(得分:1)

Private Sub cmdadd_Click()
CurrentDb.Execute "INSERT INTO Customer ([Customer ID], Email, Identifier) VALUES([Forms]![MyFormName]![CustomerIDTextboxName], [Forms]![MyFormName]![EmailtextboxName], [Forms]![MyFormName]![IdentifierTextboxName]);"  
End Sub

访问需要带有空格的任何字段名称周围的括号。我还删除了=之前的VALUES并更改了值以引用您的表单控件,您必须对其进行适当的命名。您还需要使用分号来完成语句,并且需要关闭双引号。

This页面可能有助于语法。

相关问题