微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用 VBA/Access 中的点击事件列表框执行“If 语句”

如何解决如何使用 VBA/Access 中的点击事件列表框执行“If 语句”

我有一个包含 3 个问题的表格。如果此人对第一个问题的回答是肯定的,则他们必须从我的列表框中选择一些内容或输入他们自己的答案。我有一个按钮,他们在回答所有 3 个触发此问题的问题结束时按下该按钮。有人能帮我解决这个问题吗?

第一季度。你玩电子游戏吗?是/否选项组框

第 2 季度。什么视频游戏?列表框 (Game1/Game2/Game3)

第三季度。其他游戏:纯文本

我还没有开始将 Q3 添加到混音中,因为我无法让它与 Q2 一起使用。 有人可以帮我吗?

提交按钮代码

Private Sub Submit_Button_Click()
Dim MyDB As DAO.Database
Dim qdef AS DAO.QueryDef

        Dim Msg,Syle,Title,Help,Ctxt,Response,Mystring
        Msg="Confirm your choices?"
        Response = MsgBox(Msg,Style,Title)
        If Response=vbYes Then
                If isNull(Me.game_response.value)  and (Me.play_response)=1
                Then MsgBox "Please Pick a Game"
    Exit Sub
    End If

列表框代码

Private Sub Games Click()
Dim MyDB AS DAO.Database
Dim qdef AS DAO.QueryDef
Dim VarItem As Variant
Dim lstItem As Control
Set lstItem as Me!Games

For Each varItem in lstItems.ItemsSelected
        If SelectedValues>"" Then
                SelectedValues=SelectedValues&"|" lstItem.ItemData(VarItem)
        Else 
             SelectValues=lstItems.ItemData(varItem)
        End If
Next varItem

Me!game_response=SelectedValue

解决方法

您的 Submit_Button_Click() 中存在不少问题。您需要将 MsgBox Yes/No click (response) 存储到 Response 变量中,然后您可以在 If() 中使用它来与 vbYes/vbNo 进行比较。

示例更新/修复:

Private Sub Submit_Button_Click()

    Dim MyDB As DAO.Database
    Dim qdef As DAO.QueryDef
    Dim Response As Long

    Response = MsgBox("Confirm your choices?",vbYesNo)

    If Response = vbYes Then
        If isNull(Me.game_response.value) And (Me.play_response) = 1 Then
            MsgBox "Please Pick a Game"
        End If
    End If

If SelectedValues>"" Then 中的行 Games Click() 也使用了错误的比较运算符 - 将其更改为 <>(不等于,而不是 > 大于)。>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。