collapse

* Benutzer Info

 
 
Willkommen Gast. Bitte einloggen oder registrieren. Haben Sie Ihre Aktivierungs E-Mail übersehen?

* Wer ist Online

  • Punkt Gäste: 72
  • Punkt Versteckte: 0
  • Punkt Mitglieder: 0

Es sind keine Mitglieder online.

* Forenstatistik

  • stats Mitglieder insgesamt: 14061
  • stats Beiträge insgesamt: 67487
  • stats Themen insgesamt: 9096
  • stats Kategorien insgesamt: 5
  • stats Boards insgesamt: 17
  • stats Am meisten online: 415

Autor Thema: Eingabe löschen  (Gelesen 4690 mal)

Offline Klausurenverwaltung

  • Newbie
  • Beiträge: 18
Eingabe löschen
« am: Mai 27, 2010, 19:22:45 »
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!
 

Offline MzKlMu

  • Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 7417
Re: Eingabe löschen
« Antwort #1 am: Mai 27, 2010, 19:33:11 »
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
 

Offline Klausurenverwaltung

  • Newbie
  • Beiträge: 18
Re: Eingabe löschen
« Antwort #2 am: Mai 27, 2010, 19:45:56 »
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! :)
 

Offline MzKlMu

  • Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 7417
Re: Eingabe löschen
« Antwort #3 am: Mai 27, 2010, 19:53:35 »
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