是否有一种简单的方法可以在此 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上的属性?