Access中的列表框与链接的MySQL表

时间:2016-06-20 11:40:13

标签: ms-access listbox linked-tables

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

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

您可以下载我正在尝试的内容here

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

1 个答案:

答案 0 :(得分:0)

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

  1. 创建中间表,在这种情况下我创建了[ProcessList_DataType],[checked]字段将用于包含数据类型,见图:
  2. enter image description here

    1. 为ProcessList创建表单,为[Datatypes]和[ProcessList_DataType]组合表创建子表单。不要忘记配置链接主字段。
    2. enter image description here

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

        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. 享受!

      3. enter image description here