Vba 同步两个Access数据库-我可以';看不到主数据库上的数据

Vba 同步两个Access数据库-我可以';看不到主数据库上的数据,vba,ms-access,dao,Vba,Ms Access,Dao,我有一个主数据库和从数据库。我想同步那些数据库,但两个表会带来很多麻烦 通过使用SQL查询,我得到了一个错误,因为我使用了多值字段。我无法更改数据结构,因此我决定“手动”循环记录集并同步表。我的代码如下所示: sub UpdateTable()... ..... Dim rstSlave, rstMaster as DAO.Recordset Dim fld as DAO.Field Set dbSlave = currentDB Set dbM

我有一个主数据库和从数据库。我想同步那些数据库,但两个表会带来很多麻烦

通过使用SQL查询,我得到了一个错误,因为我使用了多值字段。我无法更改数据结构,因此我决定“手动”循环记录集并同步表。我的代码如下所示:

    sub UpdateTable()...
    .....
    Dim rstSlave, rstMaster as DAO.Recordset
    Dim fld as DAO.Field

    Set dbSlave = currentDB
    Set dbMaster = OpenDatabse("C:\Users\MyFile\Master_DB.accdb")
    Set rstSlave = dbSlave.OpenRecordset("tbl_Candidate")
    Set rstMaster = dbMaster.OpenRecordset("tbl_Candidate")
    Set rstSlave = dbSlave.OpenRecordset("tbl_Candidate")

    rstSlave.MoveFirst
    While Not rstSlave.EOF
       rstMaster.MoveFirst

       Do While Not rstMaster.EOF
          If rstMaster![ID] = rstSlave![ID] Then GoTo nextRecord
          rstMaster.MoveNext
       Loop

    With rstMaster
        .AddNew
        For Each fld in .Fields
            strFieldName = fld.Name
            fld.Value = rstSlave.Fields(strFieldName).Value
        Next fld
        .Update
    End With
   nextRecord:
   rstSlave.MoveNext
   Wend

   rstSlave.Close   
   rstMaster.Close

   Set rstSlave = Nothing
   Set rstMaster = Nothing
我无法在主数据库中看到该记录。调试时,我看到应该传输到主数据库的记录的ID已经存在。当我打开文件时,仍然无法在主数据库中找到它


奇怪的是,情况正好相反。如果我在主数据库上更改了某些内容并将其同步,我可以在slavedb上看到更改。

您需要更多的代码,您的
转到
标签至少不包括在内。它在我的代码中,不知怎的,它已经消失在这里了……我将只是更新它:-/检查是否有任何字段不允许重复,或者有其他禁止插入的验证规则。使用SQL查询时,我会得到一个错误,因为我使用多值字段意味着什么?我在你的VB中没有看到任何东西不能在t中以十倍的速度和更可靠地完成-SQL@Nick.McDermaid:这是Access,不是SQL Server。