Ms access Microsoft Access VBA INSERT SQL语句

Ms access Microsoft Access VBA INSERT SQL语句,ms-access,Ms Access,我在Microsoft access中创建了一个数据库,并使用它创建了一个表单。 我在表单上附加了一个按钮,单击该按钮时,我想在表中插入一条新记录customerHeader 该表中有四个字段,其中一个是自动编号。在我的SQL语句中,我不包括orderNumber,因为它是一个自动字段。 当我尝试单击按钮并执行on click事件时,我会收到一个错误,提示Microsoft Access无法在append查询中追加记录 任何想法,我都找遍了每一个地方,但我没有找到解决办法 Private Sub

我在Microsoft access中创建了一个数据库,并使用它创建了一个表单。
我在表单上附加了一个按钮,单击该按钮时,我想在表中插入一条新记录
customerHeader

该表中有四个字段,其中一个是自动编号。在我的SQL语句中,我不包括orderNumber,因为它是一个自动字段。
当我尝试单击按钮并执行on click事件时,我会收到一个错误,提示Microsoft Access无法在append查询中追加记录

任何想法,我都找遍了每一个地方,但我没有找到解决办法

Private Sub addOrder_Click()
    Dim mySql As String
    Dim rowNum As Integer
    Dim recCount As Long
    Dim orderNumber As Long
    Dim myBool As Boolean


    Dim todayDate As Date

    todayDate = CDate(Date)

    myBool = False


    MsgBox todayDate

    rowNum = Form.CurrentRecord
    rowNum = CInt(rowNum - 1)



    'DoCmd.GoToRecord , , acNewRec
    mySql = "INSERT INTO orderHeader (orderDate,custNumber,printed) VALUES (" & todayDate & "," & rowNum & "," & myBool & ")"

    DoCmd.RunSQL mySql

    Me!orderNum.Requery

您不必进行太多操作-只需使用ISO序列作为日期值字符串表达式的格式:

mySql = "INSERT INTO orderHeader (orderDate,custNumber,printed) VALUES (#" & Format(todayDate, "yyyy\/mm\/dd") & "#," & rowNum & "," & myBool & ")"
然而,今天,只需使用:

mySql = "INSERT INTO orderHeader (orderDate,custNumber,printed) VALUES (Date()," & rowNum & "," & myBool & ")"

SQL本身是可以工作的,尽管您可能希望在日期前后添加
(#“&todayDate&“#,”(您可能还需要根据您所在的位置处理日期格式-我讨厌Access中的日期)。它给出的确切消息是什么?通常它会显示-
MS Access set x字段)由于类型转换失败而设置为Null,并且它没有添加x条记录…
它特别指出“Microsoft access由于类型转换失败而将0个字段设置为Null,并且由于密钥冲突而没有将1条记录添加到表中,由于锁冲突而没有将0条记录添加到表中,由于验证规则冲突而没有将0条记录添加到表中。”“。我将尝试将#添加到日期。我刚刚尝试了添加,但不幸的是,我遇到了与以前相同的错误。然后发生了其他情况。尝试手动插入值并找到有问题的值。“密钥冲突”表示您尝试在具有唯一索引的字段中插入重复值。出于某种原因,我的“myBool”变量处理不正确,所以我改用“false”删除了该变量,它开始工作。感谢您的建议和帮助解决此问题!太好了!祝您周末愉快。