Hallo Freunde,
ich habe folgendes Problem ::)
ich habe ein Formular (FrmKasse), sein PriSchlüssel (Buchungen_ID) ist keine AutoWert sondern eine Zahl, fängt mit 0 an und als fortlaufende Nr weitergehen soll.
in einem anderen Formular habe ich die Datensätze zum per Klick in das (FrmKasse) zum kopieren.
Problem: Wenn ich mit foldengen Code das Formular (FrmKasse) öffne und bestehende Datensätze in das kopieren möchte kopiert ersten Datensatz immer in Form_ID (0).
Code:
DoCmd.OpenForm "FrmKasse"
Dim BuchID As Integer
BuchID = Forms.FrmKasse!Buchungen_ID
If BuchID = 0 Then
BuchID = Nz(DMax("Buchungen_ID", "TblBuchungen"), 0) + 1
Else
DoCmd.GoToRecord , , acNewRec 'Neuer Datensatz
End If
wie kann ich das Problem beseitigen?
Vielen Dank im Voraus an allen zur Lösung beteiligt werden.
VG
Zorlayan
Hallo,
kannst Du erklären, was Du überhaupt erreichen willst?
Irgendwie kopierst Du nichts, Du setzt lediglich "BuchID" auf 1, wenn es 0 ist.
btw: Warum nimmst Du keinen Autowert als Primärschlüssel?
wenn es dein Wunsch ist, hier ist der Code. ;)
Ich will keinen AutoWert weil die Buchungen ich nur ein mal hinzufügen möchte.
Public Sub KaufBuchungen()
'On Error Resume Next
'kontrolle ab hier
'Buchungen hinzufügen
Dim VerTitel As String, VerName As String, VerNachname As String
VerTitel = Forms.ZwiForm2!VTitel
VerName = Forms.ZwiForm2!VName
VerNachname = Forms.ZwiForm2!VNach
DoCmd.OpenForm "FrmKasse"
'Nur für dne ersten Eintrag
Dim BuchID As Integer
BuchID = Forms.FrmKasse!Buchungen_ID
If BuchID = 0 Then
BuchID = Nz(DMax("Buchungen_ID", "FrmKasse"), 0) + 1
Else
DoCmd.GoToRecord , , acNewRec 'Neuer Datensatz
End If
Forms.FrmKasse!Konto_ID = Forms.ZwiForm2!Konto_ID
Forms.FrmKasse!Kategorie_ID = 3
Forms.FrmKasse!Ausgabe = Forms.ZwiForm2!EK_Preis
Dim KString As String
KString = (VerTitel & Space(1) & VerName & Space(2) & VerNachname)
Forms.FrmKasse!Begünstigter_Einzahler = KString
Forms.FrmKasse!Datum = Forms.ZwiForm2!KDatum
Forms.FrmKasse!Verwendungszweck = Forms.ZwiForm2!VerZweck
DoCmd.Save
'On Error GoTo 0
DoCmd.OpenForm ("Drucken")
End Sub
Hallo,
ZitatIch will keinen AutoWert weil die Buchungen ich nur ein mal hinzufügen möchte.
verstehe ich nicht, gerade dann kannst Du doch einen Autowert verwenden. Der zählt ja auch nur automatisch hoch, wie das DMax auch.
Hallo,
Du öffnest ein Formular, das den "ersten" DS anzeigt, das ist (vermutlich) der mit BuchID =0.
Sodann berechnest Du die max. BuchID +1 , aber ohne diesen Wert weiter zu verwenden.
Gotorecord wird vermutlich nie ausgeführt und somit wird der "erste" Ds (mit BuchID =0) durch die anschliessenden Zuweisungen überschrieben.
Wahrscheinlich willst Du aber dies erreichen:
Zitat.
.
.
DoCmd.OpenForm "FrmKasse", , , , acFormAdd
Forms.FrmKasse!BuchID = Nz(DMax("Buchungen_ID", "FrmKasse"), 0) + 1
'<Edit>: Forms.FrmKasse!BuchID = Nz(DMax("Buchungen_ID", "FrmKasse"), -1) + 1 Wenn bei 0 begonnen werden soll </Edit>
Forms.FrmKasse!Konto_ID = Forms.ZwiForm2!Konto_ID
.
.
.