Guten Abend. Ich habe ein Abfrage die mir im Moment 3 Ergebnisse liefert nämlich 3 ID´s aus einer Tabelle. Ich möchte nun das bei diesen 3 Datensätzen 1 Feld auf True gesetzt wird. Leider kenne ich mich mit schleifen nicht aus bzw. habe ich bisher in vba nur Ergebnisse aus Abfragen gebaut wo ich definitiv nur 1 Ergebnis erhalte. Das heißt ich weis im Moment auch nicht wie ich mehrere Zeilen die die abfrage findet weiter verarbeite. Ich habe vieles gelesen und würde es auch hinbekommen die Ergebnisse in ein Listenwahl zu schreiben. Nur weiterverarbeiten kann ich sie nicht da ich den Code wie man das macht selber noch nicht kenne.
Guten morgen!
Ich mach das immer auf folgende weise:
Public Function BearbeiteQueryErgebniszeilen()
Dim db As DAO.Database
Dim qd As DAO.QueryDef
Dim rs As DAO.Recordset
Set db = CurrentDb()
Set qd = db.QueryDefs("AbfrageName")
Set rs = qd.OpenRecordset
If Not rs.EOF Then
rs.MoveFirst
Do Until rs.EOF
'diverse Aktionen für
'die einzelnen Ergebniszeilen
rs.MoveNext
Loop
End If
rs.Close
qd.Close
db.Close
Set rs = Nothing
Set qd = Nothing
Set db = Nothing
End Function
Vielleicht hilft das weiter...
lG andlman
Hallo,
zu was eine Schleife?
Datenbanksprache zur Datenmanipulation ist SQL und nicht VBA.
Mache aus der jetzigen Auswahlabfrage eine Aktualisierungsabfrage und setze das gewünschte Feld auf -1 (True).
VBA brauchst Du dazu gar nicht.
Zeige bitte mal den SQL Text der jetzigen Abfrage.
Das versuche ich ja seit gestern aber access kommt dann immer mit dem Fehler.
Operation mus eine Aktualisierbare Abfrage verwenden.
Hallo,
ZitatOperation mus eine Aktualisierbare Abfrage verwenden.
Dann ist es auch nicht möglich, die Werte der Abfrage per VBA Schleife zu ändern. Das führt zum gleichen Fehler. Du kannst noch nicht mal von Hand etwas in die Abfrage schreiben.
Das heist, die Abfrage ist der eigentliuche Knackpunkt.
Wie sieht denn die Abfrage aus?