jojo0411
Goto Top

MS Access - DAO Recordset Methode

Hallo Leute,

Ich habe in einer Access Datenbank 3 Tabellen und eine Abfrage.

Tabelle tbl_invoice enthält Rechnungsköpfe
Tabele tbl_invoiceline enthält Rechnungspositionen
Tabelle tbl_purch enthält Auftragspositionen

Die Abfrage abf_BasisAbfragePurchforInvoice enthält alle Positionen die ich verrechnen möchte.

Anbei habe ich folgenden Code generiert der mit erstmal den Rechnungskopf erstellt und das funktioinert so wie es sein soll.

Ich habe jedoch 2 Probleme:

1. Möchte ich in die tbl_purch zurückschreiben und das Datum setzen. Das funktioniert momentan nicht weil er es einfach bei irgendeinem Datensatz hineinschreibt und nicht beim Quelldatensatz.
2. Möchte ich auch die Rechnungspositionen dazu erzeugen. Im wesentlichen ist ein Datensatz in der Purch auch ein Datensatz in der Rechnungsposition.

Punkt 1 habe ich intgegriert nur dürfte beim "Edit" noch etwas fehlen um den richtigen Datensatz zu finden
Punkt 2 habe ich noch gar nicht integriert weil da keinen Ansatzpunkt hatte wie ich das anstellen kann.

Sub fun_VerrechnungPurch()
' Menue: Extras -> Verweise Microsoft DAO 3.6 Object Library  
'                           muss aktiv sein!  
Dim rs As DAO.Recordset
Dim rs1 As DAO.Recordset
Dim i As Integer
  Set rs = CurrentDb.OpenRecordset("tbl_invoice")  
  Set rs1 = CurrentDb.OpenRecordset("tbl_invoiceline")  
  Set rs2 = CurrentDb.OpenRecordset("abf_BasisAbfragePurchforInvoice")  
  Set rs3 = CurrentDb.OpenRecordset("tbl_purch")  
  If rs2.RecordCount > 0 Then
    rs2.MoveLast
    rs2.MoveFirst
    For i = 1 To rs2.RecordCount
      rs.AddNew
      rs![Projekt] = rs2!Projekt
      rs![Rechnungsdatum] = Date
      rs.Update
      rs3.Edit
      rs3![Verrechnet am] = Date
      rs3.Update
      rs2.MoveNext
    Next i
   Else
     MsgBox "nix zum Kopieren vorhanden"  
  End If
  rs.Close
  rs1.Close
  rs2.Close
  rs3.Close
  Set rs = Nothing
  Set rs1 = Nothing
  Set rs2 = Nothing
  Set rs3 = Nothing
End Sub

Content-Key: 398545

Url: https://administrator.de/contentid/398545

Ausgedruckt am: 19.03.2024 um 04:03 Uhr

Mitglied: Nebellicht
Nebellicht 17.01.2019 um 15:33:56 Uhr
Goto Top
Ja, da issn Gedankenfehler.
Du mußt den richtigen Datensatz vor dem EDIT bestimmen, also suchen.
Mitglied: SlainteMhath
SlainteMhath 17.01.2019 aktualisiert um 17:42:37 Uhr
Goto Top
Moin,

dein rs3 wird nicht positioniert... dann is klar das der "irgendwo!" hinschreibt.

Und tu' dir (und allen anderen die deinen Code lesen müssen) einen Gefallen und verwendet sprechende Namen... bei 3 RecordSets immer nachzusehen welcher zu welcher Tabelle gehört ist nervig face-smile

/EDIT: Zeilen 12-13 sind so Quatsch. Der Recordcount steht immer auf 0 solange nicht der letzte Satz gelesen wurde. Die bessere Reiehnfolge ist daher 13, 14, 12

lg,
Slainte