SQL Update

13/05/2008 - 12:58 von Karl-Georg Hardy | Report spam
Hallo NG,

A07 und Vista U

Ist es möglich folgenden Skript mit EINER SQL-Udate Anweisung auszuführen:

Set dt = db.OpenRecordset("tabelle_Abteilungen")
Do Until dt.EOF
dt.Edit
If (dt!Abt_von <= Date And dt!Abt_bis >= Date) Then
dt!Abt_ja_nein = True
Else: dt!Abt_ja_nein = False
End If
dt.Update
dt.MoveNext
Loop
dt.Close

oder sollte ich doch besser bei VBA bleiben, denn in SQL bin ich noch nicht
fit!

Gruß
Karl-Georg
 

Lesen sie die antworten

#1 Michel Fouquet
13/05/2008 - 13:13 | Warnen spam
Hallo,

Karl-Georg Hardy schrieb:

Ist es möglich folgenden Skript mit EINER SQL-Udate Anweisung auszuführen:

Set dt = db.OpenRecordset("tabelle_Abteilungen")
Do Until dt.EOF
dt.Edit
If (dt!Abt_von <= Date And dt!Abt_bis >= Date) Then
dt!Abt_ja_nein = True
Else: dt!Abt_ja_nein = False
End If
dt.Update
dt.MoveNext
Loop
dt.Close

oder sollte ich doch besser bei VBA bleiben, denn in SQL bin ich noch nicht
fit!



1. dein abt_ja_nein ist offenbar ein abhàngiger, berechneter Wert
(abhàngig von einem Datumsbereich). Berechnete Werte speichert man aber
nicht in der Datenbank, sondern - wie der Begriff ja nahelegt - man
berechnet sie bei Bedarf.

2. erstelle im Abfrageeditor eine entsprechende Aktualisierungsabfrage,
schalte um in die SQL-Ansicht und schaue dir das von Access generierte
SQL-Statement mal an. Dann siehst du, wie es in SQL geht.

3. was mit *einer* Anweisung nicht geht, geht dann eben mit zweien, die
man hintereinander schaltet. Schau dir in der Hilfe die Execute-Methode
des Datenbankobjekts an.

Dim strSQL as String

strSQL = "DeinErstesSQLStatement"
CurrentDB.Execute strSQL, dbFailOnError

strSQL = "DeinZweitesSQLStatement"
CurrentDB.Execute strSQL, dbFailOnError

Gruß,
Michel

Ähnliche fragen