Supportnet Computer
Planet of Tech

Supportnet / Forum / Datenbanken

Runtime Error 3421





Frage

Hi, bei folgendem Code bekomme ich immer "Datentyp-Konvertierungsfehler..." Field 1 ist als Text mit Primaryschlüssel und Field 2 als Datum angelegt Kann mir jemand helfen? On Error GoTo Err_Befehl39_Click DoCmd.SetWarnings False Dim objAppXL As Object '// Excel.Application Dim objWkbXL As Object '// Excel.Workbook Dim objWksXL As Object '// Excel.Worksheet Dim db As DAO.Database Dim rst As DAO.Recordset Dim lCount As Long '// Zaehler fuer die Treffer Dim Z As Long Dim Y As Long Z = 1 Y = 2 '// Zugriff auf Excel-Instanz On Error Resume Next Set objAppXL = GetObject(, "Excel.Application") If err.Number = 429 Then Set objAppXL = CreateObject("Excel.Application") On Error GoTo 0 '// Arbeitsmappe oeffnen Set objWkbXL = objAppXL.Workbooks.Open("C:\ps.xls", , True) Set objWksXL = objWkbXL.Sheets(1) '// Recordset zum Schreiben oeffnen Set db = DBEngine(0)(0) Set rst = db.OpenRecordset("MyTickets") For Y = 2 To 100 If objWksXL.Cells(1, Y) = "Created Date/Time" Then GoTo weiter Next Exit Sub weiter: objWksXL.Visible = True '-- ab zeile 2 soll eingelesen werden objWksXL.Application.Cells(2, 1).Activate '// Schleife (gleichzeitiges Schreiben und Zaehlen) '-- bis zur ersten leeren zeile lesen Do Until Z > 100 'Or objWksXL.Cells.Value = "" Z = Z + 1 If Not IsEmpty(objWksXL.Cells(Z, 1).Value) Then '// Zaehlen lCount = lCount + 1 '// Schreiben With rst .AddNew .Fields(1) = objWksXL.Cells(Z, 1).Value .Fields(2) = objWksXL.Cells(Z, Y).Value .Update End With End If Debug.Print Z Loop DoCmd.OpenForm "form_order_eigene_cases" DoCmd.SetWarnings True Exit_Befehl39_Click: Exit Sub Err_Befehl39_Click: MsgBox err.Description Resume Exit_Befehl39_Click

Antwort 1 von Marie

Keine Ahnung, Du schreibst nicht wirklich wo es die Fehlermeldung gibt. Aber eigentlich kann es ja gar keine ordentliche Fehlermeldung geben:
Zitat:
On Error GoTo Err_Befehl39_Click


ist völlig überflüssig, weil es keinen einzigen Prozedurschritt gibt, wo diese Zeile wirksam ist, denn direkt nach den Dim-Anweisungen schreibst Du:

Zitat:
On Error Resume Next
, was die Zeile oben ausser Kraft setzt.

Ferner schreibst Du:

Zitat:
DoCmd.SetWarnings False
, so dass Dir auch keine Meldungen angezeigt werden.


Kommentier doch mal "DoCmd.SetWarnings False" und "on error resume next" aus und geh dann mal mit F8 im Einzelschritt den Code durch, dann siehst Du doch an welcher Zeile Dein Code hängenbleibt. Dann schreibste das nochmal hier, dann muss doch keiner jetzt Deinen ganzen Code durchsuchen wo da was kleben bleiben könnte.

Gruß Marie

Antwort 2 von babypeet

Erledigt.

Es lag dann letztendlich an der Exceltabelle.

Vielen Dank für Eure Mühe und die schnellen Antworten

Gruß
Babypet

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: