组合访问表

时间:2016-01-25 23:17:50

标签: mysql sql database vba

我有一个中央数据库,保存在一个存储部件号和网络的网络上。机器各种组件的描述。通常,个人在设计期间需要使用脱机副本,并且会向其添加新条目。是否有脚本可以找到差异并更新网络上的主文件?我玩了工会查询,但我很难能够更新原始文件和原始表。我的sql / microsoft访问知识有限。

为了清楚起见,让我们这样调用文件:

网络数据库:Network_DB.mdb

离线数据库:Offline_DB.mdb

表:MISC_CAT

1 个答案:

答案 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