我有一个主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上的更改。