使用Microsoft Access的投票系统

时间:2017-10-23 13:18:05

标签: database ms-access

感谢路过。

我只有两个问题。我上大学,需要一点帮助。

我需要使用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

我希望你能帮帮我

1 个答案:

答案 0 :(得分:1)

您的If语句存在问题。您没有正确构建逻辑语句。 &将两个字符串连接在一起。 AND是一个逻辑运算符,它将两个条件链接到语句的整体评估。

复选框具有独特的特征,IF Me.Check1 = True ThenIf 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语句,无论谁被投票都可以使用吗?提示:我建议使用记录集或查询定义对象,请尝试使用这两种方法之一更新记录,在线应该有大量资源。