感谢路过。
我只有两个问题。我上大学,需要一点帮助。
我需要使用Microsoft Access进行投票系统,我有两个问题:
1)我不知道如何"添加1"到了现场 2)我无法找到避免用户选择多个候选人的方法(使用复选框)
这是我到目前为止所做的:
Private Sub Comando25_Click()
Dim Check1 As Boolean
Dim Check2 As Boolean
Dim Check3 As Boolean
Dim Check4 As Boolean
If (Me.Check1 = True & Me.Check2 = True & Me.Check3 = True & Me.Check4 = True) Then
MsgBox "You can't select them all, you can only choose one"
DoCmd.Close
DoCmd.OpenForm "Ir a"
End If
If (Me.Check1 = True & Me.Check2 = True & Me.Check3) = True Then
MsgBox "You can't select three, you can only choose one"
DoCmd.Close
DoCmd.OpenForm "Ir a"
End If
If (Me.Check1 = True & Me.Check2 = True) Then
MsgBox "You can't select two, you can only choose one"
DoCmd.Close
DoCmd.OpenForm "Ir a"
End If
If (Me.Check2 = True & Me.Check3 = True) Then
MsgBox "You can't select two, you can only choose one"
DoCmd.Close
DoCmd.OpenForm "Ir a"
End If
If (Me.Check1 = True & Me.Check3) = True Then
MsgBox "You can't select two, you can only choose one"
DoCmd.Close
DoCmd.OpenForm "Ir a"
End If
End Sub
这是表格: Form
这是表格,我必须在" Votos"部分。 Table
我希望你能帮帮我
答案 0 :(得分:1)
您的If
语句存在问题。您没有正确构建逻辑语句。 &
将两个字符串连接在一起。 AND
是一个逻辑运算符,它将两个条件链接到语句的整体评估。
复选框具有独特的特征,IF Me.Check1 = True Then
与If Me.Check1 Then
的含义相同。那是因为引用Me.Check1
将评估为True或False,正好是If
语句所期望的参数。
问题是,您不能只使用&
来逻辑比较多个测试。您的第一个If
语句应为:
IF(Me.Check1 = True AND Me.Check2 = True AND Me.Check3 = True) Then
或更简单的If(Me.Check1 AND Me.Check2 AND Me.Check3) Then
,其中每个引用的评估将导致True或False,AND
运算符将它们组合在一起以将整个语句评估为True或False
现在应该可以了。
但我不得不问,你是否真的想等到按下按钮才能给用户提供反馈?在复选框上构建切换例程甚至更简单:
在复选框1的AfterUpdate
事件中,放置:
If Me.Check1 Then
Me.Check2 = False
Me.Check3 = False
Me.Check4 = False
End If
现在为其他三个复选框调整该代码,首先检查该复选框是否为true,如果是,则所有其他复选框都必须为false。
此方法会在用户选中任何复选框时重置所有复选框。这样,您无需在提交期间验证其选择,从而使您的代码更易于管理。
至于更新投票结果,您将需要两条信息和一条sql UPDATE
语句。您需要的两条信息是:一种独特的方式来识别您的表中哪一行需要另一次投票以及该候选/行的当前投票结果。你知道如何获得这些信息吗?您知道如何创建和运行Update语句,无论谁被投票都可以使用吗?提示:我建议使用记录集或查询定义对象,请尝试使用这两种方法之一更新记录,在线应该有大量资源。