Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Eingabe löschen

Begonnen von Klausurenverwaltung, Mai 27, 2010, 19:22:45

⏪ vorheriges - nächstes ⏩

Klausurenverwaltung

Hallo miteinander,
nachdem mir schon einmal sehr gut geholfen wurde, wende ich mich noch einmal an Euch!  :)

Folgende Fragestellung:

Immer noch die selbe Datenbank wie beim letzten Mal.
Ich habe ein Formular, bei dem man die Matrikel-Nr. eingibt.
Nach der Eingabe, wird durch VBA direkt überprüft, ob der Student die Voraussetzungen zum Mitschreiben einer Klausur erfüllt.
Hat er sie erfüllt, kommt ein Fenster mit der Nachricht: "Anmeldung OK!"
Wenn er sie nicht erfüllt, sagt er, dass es nciht funktioniert, der Datensatz wird aber trotzdem als angemeldet gespeichert.
Allerdings weiß ich nciht, wie ich den DS direkt wieder lösche, ohne das er je gespeichert wird.
Dürfte doch kein Problem für Euch sein! :)
Vielen Dank schon einmal!

MzKlMu

Hallo,
Me!Undo löscht einen angefangenen Datensatz.
Es wäre aber besser, die Prüfung in das Ereignis "Vor Aktualisierung" des Formulars zu machen (und nicht nach Eingabe, was auch immer das heisen mag).
Die Aktualisierung kann dann abgebrochen werden. Es wären dann diese Befehle notwendig:
Me.Undo
Cancel = True


Kannst Du mal etwas besser erklären wo die Prüfung erfolgt und eventuell den Code dazu.
Gruß
Klaus

Klausurenverwaltung

Private Sub Matrikel_Nr_AfterUpdate()

Dim lngMatrikelnr As Variant, lngFachNr As Variant

Matrikelnr = Me![matrikel-nr]

FachNr = Me![Fach-Nr]

If DCount("*", "Teilnahme", "[Matrikel-Nr]= " & lngMatrikelnr & " and [Fach-Nr] = " & lngFachNr) >= 3 Then
MsgBox ("Anmeldung nicht OK!" & vbCrLf & "Bitte wieder abmelden und Sonderfall mündliche Prüfung beachten!")
Else: MsgBox ("Anzahl der Versuche OK!")

End If



So lautet mein VBA-Code. Nach der Aktuallisierung wird er ausgeführt, damit ich mit der Matrikel-Nr arbeiten kann.
Also man gibt die Matrikel-Nr ein, drückt TAB oder ENTER und er schaut, ob er sich anmelden darf.
Wenn er sich nicht anmelden darf, soll der Datensatz wieder gelöscht werden.
Danke! :)

MzKlMu

Hallo,
im Ereignis "Nach Aktualisierung" ist es zu spät, es ist ja aktualisiert.
Das gehört wie bereits gesagt in "Vor Aktualisierung" des Formulars.

Private Sub Form_BeforeUpdate(Cancel As Integer)
If DCount("*", "Teilnahme", "[Matrikel-Nr]= " & Me![matrikel-nr] & " and [Fach-Nr] = " & Me![Fach-Nr]) >= 3 Then
MsgBox ("Anmeldung nicht OK!" & vbCrLf & "Bitte wieder abmelden und Sonderfall mündliche Prüfung beachten!")
Me.Undo
Cancel=True
Else
MsgBox ("Anzahl der Versuche OK!")

End If
End Sub

Die extra Variablen brauchst Du nicht.
Gruß
Klaus