Hallo zusammen,
ich versuche mal meine Unkenntnis in einer Kurzfassung zu schildern, es handelt sich nämlich wahrscheinlich für die meisten um kein Problem...
Ich habe mir eine kleine Datenbank zur Finanzverwaltung gstrickt. Ich hole mir die Daten hiefür von der Bank (quasi das was auf dem Kontoauszug steht in elektronischer Form) und sortiere dann die Umsätze bestimmten Kategorien zu. Zusätzlich erfasse ich zu manchen Umsätzen auch Rechnungsdaten. Also als Beispiel, Versicherung bucht die Versicherungsprämie vom Konto ab, ich hinterlege für den Umsatz in der Datenbank das es sich um einen Versicherungsbeitrag handelt und die Rechnungsnummer 12345 dazu gehört.
Jetzt kommt es vor das ich den Umsatz splitten muss weil z.B. via Paypal verschiedene Sachen zusammen gekauft wurden und ich mehrere Rechnungen einem Umsatz zuordnen muss.
Ganz bewusst habe ich jetzt auf eine 1:n Beziehung zwischen Umsatz und Rechnung verzichtet und arbeite hier mit einer 1:1 Beziehung weil es für mich einfacher in der Handhabung ist.
Das Datenmodell besteht aus 
tblUmsätze - wird über die Bankdaten befüllt
tblRechnungen
tblHauptkategorie
tblKonto
tblProjekt
tblUnterkategorie
tblUmsätze - tblRechnungen 1:1
alles andere 1:n zu tblUmsätze
Jetzt habe ich ein Formular "frmAusgaben" basierend auf einer Abfrage, in dem ich dem Umsatz die Kategorie zuweise und eine Rechnungsnummer sowie weitere Daten.
Aus dem Formular kann ich per Button "splitten" ein Endlosformular "frmUmsatz_splitten" öffnen
DoCmd.OpenForm "frmUmsatz_splitten", acNormal, , "UmsatzID=" & Nz(Me.UmsatzID, 0), , acWindowNormal
Das Endlosformular "frmUmsatz_splitten" öffnet sich mit dem Datensatz der gerade in "frmAusagaben" gezeigt wurde.
Hier gibt es den Button "neuer Splittbetrag" mit dem ich es hinbekomme einige Daten aus dem Datensatz zu kopieren und als neuen Datensatz anzulegen. 
Private Sub neuer_Splittbetrag_Click()
Me.Orig_Betrag = Me.Betrag
Dim DB As DAO.Database
Dim rs As DAO.Recordset
Set DB = CurrentDb
Set rs = DB.OpenRecordset("tblUmsaetze")
    
    rs.AddNew
        rs!KontoID_FS = Me!KontoID_FS.Column(1)
        rs!Auftragg_Empf = Me!Auftragg_Empf
        rs!Verwendungszweck = Me!Verwendungszweck
        rs!Buchungstag = Me!Buchungstag
        rs!Wertstellung = Me!Rechnungsdatum
        rs!Orig_Betrag = Me!Orig_Betrag
        
        rs.Update
  
        rs.Close
        Set rs = Nothing
        Set DB = Nothing
        
        Me.Orig_Betrag = Me.Betrag
        
    
       
        
      
        
End Sub
Die neuen / kopierten Daten stehen in der Tabelle, aber im Endlosformular wird nur der ursprüngliche Datensatz gezeigt. 
Was muss ich tun damit der neue Datensatz ebenfalls angezeigt wird?
Ich würde dann im nächsten Schritt einen weiteren Button anlegen, mit dem ich das Endlosformular "frmUmsatz_splitten" wieder schließe und zum "frmAusgabe" zurückkehre oder auch die Daten wieder verwerfen kann. 
Die "Goldlösung" wäre natürlich, dass ich im Endlosformular den Betrag nicht nur 1x splitten kann, aber wir wollen mal nicht übermütig werden. ;-)
			
			
			
				Hallo
mache aus der 1:1 Beziehung 1:n und du kannst splitten wie du lustig bist und so oft du willst. 
Ohne irgendwelche Verrenkungen machen zu müssen und ohne einen Buchstaben VBA. Wenn der Buchungsbetrag auch zu verschiedenen Kategorien gehören kann müssten diese auch in der Rechnungstabelle erfasst werden.
Darstellung der Rechnungspositionen in einem Endlosunterformular. 
			
			
			
				Hallo,
