Access 中带链接的列表框 MySQL table

List Box in Access with linked MySQL table

我有一个带有 2 个 table 的 MSAccess 数据库(processdata_type)。每个process可以包含0-多种类型的data_type。在访问中,我有一个显示带有列表框的进程的表单,(see pic),其中包含所有 data_types。然后用户可以检查每个 process 具有的 data_types

我们正在将数据从 access 迁移到 MySQL。作为其中的一部分,我创建了一个链接 processdata_type table 的 process2data table。不幸的是,我不知道如何在 Access 中创建一个表单(我们现在仍然使用它作为我们的显示引擎)来完成与在线数据相同的事情。

你可以下载我正在尝试做的事情here

(为简单起见,我将 mySQL 中的在线数据 table 的副本作为离线 table 放在 Access 中。)

多值字段仅适用于 MS-Access 数据库,为了模拟我们需要添加 VBA 代码和 table 来存储值。

  1. 创建中间table,在本例中我创建了[ProcessList_DataType],[checked]字段将用于包含数据类型,见图:

  1. 为 ProcessList 创建一个表单,为 [Datatypes] 和 [ProcessList_DataType] 组合 table 创建一个子表单。不要忘记配置 link 主字段。

  1. 添加代码以检查中间值是否存在引用值 table:

    Private Sub Form_Current()
        On Error GoTo ErrExit
        If Not IsNull(Me!ProcessID) Then
            sql = "INSERT INTO ProcessList_DataType(ProcessList,DataType) " & _
                  "SELECT " & Me!ProcessID & ",datatype_id " & _
                  "FROM DataTypes WHERE datatype_id not in " & _
                    "(SELECT datatype_id from FilterQuery " & _
                    " WHERE ProcessList = " & Me!ProcessID & " )"
            Set db = CurrentDb()
            db.Execute sql
            cnt = db.RecordsAffected
            If cnt > 0 Then
                NeedRefresh = True
            End If
        End If
    ErrExit:
    End Sub
    
  2. 尽情享受吧!