hab schon wieder ein Problem:
Ich habe ein Endlosformular und darin ein Kontrollkästchen. Ich möchte nun über einen Button alle Datensätze mit Haken drucken (vorher werden sie noch in eine andre tabelle geschrieben und der Druck greift auf die tabelle zurück).Jedenfalls sollen alle markierten datensätze in die neue Tabelle geschrieben werden. Momentan ist es aber so, dass nur die daten des aktuellen datensatzes in die neue Tabelle markiert werden. Welcher VBA- Anweisung ist notwendig, dass alle Datensätze mit haken in die neue tabelle kopiert werden?
Hier mal noch meine momentanen VBA- Anweisungen:
Sub btnWSDrucken_Click()
Dim db As Database
Dim rs As Recordset
Dim I As Integer
Set db = CurrentDb()
Set rs = db.OpenRecordset(„TmpDruck“, dbOpenDynaset)
If Me![Druck] = True Then
DoCmd.Hourglass True
For I = 1 To Me.[Feld7]
rs.AddNew
rs(„Feld1“) = [Feld1]
rs(„Bezeichnung“) = [Bezeichnung]
rs(„Lieferant“) = [Lieferant]
rs(„Lagerort“) = [Lagerort]
rs(„Stk/Beh“) = [Stk/Beh]
rs(„Feld7“) = [Feld7]
rs(„Stellplatz“) = [Stellplatz]
rs(„Zähler“) = I
rs(„Druck“) = [Druck]
rs.Update
Next I
DoCmd.Hourglass False
DoCmd.GoToRecord
'rs.Close
'MsgBox „Artikel für den Ausdruck von“ + _
'Str$(Me.[Feld7]) + _
" Aufklebern in Warteschlange gestellt!", vbOKOnly
ich würde zunächst ein Me.Requery einfügen, was dazu führt, dass alle Markierungen in die Datenquelle (Tabelle oder Abfrage) Deines Formulars eingetragen werden. Dann diese Datenquelle als zweites Recordset öffnen und mit einer Do Until rs2.EOF = True/Loop-Scheife durch die Datensätze gehen und bei Häkchen gesetzt übertragen.
Also so richtig komm ich noch nicht klar. hab noch nicht mit so einer Schleife gearbeitet. Meine VBA sieht jetzt so aus:
Sub btnWSDrucken_Click()
Dim db As Database
Dim rs As Recordset
Dim rs2 As Recordset
Dim I As Integer
Set db = CurrentDb()
Set rs = db.OpenRecordset(„TmpDruck“, dbOpenDynaset)
Do Until rs2.EOF = True
If Me![Druck] = True Then
DoCmd.Hourglass True
For I = 1 To Me.[Feld7]
rs.AddNew
rs(„Feld1“) = [Feld1]
rs(„Bezeichnung“) = [Bezeichnung]
rs(„Lieferant“) = [Lieferant]
rs(„Lagerort“) = [Lagerort]
rs(„Stk/Beh“) = [Stk/Beh]
rs(„Feld7“) = [Feld7]
rs(„Stellplatz“) = [Stellplatz]
rs(„Zähler“) = I
rs(„Druck“) = [Druck]
rs.Update
Next I
DoCmd.Hourglass False
End If
Loop
'rs.Close
'MsgBox „Artikel für den Ausdruck von“ + _
'Str$(Me.[Feld7]) + _
" Aufklebern in Warteschlange gestellt!", vbOKOnly