代码之家  ›  专栏  ›  技术社区  ›  Chris Dale

有没有一种简单的方法可以填充这个Access数据库模式中的下拉列表?

  •  4
  • Chris Dale  · 技术社区  · 17 年前

    我有3张表,如下所示:

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

    每个位置都与多个节点连接,这些节点与多个sektor连接。

    现在是有趣的部分。在Microsoft Access中,您可以创建允许用户轻松添加数据的模式。最后一个表如下所示,我想使用我的模式将数据插入其中:

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

    这就是我想要的魔术。我希望用户能够首先选择一个位置,然后显示可用节点(最好是下拉列表),最后为客户选择正确的sektor。

    有人知道一个相当简单的方法吗?我开始为此制作一个宏,但是我对宏的记忆真的很差,而且我没有正确的资料可以在atm机上查找。

    任何帮助通知=)

    1 回复  |  直到 17 年前
        1
  •  5
  •   Fionnuala    17 年前

    说出任何东西的名字确实是个很糟糕的主意。

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

    颜色

    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
    

    立方氮化硼

    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
    
    推荐文章