首页 文章

MS Access组合框获取所选项目值

提问于
浏览
2

你好 -

我正在使用MS Access,我正在使用表单来运行查询 . 表单有两个文本框,一个组合框和一个按钮 .

这三个都为查询提供了条件,按钮在单击时运行查询 . 目前,文本框正在运行,它们提供了查询的条件 . 组合框绑定到另一个表中的数据,并且当前未向查询提供条件 .

我想要做的是,当我在组合框中选择一个项目并使用按钮运行查询时,所选项目是用作查询中的条件的项目 .

如果这需要vba代码,如果你告诉我它是如何完成的,我将非常感激 .

谢谢

1 回答

  • 0

    早上好,

    是的,需要一些VBA代码才能执行 . 您还没有说明将输入文本框,文本框名称或其他内容的实际数据,但我已经创建了它将如何进行的基本布局:

    Private Sub btnRunSQL_Click()
    
    On Error GoTo ErrHandler:
    
    'Retrieve data from the form elements
    Dim forename As String
    forename = Forms!frmTest!txtForename
    
    Dim surname As String
    surname = Forms!frmTest!txtSurname
    
    Dim occupation As String
    occupation = Forms!frmTest!cmbOccupation
    
    Dim strSQL As String
    strSQL = "SELECT * " & _
             "FROM Patient " & _
             "WHERE Job = [" & occupation & "] AND Forename = " & forename & " " & _
             "AND Surname = " & surname & "; "
    
    'Print our SQL to see what we are retrieving
    Debug.Print strSQL
    
    'Run the constructed SQL statement
    DoCmd.RunSQL strSQL
    
    ErrHandler:
    
    'If an error occurs
    If Err.Number <> 0 Then
        MsgBox "Error Number: " + Err.Number + ": Description: " + Err.Description
    End If
    
    End Sub
    

    上面我们可以看到我明确地通过它们的名称引用表单上的元素,以便在它们内部获取信息并将每个元素传递给它自己的变量 . (注意 - 您可能希望进行一些验证以确保在执行SQL之前填充所有这些字段 . )

    然后,我根据传递的值构造SQL,并将其打印到即时窗口,以确定它是否构造正确 . 然后我使用以下命令执行语句:

    DoCmd.RunSQL strSQL
    

    我还确保可以出现的任何错误都通过函数按钮中定义的错误处理程序处理并呈现给用户 .

    最后一件事:你知道如何进入VBA窗口以及如何专门为按钮构建代码吗?

    如果你不这样做,请这样做:

    • 在表单设计视图模式下右键单击您的按钮 .

    • 选择 Build Event

    • 选择 Code Builder 并点击确定

    您现在将被带到VBA窗口(也可以通过按 Alt + F11 打开)

    我希望这有帮助

相关问题