MS Access / SQL:插入查询语句中的错误

时间:2016-09-02 12:11:08

标签: sql vba ms-access

我正在使用MS Access 1997版本(.mdb文件)。我每天都需要手动插入值。在该文件中,有一列Logical(布尔数据类型)。我使用SQL查询而不是直接输入来自动化此模板。

以下是我的插入查询:

Insert Into Data_CustomerTransmit_Tbl (Logical) 
Values (" & Logicalnme & ")

值:

Logicalnme - True

当我在Excel中的VBA中运行此查询时,我收到此错误消息

  

插入语句中的语法错误

请确认我是否应使用"逻辑"作为列名称或这是保留关键字?

提前致谢。

6 个答案:

答案 0 :(得分:1)

您的字段名称没有问题,您只需将INSERT列名称括在方括号中即可。您还需要在VALUES子句中选择有效值:

INSERT INTO Data_CustomerTransmit_Tbl ( [Logical] )
VALUES (TRUE);

如果要提示您输入要插入的值,可以使用参数:

PARAMETERS [Please enter a Boolean value] YesNo;
INSERT INTO Data_CustomerTransmit_Tbl ( [Logical] )
VALUES ([Please enter a Boolean value]);

答案 1 :(得分:0)

我认为您正在尝试使用VBA执行此插入操作?如果是这样,那么构建SQL语句的语法是正确的,除了你缺少一些标点符号:每一端都有双引号。

    "INSERT INTO Data_CustomerTransmit_Tbl (Logical) VALUES (" & Logicalnme & ")"

此外,由于你已经将字符串分成两行(在VALUES之前断开),你还必须终止字符串的第一行:'“& _'(空格,双引号,空格,符号,空格) ,下划线)为了表明字符串继续到下一行。然后你用双引号开始下一行:

    "INSERT INTO Data_CustomerTransmit_Tbl (Logical) " & _  
    "VALUES (" & Logicalnme & ")"

答案 2 :(得分:0)

在VBA中,代码应如下所示:

Docmd.RunSQL("INSERT INTO Data_CustomerTransmit_Tbl (Logical) VALUES (" & Logicalnme & ");"

答案 3 :(得分:0)

您提到的SQL查询 - 您是否尝试使用您尝试从Excel传递的相同值在查询编辑器中手动执行它?如果查询或数据存在问题,这将立即提供更详细的反馈。

关于布尔字段,请确保您收到的是您期望的真/假,而不是位字段,0和1.我喜欢在进行故障排除时在表格或文件中快速记录条目以查看原始字段数据

答案 4 :(得分:0)

使用Cbool功能:

Insert Into Data_CustomerTransmit_Tbl (Logical) 
Values (" & Cbool(Logicalnme) & ")

答案 5 :(得分:0)

在值周围添加单引号?

sql = "INSERT INTO Data_CustomerTransmit_Tbl (Logical) " & _  
      "VALUES ('" & Logicalnme & "')"
docmd.runsql sql