SQL-UPDATE Query mit VBA ausführen
Betrifft: SQL-UPDATE Query mit VBA ausführen
von: Andreas
Geschrieben am: 07.10.2003 15:00:15
Was muss ich am folgenden Code ändern, damit der UPDATE-SQL-Query ausgeführt wird? Mit "Set rs = Db.OpenRecordset(SQL, dbOpenDynaset)" komme ich nicht weiter, aber auch stundenlanges Googeln hat nicht weitergeholfen. Vielleicht kann einer von euch helfen? Danke!
Public
Sub UpdateDB()
Dim SQL As String
lastrow = Cells.SpecialCells(xlCellTypeLastCell).Row
'Datenbank öffnen
Set Db = DBEngine.OpenDatabase("D:\Documents and Settings\Aemmert\My Documents\SQL-Access-Excel ODBC Test\Access Testdatenbank.mdb", False, False)
For i = 2 To lastrow
'Datensatz suchen
SQL = "UPDATE Bestellungen Bestellungen SET Bestellungen.Frachtkosten = '" & Cells(i, 2) & "', Bestellungen.Umsatzsteuersatz = '" & Cells(i, 3) & "' WHERE Bestellungen.Bestellnr = '" & Cells(i, 1) & "'"
Set rs = Db.OpenRecordset(SQL, dbOpenDynaset)
Next i
Db.Close
End Sub
Betrifft: AW: SQL-UPDATE Query mit VBA ausführen
von: Karl-Otto Reimann
Geschrieben am: 07.10.2003 16:26:45
Hallo Andreas
Ist Deine DAO-Bibliothek verfügbar?
(Im VBA-Editor unter Extras/Verweise
"Microsoft DAO 3.6 Object Library" ein Häkchen setzen)
Gruß KO
Betrifft: AW: SQL-UPDATE Query mit VBA ausführen
von: Andreas
Geschrieben am: 07.10.2003 16:34:46
Ja, die DAO Bibliothek habe ich offen. Habe sowohl die DAO Objects 3.x sowie die MS Activex DO Library 2.x offen.
Betrifft: AW: SQL-UPDATE Query mit VBA ausführen
von: Karl-Otto Reimann
Geschrieben am: 07.10.2003 17:09:25
Bei mir funktioniert folgendes:
Sub DAO_Findv()
' Bestimmung aller Bestellungen der Fa. VICTE
' (vorwärts suchen)
Dim db As Database
Dim rs As Recordset
Dim knopf As Integer, anz As Integer
Dim pfad As String
pfad = "C:\VBA_Krs\"
Set db = OpenDatabase(pfad & "Bestell.mdb")
Set rs = db.OpenRecordset("Bestellungen", _
dbOpenSnapshot)
rs.FindFirst "[Kunden-Code]='VICTE'"
anz = 1
Do Until rs.NoMatch
knopf = MsgBox(Prompt:= _
rs.Fields("Bestell-Nr") _
& " " & rs.Fields("Kunden-Code") _
& " " & rs.Fields("Bestelldatum") _
& vbNewLine & "anz = " & anz, _
Buttons:=vbOKCancel)
If knopf = vbCancel Then Exit Do
rs.FindNext "[Kunden-Code]='VICTE'"
anz = anz + 1
Loop
rs.Close
db.Close
End Sub
Noch Fragen?
mfG KO