我有一个中央数据库,保存在一个存储部件号和网络的网络上。机器各种组件的描述。通常,个人在设计期间需要使用脱机副本,并且会向其添加新条目。是否有脚本可以找到差异并更新网络上的主文件?我玩了工会查询,但我很难能够更新原始文件和原始表。我的sql / microsoft访问知识有限。
为了清楚起见,让我们这样调用文件:
网络数据库:Network_DB.mdb
离线数据库:Offline_DB.mdb
表:MISC_CAT
答案 0 :(得分:0)
根据我的经验,通用解决方案非常困难。我倾向于在表中存储我想要的字段名称,然后运行相关的更新:
Public Function UpdateData()
Dim db As Database
Dim qd As QueryDef
Dim rs As Recordset
Dim strSQL As String
On Error GoTo Err_UpdateData
Set db = CodeDb
strSQL = "SELECT fldName FROM MyTables WHERE tblName = 'MISC_CAT'"
Set rs = db.OpenRecordset(strSQL, dbOpenSnapshot)
Do Until rs.EOF
strSQL = "UPDATE MISC_CAT_Network INNER JOIN MISC_CAT_Offline ON MISC_CAT_Network.KeyID = MISC_CAT_Offline.KeyID " & _
"SET MISC_CAT_Network.[" & rs!fldName & "] = [MISC_CAT_Offline].[" & rs!fldName & "] " & _
"WHERE (((Nz([MISC_CAT_Network].[" & rs!fldName & "],''))<>Nz([MISC_CAT_Offline].[" & rs!fldName & "],'')))"
db.Execute strSQL, dbFailOnError
rs.MoveNext
Loop
db.Execute strSQL, dbFailOnError
rs.Close
db.Close
Exit_UpdateData:
Set rs = Nothing
Set qd = Nothing
Set db = Nothing
Exit Function
Err_UpdateData:
Debug.Print "Error - " & Err.Number & " - " & Err.Description
Resume Exit_UpdateData
End Function