同步两个Access数据库 - 我无法在主数据库上看到数据

时间:2017-02-22 00:55:55

标签: vba ms-access dao

我有一个主db和slave dbs。我想同步这些数据库,但是两个表会带来很多麻烦。

通过使用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已经存在。我打开文件时仍无法在master db中找到它。

奇怪的是,它反过来了。如果我在主数据库上更改某些内容并同步它,我可以看到我的slavedb上的更改。

0 个答案:

没有答案