Moin den Wissenden,
ich kämpfe grad mit einem Phänomen, daß mir noch nicht begegnet ist.
Ich habe mir in VBA ein Marko geschrieben, daß mir die Zeileninhalte eines Excelblattes ist eine Datenbanktabelle schreibt. Bis dato hat es auch gut funktioniert.
Mit einem Mal bekomme ich die Meldung "Dateityp-Konvertierungsfehler.
Die Überprüfung der Felddeklaration in Excel ergab die korrekte Einstellung bestehend aus Text und Datum
Die Überprüfung der Accesstabelle hatte das selbe Ergebnis. Text und Datum. Somit sind alle Felder korrekt deklariert.
Da ich nun zu keinem Ergebnis gekommen bin, habe ich die Execltabelle einmal in Access importiert. Fehlerreport gab es keinen, die Überprüfung der Felddeklaration allerdings brachte die Überraschung zu Tage, daß 4 Spalten nebeneinander als Währung deklariert sind! Es gibt zwar in der Exceltabelle eine Spalte mit Währung, aber diese Spalte wird nicht ausgelesen bzw. wurde nicht importiert.
Somit bleiben bei mir nur: ???
Weiß jemand Rat???
Gruß
Michael
ZitatFelddeklaration in Excel ergab die korrekte Einstellung bestehend aus Text und Datum
Excel kennt keine Datentypen, da lässt sich auch nichts deklarieren.
Datentypen ergeben sich aus Zellinhalten (je Zelle!), ggf. unterstützt durch eine Zellformatierung.
Ratschläge auf eine unbekannte VBA-Routine zu geben: Glaubst Du nicht, dass das etwas zu anstrengend ist? Oder zahlst Du gut pro Versuch?
Moin ebs,
hast ja recht. Ich dachte halt, daß jemand dieses Phänomen kennt...
Von daher hier nun mal der Code ...
Sub Datenbank_fuellen()
Dim db As Object
Dim rs As Object
Dim i As Integer
Dim Ende, Start As Long
Set db = CreateObject("DAO.DBEngine.120").OpenDatabase("\\...\Test.accdb")
Set rs = db.OpenRecordset("Laufende Themen")
Start = rs.RecordCount
Ende = 0
Do Until IsEmpty(Cells(Ende + 1, 1))
Ende = Ende + 1
Loop
On Error GoTo Fehler
If (Start + 1) = Ende Then GoTo Enden
For i = (Start + 1) To Ende
rs.AddNew
RS!... =cells(i,1-59)
rs.Update
Next i
Exit Sub
Fehler:
MsgBox (Err.Description)
Enden:
db.Close
Set db = Nothing
End Sub
Bis dato sind 2035 Datensätze auf diese Art eingetragen worden.
Ich verstehe den Code und den Ablauf nicht.
rs.RecordCount: (Zum korrekten Zählen müsste man ein MoveLast davorschalten.) Welche Rolle spielt die Datensatzanzahl einer DB-Tabelle beim Auslesen eines Excel-Tabellenblattes?
RS!... =cells(i,1-59): Welche Spalte wird auf -58 referenziert?
cells kleingeschrieben. Intellisense sagt, da gibt es einen Fehler.
ZitatBis dato sind 2035 Datensätze auf diese Art eingetragen worden.
Auf genau diesen Code? Da melde ich Zweifel an.