2017-02-19 3 views
0

Als Teil meines Schulprojekts mache ich Multiple-Choice-Programm für meinen Lehrer als mein Client mit VBA in MS-Zugang. Es gibt ein Formular, das für jede Frage viele Datensätze enthält. Mit der gotonextrecord Taste kann ich die nächste Frage auswählen. Aber ich habe einen Zähler verwendet, um zu prüfen, ob die richtige Antwort für jeden Datensatz ausgewählt ist. Wenn der Benutzer eine Frage beantwortet und zweimal auf die Optionsschaltfläche für die gleiche Frage klickt, zählt der Zähler. Wie halte ich den Zähler an und zähle, wenn der Benutzer zweimal oder unendlich oft auf den gleichen Datensatz klickt.Wie man einen Zähler in VBA macht, der nicht zählt, wenn die gleiche Taste geklickt wird

code

+0

Sie müssen Ihren Code veröffentlichen, auch der Tag-Zugriff ist nicht richtig für ms Zugriffsfragen. – Fionnuala

+2

Bitte schreiben Sie den Code als Text. – Fionnuala

+0

Deaktivieren Sie die Schaltfläche? –

Antwort

0

Halten Sie den Namen der Schaltfläche als Variable auf Modulebene (wie Sie mit der Zählvariable tun):

Dim NameOfButtonToCheck = "Option110" 

Sie werden für alle möglichen Tasten, um einen gemeinsamen Handler benötigen :

Private Sub SharedHandler(buttonName As String) 
    If buttonName = NameOfButtonToCheck Then Exit Sub 
    ... 
End Sub 

handler Jede Taste ist in der gemeinsamen Behandlungsroutine aufrufen, in dem Namen Passing (die eindeutig identifiziert, die Steuer):

Private Sub Option110_Click() 
    SharedHandler "Option110" 
End Sub 

Ein besserer Ansatz zu speichern wäre der Schüler Eintrag in einem Datensatz:

Entries 
---------- 
StudentID 
TestID 
ChoiceID 

Wenn der Benutzer den Knopf drückt, wenn kein solcher Datensatz für den Schüler/Test existiert, erstellen es. Ändern Sie andernfalls den vorhandenen Datensatz.

Die Berechnung, wie viele Antworten der Benutzer richtig gemacht hat, sollte eine Zählung dieser Datensätze sein; und somit unabhängig davon, wie oft der Benutzer den Knopf gedrückt hat.

Verwandte Themen