Excel 2 Access
20.01.2018 21:51:25
Hermann
ich versuche Exceldaten in eine Accessdatenbank zu speichern.
Wenn allerdings ein Datensatz schon vorhanden ist soll kein neuer angelegt werden, sondern nur der vorhandene überschrieben werden.
dieser Quellcode führt in der Zeile FindFirst immer wieder zu einem Abbruch.
Woran könnte das liegen?
Müssen die[] klammern sein?
SuchText = "[Teilenr] = '" & Left(Worksheets("Auswertung").Cells(a, 5).Value, 13) & "'
Ich würde mich sehr über eine Tip freuen.
Gruß
Hermann
Sub AccessSammler()
' 2018.01.20 es funktioniert
' 2018.01.05 HS hat Makro angefangen
Dim DB1 As Database 'definiert DB1 als Datenbank
Dim RS1 As Recordset 'definiert RS1 als Tabelle
Dim SuchText As String
Set Db = OpenDatabase("f:\Kalkulation\000Excel-Kalk-Sammler.accdb") ' öffnen AccessDatenbank
Set TB = Db.OpenRecordset("kalkSammel", dbOpenTable) 'öffnet Accesstabelle Anmeldungen
For a = 4 To 17
With TB
If Len(Worksheets("Auswertung").Cells(a, 5).Value) > 13 Then
SuchText = "Teilenr = '" & Left(Worksheets("Auswertung").Cells(a, 5).Value, 13) & "' _
_
" ' suchText
.FindFirst SuchText ' sucht den suchText
If .NoMatch Or (.EOF And .BOF) Then
.AddNew 'DS mit dieser ID nicht gefunden
Else
.Edit 'vorhanden wird Bearbeitet
End If
.Fields("Teilenr").Value = Worksheets("Auswertung").Cells(a, 5).Value
.Fields("Menge").Value = Worksheets("Auswertung").Cells(a, 6).Value
.Fields("Su Aufträge").Value = Worksheets("Auswertung").Cells(a, 7).Value
.Fields("Delta-Preiseblatt").Value = Worksheets("Auswertung").Cells(a, 8).Value
.Fields("Delta-RüKo").Value = Worksheets("Auswertung").Cells(a, 9).Value
.Fields("Su VorgZeit").Value = Worksheets("Auswertung").Cells(a + 18, 7).Value
.Fields("Su VerbrZeit").Value = Worksheets("Auswertung").Cells(a + 18, 8).Value
.Fields("Su Kalk").Value = Worksheets("Auswertung").Cells(a + 18, 9).Value
.Update
End If
End With
Next a
End Sub
Mit freundlichen Grüßen