是否有一种简单的方法来填充此Access数据库架构中的下拉列表?

Chr*_*ale 4 schema ms-access drop-down-menu

我有3个表,看起来像这样:

Location                Node                 Sektor
-----                   -------              -------
PK: ID - Autonumber     PK: ID - Autonumber  PK: ID - Autonumber
Name                    NodeName             Sektor
Height                  Aksess               Frequency
Latitude                Tag                  Coverage
Longtitude              IP
Run Code Online (Sandbox Code Playgroud)

每个位置都与多个节点连接,这些节点与多个sektors连接.

现在有趣的部分.在Microsoft Access中,您可以创建允许用户轻松添加数据的模式.我的最终表看起来像这样我想用我的模式将数据插入到:

Customers
-------
PK: CustID
Name
Subscribtion
Sektor
Run Code Online (Sandbox Code Playgroud)

这就是我想要完成魔术的地方.我希望用户能够首先选择一个位置,然后呈现可用节点(最好是下拉列表),最后他可以为他添加的客户选择正确的sektor.

有人知道一个相当简单的方法吗?我开始为此制作一个宏,但我对宏的记忆真的很糟糕,而且我没有正确的文献和我一起去查找它.

任何帮助appriciated =)

Fio*_*ala 5

确实命名任何名字都是一个非常糟糕的主意.

在我看来,你需要级联组合框.你需要一点VBA.

两个组合框称为cboLocation和cboNodes,在一个名为frmForm的forrm上

cboLocation

RowSource: SELECT ID, [Name]
FROM Locations
ORDER BY [Name]

ColumnCount: 2

ColumnWidths: 0;2.00cm  ''The second column can be any suitable width

LimitToList: Yes
Run Code Online (Sandbox Code Playgroud)

事件:

Private Sub cboLocation_AfterUpdate()
    Me.cboNode.Requery
End Sub
Run Code Online (Sandbox Code Playgroud)

CboNode

RowSource: SELECT ID, NodeName
FROM Nodes
WHERE IP=[Forms]![frmForm]![cboLocation]
ORDER BY NodeName

ColumnCount: 2

ColumnWidths: 0;2.00 ''Ditto

LimitToList: Yes
Run Code Online (Sandbox Code Playgroud)

事件:

Private Sub cboNode_GotFocus()
    If Trim(Me.cboLocation & "") = vbNullString Then
        MsgBox "Please select location"
        Me.cboLOcation.SetFocus
    End If
End Sub
Run Code Online (Sandbox Code Playgroud)

您还需要一个表单事件:

Private Sub Form_Current()
    Me.cboNode.Requery
End Sub
Run Code Online (Sandbox Code Playgroud)