Hallo,
ich habe zwei Formulare. In einem Formular werden alle Rückzahlungen angegeben. Diesem Formular liegt die Tabelle CF_Installments zugrunde (PK= RepaymentID).
In einem zweiten Formular wähle ich eine RepaymentID aus, die ich bearbeiten möchte. Dazu soll ich dann in das erste Formular geleitet werden, genau zu diesem Datensatz, den ich im Kombinationsfeld cmbRepayment (im zweiten FOrmular) ausgewählt habe, wenn ich auf den Button klicke.
Mein Code sagt bisher folgendes aus beim Klicken auf dem Button:
Private Sub Befehl12_Click()
DoCmd.OpenForm "CF_InstallmentRepaymentF"
Me!cmbRepayment = ""
End Sub
Damit wird zwar das erste Formular geöffnet, allerdings bei einem neuen Datensatz (das ist als Makro eingestellt).
Ich möchte aber genau zu dem Datensatz mit der RepaymentID, die ich im cmbRepayment-Feld ausgewählt habe.
Ich habe es schon mit GoToRecord probiert, aber mir fehlt die Idee, wie ich in den ganzen Eigenschaften die ich in Klammern angeben muss, darauf verweisen kann, dass er genau zu diesen einem Datensatz springen soll.
Könnt ihr mir weiterhelfen?
Ich wäre sehr dankbar für eure Hilfe!
Ok, ich habe es jetzt über TempVars gelöst.
Beim Klick auf Button des zweiten Formulars zur Auswahl der RepaymentID:
Private Sub Befehl12_Click()
TempVars.Add "EditRepaymentID", Me!cmbRepayment.Column(0)
DoCmd.OpenForm "CF_InstallmentRepaymentF"
Me!cmbRepayment = ""
End SubUnd beim Ereignis "Bei Laden" vom ersten Formular:
Me.Recordset.FindFirst "RepaymentID= " & [TempVars]![EditRepaymentID] & ""Und wenn dann der Datensatz in diesem Formular verändert wird mit Klick auf dem Button:
TempVars.Remove "EditRepaymentID"
DoCmd.GoToRecord , , acNewRecNun kann es aber passieren, dass ich das erste Formular öffnen möchte, um eine neue Rückzahlung anzulegen, anstatt eine bestehende zu bearbeiten.
Deswegen wollte ich mit einer If-Anweisung bei dem Ereignis Formular_OnLoad arbeiten: Wenn die Temporäre Variable (RepaymentID) = 0, dann soll er zu einem neuen Datensatz springen.
Wenn die TemVar nicht null ist (dann war ich davor im zweiten FOrmular und habe eine RepaymentID, die ich bearbeiten will, ausgewählt), dann soll er mir den Datensatz dieser ausgewählten RepaymentID anzeigen.
Private Sub Form_Load()
If [TempVars]![EditRepaymentID] = 0 Then
DoCmd.GoToRecord , , acNewRec
Else
Me.Recordset.FindFirst "RepaymentID= " & [TempVars]![EditRepaymentID] & ""
End If
End SubDa zeigt er mir aber einen Fehler an:
ZitatSyntaxfehler: Fehlender Operator in Ausdruck.
Und markiert dabei in gelb:
Me.Recordset.FindFirst "RepaymentID= " & [TempVars]![EditRepaymentID] & ""
Hallo,
warum sollte die Variable den Wert 0 haben, vermutlich existiert sie im Zweifelsfall gar nicht?!
Und warum setzt du TempVars ein? Vermutlich stammt das aus der Verwendung von Makros. Warum löst du nicht alles per VBA?