Vba Access中的ADODB-不会插入,但不会引发错误

Vba Access中的ADODB-不会插入,但不会引发错误,vba,ms-access,adodb,Vba,Ms Access,Adodb,在过去的几个小时里,我一直在关注这一点——我想现在MySQL中有一些微妙而狡猾的错误导致了这一点,或者这是一个非常明显的解决方案,我只需要另一双眼睛。我非常感谢你的帮助 我正在用Access做一些数据输入工作。我已经链接了我正在使用的表,但我主要是通过显式的ADODB连接来处理它们(这将使事务更容易,并允许我使用SELECT@@IDENTITY)。这些表在我的环境中的服务器上的MySQL中 我以前也做过类似的工作,但由于某些原因,现在没有更新。它不会引发错误,我已经检查了连接的error属性……

在过去的几个小时里,我一直在关注这一点——我想现在MySQL中有一些微妙而狡猾的错误导致了这一点,或者这是一个非常明显的解决方案,我只需要另一双眼睛。我非常感谢你的帮助

我正在用Access做一些数据输入工作。我已经链接了我正在使用的表,但我主要是通过显式的ADODB连接来处理它们(这将使事务更容易,并允许我使用SELECT@@IDENTITY)。这些表在我的环境中的服务器上的MySQL中

我以前也做过类似的工作,但由于某些原因,现在没有更新。它不会引发错误,我已经检查了连接的error属性……出于某种原因,它只是轻松地通过了这段代码,而没有引发错误。被引用的表现在是完全空的,它有很多字段,但只需要两个字段——一个自动编号ID和正在填充的字段

有人能看出这里有什么明显的问题吗?Option Explicit处于启用状态,似乎正在使连接正常,否则我认为在打开记录集或连接时会出错。有人对调试有什么建议吗

最后一个注意事项是,代码更复杂——我正在尝试创建一个类来存储我的连接,使我描述的事情更容易。我最糟糕的情况是,我在那里做的一些事情,比如开始一个事务而不关闭它,导致MySQL出现了一些问题

Sub ADODBError()

    Dim cnn As ADODB.Connection
    Set cnn = New ADODB.Connection

    cnn.Open "driver={mysql odbc 5.2a driver};" & _
       "server=my.mysql.server;" & _
       "user=myUser;password=myPwd;" & _
       "database=callcenter"

    Dim firstDayOfWk As Date
    firstDayOfWk = #8/18/2014#

    Dim rst As ADODB.Recordset
    Set rst = New ADODB.Recordset

    rst.Open "WeeklyCallCenterStats", cnn, adOpenForwardOnly, adLockBatchOptimistic, adCmdTable

    With rst
        .AddNew
        .Fields("WeekStarting") = firstDayOfWk
        .Update
        .Close
    End With

End Sub

在批锁定模式下打开ADO记录集时,在调用该记录集之前,不会实际传输对该记录集所做的更改


更改呼叫中的锁定模式(我建议
adLockOptimistic
,除非它是一个快速变化的表),或者在进行更改后调用
rst.UpdateBatch

既然您使用的是adLockBatchOptimistic,您是否记得调用rst.UpdateBatch?@Tmdean您太棒了。我不记得以前用过这个。。如果你把这句话放在我的回答里,我会接受的,我已经被困在这个问题上好几个小时了。