ich bastele seit Tagen an dem Versuch, aus einer Excel-Tabelle Daten in eine dbf-Datei zu übertragen.
Aber der update-Befehl funktioniert nicht.
Mit rs.find versuche ich, auf einen bestimmten Datensatz zu springen, bei dem dann das Datum geändert werden soll. Ich habe das Gefühl, RS.Fields("DATUM").Value entspricht gar nicht dem Datensatz, den ich mit rs.Find gesucht habe (oder vielleicht ist der Befehl Find auch falsch).
Statt rs.find habe ich zum Test auch mal RS.filter = KN eingesetzt. Es lieferte auch eine Fehlermeldung.
Auf jeden Fall bricht das Makro beim update-Befehl ab (Laufzeitfehler 2147467259 ...).
Kann mit jemand einen Tip geben, was ich tun muss.
Schon jetzt Dank an den freundlichen Samariter
Peter
Mein Code
Sub Lauf()
Dim Con As ADODB.Connection
Dim RS As ADODB.Recordset
Dim treiber As String, sqlString As String, Datei As String, Pfad As String
Dim KN As String
Datei = "ABC"
Pfad = "c:\Tmp"
treiber = "FoxPro-Treiber" 'über Veraltung ODBC definiert
'Datenbank Öffnen
Set Con = New ADODB.Connection
With Con
.Provider = "MSDASQL; DSN=" & treiber & ";"
.Open
End With
'Auszuwählende Datenbank
sqlString = "select * from " & Datei
Set RS = New ADODB.Recordset
RS.Open sqlString, Con, adOpenKeyset, adLockOptimistic
For i = 2 To ActiveSheet.UsedRange.Rows.Count
RS.MoveFirst
KN = Cells(i, 1)
KN = "NUMMER = '" & KN & "'"
RS.Find KN
RS.Fields("DATUM").Value = Format(Cells(i, 7), "DD/MM/YYYY")
RS.Update
Next i
RS.Update
RS.Close
Set RS = Nothing
Con.Close
Set Con = Nothing
End Sub