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

Posted

技术标签:

【中文标题】是否有一种简单的方法可以在此 Access 数据库架构中填充下拉列表?【英文标题】:Is there a simple way of populating dropdown in this Access Database schema? 【发布时间】:2010-10-29 23:03:33 【问题描述】:

我有 3 个表格,如下所示:

Location                Node                 Sektor
-----                   -------              -------
PK: ID - Autonumber     PK: ID - Autonumber  PK: ID - Autonumber
Name                    NodeName             Sektor
Height                  Aksess               Frequency
Latitude                Tag                  Coverage
Longtitude              IP

每个位置都与多个节点相连,这些节点又与多个 sektors 相连。

现在是有趣的部分。在 Microsoft Access 中,您可以制作允许用户轻松添加数据的架构。我的最终表格看起来像这样,我想使用我的模式将数据插入:

Customers
-------
PK: CustID
Name
Subscribtion
Sektor

这就是我想要施展魔法的地方。我希望用户能够首先选择一个位置,然后显示可用节点(最好在下拉列表中),最后他可以为要添加的客户选择正确的 sektor。

任何人都知道这样做的相当简单的方法?我开始为此制作一个宏,但是我对宏的记忆真的很差 atm,而且我没有正确的 atm 文献来查找它。

任何帮助appriciated =)

【问题讨论】:

【参考方案1】:

给任何东西命名确实是一个非常糟糕的主意。

在我看来,您需要级联组合框。您将需要一点 VBA。

两个组合框叫做 cboLocation 和 cboNodes,在一个叫做 frmForm 的窗体上

cbo位置

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

事件:

Private Sub cboLocation_AfterUpdate()
    Me.cboNode.Requery
End Sub

CboNode

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

ColumnCount: 2

ColumnWidths: 0;2.00 ''Ditto

LimitToList: Yes

事件:

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

你还需要一个表单事件:

Private Sub Form_Current()
    Me.cboNode.Requery
End Sub

【讨论】:

现在试试这个。表名只是虚构的。我知道这是一个坏名字:D thx tho。

以上是关于是否有一种简单的方法可以在此 Access 数据库架构中填充下拉列表?的主要内容,如果未能解决你的问题,请参考以下文章

ListView,是不是有一种简单的方法可以允许在内部拖动项目(内置)?

是否有一种简单的方法可以在对象级别上记住(和刷新)Python上的属性?

是否有一种简单有效的方法可以在 C# 或 C/C++ 中列出所有 USB 设备?

是否有一种简单或正确的方法来删除spring安全插件?

是否有一种简单的方法可以在烧瓶中使会话超时?

是否有一种简单的方法可以在一个分支中创建补丁,然后将其应用于 TFS 2010 中的另一个分支?