PDA

Vollständige Version anzeigen : Recordset auslesen


<Roland>
01.10.2002, 11:08
Hallo,

ich erstelle einmal eine Tabelle und füge einer anderen Tabelle Daten zu.

Das Programm erstellt mir richtigerweise den Rechnungsdatensatz.
Nun sollen Artikel der Tabelle Rechnungspositionen hinzugefügt werden. Das
Verküpfungsfeld ist "Rechnungsnummer"
Die Rechnungsnummer wird anhand des Recordsets neu genereriert. Wenn ich
diese nun übergebenlassen will frägt er mich nach einer Parametereingabe.


Kann mir jemand helfen?

Gruss
Roland


Set db = CurrentDb()
Set rst = db.OpenRecordset("tblRechnungen")
rst.AddNew
rst!Kundennummer = Forms.frmKundenblatt.Kundennummer
Rechnungsnummer1 = rst!ID
rst!Rechnungsnummer = Forms.frmKundenblatt.Kundennummer &
Rechnungsnummer1
rst!Datum = Date
DoCmd.OpenReport "rptRechnung", acViewPreview, , , acDialog
rst.Update
sql2 = "INSERT INTO tblRechnungspositionen ( Art, Datum, Zeit_von,
Zeit_bis, Anzahl, Artikelnummer, Artikelbezeichnung, Beschreibung,
Einzelpreis, Rechnungsnummer ) " & _
"SELECT tblLeistungerfassung.Art, tblLeistungerfassung.Datum,
tblLeistungerfassung.Zeit_von, tblLeistungerfassung.Zeit_bis,
tblLeistungerfassung.Anzahl, tblLeistungerfassung.Artikelnummer,
tblLeistungerfassung.Artikelbezeichnung, tblLeistungerfassung.Beschreibung,
tblLeistungerfassung.Einzelpreis, rst!Rechnungsnummer " & _
"FROM tblLeistungerfassung " & _
"WHERE (((tblLeistungerfassung.Kundennummer) Like
[forms].[frmKundenblatt].[Kundennummer]) AND
((tblLeistungerfassung.abgerechnet)=No));"
DoCmd.RunSQL sql2
DoCmd.RunSQL sql1
rst!erstellt = -1
rst.Update
rst.Close

Thomas Braun
01.10.2002, 11:20
Mir sind einige Sachen aufgefallen, wobei ich nicht weiss, ob sie helfen.

Set db = CurrentDb()
Set rst = db.OpenRecordset("tblRechnungen")
rst.AddNew
rst!Kundennummer = Forms.frmKundenblatt.Kundennummer
Rechnungsnummer1 = rst!ID
rst!Rechnungsnummer = Forms.frmKundenblatt.Kundennummer &
Rechnungsnummer1
rst!Datum = Date
rst.Update ' das Update würd ich hier schon machen
DoCmd.OpenReport "rptRechnung", acViewPreview, , , acDialog
' rst.Update - löschen
sql2 = "INSERT INTO tblRechnungspositionen ( Art, Datum, Zeit_von,
Zeit_bis, Anzahl, Artikelnummer, Artikelbezeichnung, Beschreibung,
Einzelpreis, Rechnungsnummer ) " & _
"SELECT tblLeistungerfassung.Art, tblLeistungerfassung.Datum,
tblLeistungerfassung.Zeit_von, tblLeistungerfassung.Zeit_bis,
tblLeistungerfassung.Anzahl, tblLeistungerfassung.Artikelnummer,
tblLeistungerfassung.Artikelbezeichnung, tblLeistungerfassung.Beschreibung,
tblLeistungerfassung.Einzelpreis, rst!Rechnungsnummer " & _
"FROM tblLeistungerfassung " & _
"WHERE (((tblLeistungerfassung.Kundennummer) Like
[forms].[frmKundenblatt].[Kundennummer]) AND
((tblLeistungerfassung.abgerechnet)=No));"
DoCmd.RunSQL sql2
DoCmd.RunSQL sql1 ' ??? was ist das ?
rst.Edit ' hat gefehlt
rst!erstellt = -1
rst.Update
rst.Close


Ansonsten halte ich dein Vorgehen für kompliziert. Warum erstellt du zur Rechnungsstellung nicht ein Formular mit Unterformular (Rechnungskopf und -positionen)?

<Roland>
01.10.2002, 11:28
Hallo,

erstmal herzlichen Dank, dass du mir hilfst.

Ich kann kein Formular erstellen, weil diese Rechnung aufgrundlage einer Leistungserfassung erstellt wird. Und zur Laufzeit werden die Leistungen in die Rechnungspositionen geschrieben und bei der Leistungstabelle als abgerechnet gekennzeichnet.

Leider bekomme ich immernoch die Meldung, dass er das rst!Rechnungsnummer nicht findet. Bzw. fordert mich zur Eingabe auf.

Weisst Du vielleicht noch einen Tipp?

Gruss
Roland

Thomas Braun
01.10.2002, 12:18
Als nächstes würde ich vermuten, dass dein RecordSet zur Laufzeit noch keine ID hat, da der Datensatz erst in dem Moment generiert wurde. Probier mal folgende Änderung:

...
rst.AddNew
rst!Kundennummer = Forms.frmKundenblatt.Kundennummer
rst.update
rst.MoveLast
rst.Edit
Rechnungsnummer1 = rst!ID
rst!Rechnungsnummer = Forms.frmKundenblatt.Kundennummer &
Rechnungsnummer1
rst!Datum = Date
...

YahooGreg
01.10.2002, 13:30
Hi Roland,

probiers mal mit :

...

tblLeistungerfassung.Einzelpreis, " & rst!Rechnungsnummer & " " &_
"FROM tblLeistungerfassung " & _
...

Vielleicht Hilfts ja.
Gregor