ZitatDarstellung der Rechnungspositionen in einem Endlosunterformular.
Die braucht er wahrscheinlich nicht, die kommen ja auch nicht von der Bank.
Ich würde das mit einen Selfjoin der Tabelle "Umsaetze" machen. Da kann ich dann
die Splitbuchungen in ein UFo packen.
gruss ekkehard
			
				Vielen Dank für deine schnelle Rückmeldung. Im Prinzip hast du vollkommen recht und es müsste sogar eine m:n Beziehung sein weil manchmal auch mehrer Umsätze zu einer Rechnung gehören. Diese Datenmdell hatte ich in der Vergangeheit in einer anderen Version meiner Finanzverwaltung, aber das wird so aufwendig für mich, dass ich es nur mit viel Hilfe aus dem Forum ändern kann. 
Wenn ich deinen Vorschlag befolge, müsste ich die Rechnungsdaten im Umsatzformular als Unterformular darstellen. Zudem wird die Auswertung für mich aufwendiger. Daher habe ich mich für dieses Modell entschieden, gebe dir aber vollkommen recht das mein Datenmodell eine Krücke für meine bescheidenen VBA Kenntnisse ist. Im Übrigen sind es vielleicht 10 - 20 Umsätze pro Jahr die gesplittet werden. Dafür lohnt sich tatsächlich der Aufwand nicht. 
Aber die gute Nachricht ist, ich habe es gerade selber hinbekommen und zwar mit folgenedem Code:
Me.Orig_Betrag = Me.Betrag
DoCmd.RunCommand acCmdSelectRecord
     DoCmd.RunCommand acCmdCopy
     DoCmd.RunCommand acCmdRecordsGoToNew
     DoCmd.RunCommand acCmdSelectRecord
     DoCmd.RunCommand acCmdPaste
     Me.Orig_Betrag = Me.Betrag
			
			
			
				Passt zwar gerade nicht zum Thema, trotzdem versuche ich mal mein Glück. Im Formular habe ich die Kategorie als Kombifeld . Datenherkunft ist die Tabelle: Hauptkategorie, Steuerelement: HauptkategorieID_fs,
dann zwei Spalten  und  Spaltenbreite auf 0;5cm und es funktioniert hervorragend, aber wie um Himmelswillen bekomme ich die Einträge von A-Z sortiert und nicht nach der Reihenfolge der ID? 
			
			
			
				Hallo,
das Kombi hat doch eine Abfrage, dort kannst du sortieren. 
			
			
			
				Hallo,
Dein erster Code gefiel mir besser. Das DoCmd-Objekt gibt es m.W. nur noch aus
Komptabilitätsgründen zu früheren Versionen.
ZitatWas muss ich tun damit der neue Datensatz ebenfalls angezeigt wird?
Wenn du einen DS per VBA anfügst bekommt das Formular das gar nicht mit. Du musst
also die DS-Herkunft erneut abrufen
Me.RequeryIch frage mich allerdings wie du die Splitbuchungen dem DS von der Bank zuordnest, -
mit der RechnungsNr ?
ZitatWenn ich deinen Vorschlag befolge, müsste ich die Rechnungsdaten im Umsatzformular als Unterformular darstellen.
Nein, m.E. einfach als Kombi. Ins UFo kommen die Splitbuchungen.
D.h. HFo und UFo haben die gleiche DS-Herkunft (Umsaetze). Wenn meine o.a. Annahme
richtig ist werden die dann über die RechnungsNr verknüpft.
Zeige doch mal ein Bild des Beziehungsfensters.
gruss ekkehard
			
				Moin, 
mein erster Code war sicherlich "eleganter" wenn man VBA beherrscht, der zweite funktioniert aber... ;-) 
Ich bin wirklich eine Null was Code angeht und meistens nicht mal in der Lage einen "allgemein" gehaltenen Tip aus dem Forum auf meine Situation anzuwenden. Wenn ich etwas Zeit habe, versuche ich aber deinen Vorschlag mit Me.Requery umzusetzen.
Die Zuordnung der Splittbuchung zur Bank ist eigentlich nicht gegeben. Ich verändere auch den DS von der Bank, allerdings gibt es ein Ja/Nein Feld "Splittbuchung"  das ich markiere bei einem Splitt und zusätzlich speichere ich den Originalbetrag des Bank DS in dem Feld "Orig_Betrag".
Das ist keine elegante Lösung, reicht für meine Zwecke aber aus.
Die Idee mit dem Komi finde ich sehr interessant. Ich muss mal sehen ob ich das umsetzen kann. Ich bin allerdngs fast fertig mit meiner Version der DB und weiß nicht ob ich die Zeit finde nochmal von vorne anzufangen mit dem geänderten Datenmodell. 
Anbei noch des Beziehungsfenster. 
Vielen Dank für eure Unterstützung.