Suite Deines Office Pakets: Home and Student
AddIn installiert: Nein
Dein Wissensstand: Einsteiger
Welches Virenschutz-Programm hast Du installiert? Avira AntiVir Personal
Betriebssystem Version: Windows XP
Was hast Du gemacht, bevor das Problem aufgetreten ist?
Was hast Du bereits versucht um das Problem zu lösen?
Fehlerbeschreibung und Nachricht
Hallo. Ich programmiere eine Beratungsdatenbank für meine Hochschule. Nun würde ich gerne ein Formular frmStudienfachberatungAusserplan erstellen, in welches neue Beratungen abhängig vom jeweiligen Studenten erstellt werden können. Ich habe das soweit auch alles umgesetzt, nur hänge ich jetzt schon seit Stunden an einer Problematik.
Im Formular frmStudienfachberatungAusserplan ist ein Listenfeld lstBeratung. Daneben habe ich die Buttons cmdNeueBeratung und cmdBeratungSpeichern.
Ich möchte es nun realisieren, dass, wenn man auf cmdNeueBeratung klickt ein Unterformular frmStudienfachberatungAusserplan_UFo erscheint, in welches man die Felder txtBeratungstermin, cboBerater, txtThema und txtVerabredung ausfüllen kann. Wenn man anschließend auf cmdBeratungSpeichern klickt, soll der Datensatz gespeichert werden, im Listenfeld als Eintrag erscheinen und das Unterformular wieder verschwinden. Weiterhin soll, wenn man einen Eintrag aus dem Listenfeld auswählt, das Unterformular mit den entsprechenden Daten wieder erscheinen.
Das habe ich bisher alles erfolgreich umsetzen können, jedoch gibt es ein Problem: Wenn ich einen Eintrag aus dem Listenfeld ausgewählt habe, ist ja das Unterformular geöffnet. Wenn ich nun cmdNeueBeratung betätige wird aus irgendeinem Grund kein neuer Datensatz mit dazugehörigen leeren Feldern geöffnet.
Ich kopiere einfach mal den Code mit rein in der Hoffnung, dass mir jemand helfen kann:
- Code: Alles auswählen
Option Compare Database
Private Sub Form_Current()
lstBeratung.Enabled = True
lstBeratung.Requery
End Sub
Private Sub cmdBerichtAP_Click()
DoCmd.Close acForm, "frmHauptformular"
DoCmd.OpenReport "rptStudienfachberatungAusserplan", acViewPreview, , "Student_ID = " & Me!Student_ID
End Sub
Private Sub cmdNeueBeratung_Click()
'-----------------------------
' Eingabe einer neuen Beratung
DoCmd.GoToRecord , , acNewRec
frmStudienfachberatungAusserplan_UFo.Visible = True
frmStudienfachberatungAusserplan_UFo.SetFocus
frmStudienfachberatungAusserplan_UFo.Form!Student_ID = Me!Student_ID
lstBeratung.Enabled = False ' jetzt kann keine andere Beratung ausgewählt werden
frmStudienfachberatungAusserplan_UFo.Form!txtBeratungstermin = Date
End Sub
Private Sub cmdBeratungSpeichern_Click()
'-------------------------------------------
' Speichern einer neu eingegebenen oder einer bearbeiteten Beratung
Dim lngBeratungAPID As Long
' Sicherheitsabfragen
If IsNull(frmStudienfachberatungAusserplan_UFo.Form!txtBeratungstermin) Then
MsgBox "Bitte geben Sie einen Beratungstermin ein!"
frmStudienfachberatungAusserplan_UFo.Form!txtBeratungstermin.SetFocus
Exit Sub
End If
If IsNull(frmStudienfachberatungAusserplan_UFo.Form!cboBerater) Then
MsgBox "Bitte wählen Sie einen Berater aus!"
frmStudienfachberatungAusserplan_UFo.Form!cboBerater.SetFocus
Exit Sub
End If
If IsNull(frmStudienfachberatungAusserplan_UFo.Form!txtThema) Then
MsgBox "Bitte geben Sie ein Thema ein!"
frmStudienfachberatungAusserplan_UFo.Form!txtThema.SetFocus
Exit Sub
End If
If IsNull(frmStudienfachberatungAusserplan_UFo.Form!txtVerabredung) Then
MsgBox "Bitte geben Sie eine Verabredung ein!"
frmStudienfachberatungAusserplan_UFo.Form!txtVerabredung.SetFocus
Exit Sub
End If
' Speicher-Kommando
DoCmd.RunCommand (acCmdSaveRecord)
lngBeratungID = BeratungAP_ID ' ID der gespeicherten Beratung merken
' Auffrischen der Beratungsliste
lstBeratung.Requery
lstBeratung = lngBeratungID ' Anzeige des gerade gespeicherten Auftrages
lstBeratung.Enabled = True ' jetzt kann wieder ein anderer Auftrag ausgewählt werden
Me!frmStudienfachberatungAusserplan_UFo.Visible = False
End Sub
Private Sub Student_ID_AfterUpdate()
frmStudienfachberatungAusserplan_UFo.Visible = False
lstBeratung.Requery
End Sub
Private Sub lstBeratung_Click()
If Me!lstBeratung <> 0 Then
Me!frmStudienfachberatungAusserplan_UFo.Visible = True
Else
Me!frmStudienfachberatungAusserplan_UFo.Visible = False
End If
End Sub
Private Sub frmStudienfachberatungAusserplan_UFo_Exit(Cancel As Integer)
Me!lstBeratung.Requery
End Sub
Vielen Dank im Voraus.
Beste Grüße
Nino Brown

