mysql - 组合访问表

标签 mysql sql database vba

我有一个保存在网络上的中央数据库,用于存储机器各种组件的零件号和描述。通常,人们在设计过程中需要使用离线副本,并向其中添加新条目。是否有脚本可以查找差异并更新网络上的主文件?我尝试了联合查询,但我正在努力更新原始文件和原始表。我的sql/microsoft访问知识有限。

为了清楚起见,我们这样称呼这些文件:

网络数据库:Network_DB.mdb

离线数据库:Offline_DB.mdb

表:MISC_CAT

最佳答案

根据我的经验,通用解决方案非常困难。我倾向于将我想要的字段名称存储在表中,然后运行相关更新:

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

关于mysql - 组合访问表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35004311/

相关文章:

PHP Codeigniter Active Records 忽略单引号

mysql - 使用 Join 更新 Coldfusion ORM

php - sql和mysql联合查询

mysql - 结果正确,但在 sql 中的顺序不同

java - 使用 List 更新 SQL 数据库 - Java 和 MyBatis

c# - 使用所有备份集通过 SMO 恢复数据库

php - 更好的是,在 android 中循环读取 php 或在 php 中循环读取数据库?

database - 如何将离线 HTML5 网络数据库与集中式数据库同步

mysql - 将行乘以一行 - 问题

php - 将 php 搜索数组与查询结果相结合 - 内连接 php 数组