【发布时间】:2013-07-23 17:57:24
【问题描述】:
我有一个包含 2 个主键的数据库,一个用于 LINE NUMBER,一个用于构建阶段。这样做的原因是我们的项目可能使用相同的行号,但必须完全单独跟踪项目的多个阶段。我所拥有的是一个组合框,它将驱动表单上的记录信息。这很好用,但是现在当我有多个阶段时,它只会启动生产线的第一阶段,而不是其他 4 个阶段。当挑选除PHA之外的某些东西时,它会导致第一阶段信息。
有没有办法将组合框与 2 个字段联系起来,以根据选择的两个字段选择正确的记录?
或者我可能需要重新调整表单的显示方式...有没有更好的方法来做到这一点?
用于选择记录的代码:
Sub SetFilter()
Dim LSQL As String
LSQL = "select * from tblLineData_Horizon"
LSQL = LSQL & " where lineno = '" & cboSelected & "'"
Form_frmHorizon_sub.RecordSource = LSQL
End Sub
Private Sub cboSelected_AfterUpdate()
'Call subroutine to set filter based on selected Line Number
SetFilter
End Sub
Private Sub Form_Open(Cancel As Integer)
'Call subroutine to set filter based on selected Line Number
SetFilter
End Sub
【问题讨论】:
-
脑海中浮现出两个想法。通过组合您的两个字段并使用查询将表单的所有数据拉到一起来制作组合的唯一标识符。其次使用两个单独的下拉菜单,并让一个命令按钮触发子表单中的数据检索。
-
一个数据库的不同表可以有一个主键。一个表不能有多个 PK,但一个表可以有一个多字段主键。也就是说,主键是多个字段的组合。你应该澄清你的问题。
标签: ms-access ms-access-2007 vba