Access 中带链接的列表框 MySQL table
List Box in Access with linked MySQL table
我有一个带有 2 个 table 的 MSAccess 数据库(process
和 data_type
)。每个process
可以包含0-多种类型的data_type
。在访问中,我有一个显示带有列表框的进程的表单,(see pic),其中包含所有 data_types
。然后用户可以检查每个 process
具有的 data_types
。
我们正在将数据从 access 迁移到 MySQL。作为其中的一部分,我创建了一个链接 process
和 data_type
table 的 process2data
table。不幸的是,我不知道如何在 Access 中创建一个表单(我们现在仍然使用它作为我们的显示引擎)来完成与在线数据相同的事情。
你可以下载我正在尝试做的事情here:
(为简单起见,我将 mySQL 中的在线数据 table 的副本作为离线 table 放在 Access 中。)
多值字段仅适用于 MS-Access 数据库,为了模拟我们需要添加 VBA 代码和 table 来存储值。
- 创建中间table,在本例中我创建了[ProcessList_DataType],[checked]字段将用于包含数据类型,见图:
- 为 ProcessList 创建一个表单,为 [Datatypes] 和 [ProcessList_DataType] 组合 table 创建一个子表单。不要忘记配置 link 主字段。
添加代码以检查中间值是否存在引用值 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 个 table 的 MSAccess 数据库(process
和 data_type
)。每个process
可以包含0-多种类型的data_type
。在访问中,我有一个显示带有列表框的进程的表单,(see pic),其中包含所有 data_types
。然后用户可以检查每个 process
具有的 data_types
。
我们正在将数据从 access 迁移到 MySQL。作为其中的一部分,我创建了一个链接 process
和 data_type
table 的 process2data
table。不幸的是,我不知道如何在 Access 中创建一个表单(我们现在仍然使用它作为我们的显示引擎)来完成与在线数据相同的事情。
你可以下载我正在尝试做的事情here:
(为简单起见,我将 mySQL 中的在线数据 table 的副本作为离线 table 放在 Access 中。)
多值字段仅适用于 MS-Access 数据库,为了模拟我们需要添加 VBA 代码和 table 来存储值。
- 创建中间table,在本例中我创建了[ProcessList_DataType],[checked]字段将用于包含数据类型,见图:
- 为 ProcessList 创建一个表单,为 [Datatypes] 和 [ProcessList_DataType] 组合 table 创建一个子表单。不要忘记配置 link 主字段。
添加代码以检查中间值是否存在引用值 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
尽情享受吧!