Anmelden

View Full Version : Datensätze in DB mittels VB einfügen



Toschie
24-05-06, 09:50
Hallo
Ich versuchte gerade Daten aus zwei Textdateien in einer DB auf der AS400 zu transportieren!
Klingt ja soweit nich schwer!
Hier bei uns in der FA klappt auch alles einwandfrei!
Hab das Programm zum Kunden geschickt und bei ihm gehts nicht!
Er bekommt zwei verschiedene Fehlermeldungen.

1. Fehlermeldung: "Laufzeitfehler '3265' Ein Objekt, das dem angeforderten Namen oder dem Ordinalverweis entspricht, kann nicht gefunden werden."

die zweite ist erstmal nich so wichtig!

Ich hab die Foren mal durchforstet!
Jeder sagt das dieser Fehler auftritt, wenn man ein Feld anspricht welches nicht in der DB existiert.
Also hab ich mir eine Dateibeschreibung zuschicken lassen und alle Felder durchgeprüft aber es werden alle Felder richtig angesprochen(in der richtigen Reihenfolge undmit dem Richtigen Namen).
So langsam gehen mir die Ideen aus!
Aber vll hat hier ja noch einer eine Idde woran es liegen könnte oder was i falsch gemacht habe!

Schonmal danke

und Gruß

Toschie

JonnyRico
24-05-06, 10:59
Hallo Toschie,

hast du schon mal überprüft ob die Versionen der "Microsoft Data Access Components" auf deinem Rechner und beim Kunden die gleichen sind? Zwischen Win2k und Windows XP ist da standardmäßig schon mal ein Unterschied. Vielleicht solltest du das noch mal klären.

Gruß

Sascha

Fuerchau
24-05-06, 11:20
Du solltest den Fehler mal mit "on error goto ..." abfangen und prüfen welcher Feldname (FieldObjekt) denn da nicht gefunden wird.
Die VB-Fehlermeldung ist da zugegeben etwas zu allgemein.

Toschie
20-06-06, 07:24
Wo muss ich das on error wie einbauen?

Gruß Toschie

JonnyRico
20-06-06, 07:28
Wo muss ich das on error wie einbauen?

Gruß Toschie

Moin,

ungefähr so:



Private Function MyFunction()
On Error GoTo ErrHandler

'Hier der Code der was tut

Exit Function

ErrHandler:

MsgBox Err.Number & ":" & Err.Description

End Function


Gruß

Sascha

Toschie
20-06-06, 07:38
Je entschuldigung habsch vergessen!

Guten Morgen an alle ,)


So das habsch drinne!
Aber die Fehlerbeschreibung Err.description die er mir da ausgibt ist ja die selbige wie ohne diese Funktion!
Wie krieg ich nun das Feld noch raus?

JonnyRico
20-06-06, 08:02
Hi,

ja klar sorry. Also mir war so als könne man in VB6 auch irgenwie die Zeilennummer des Fehlers ermitteln. Du benutzt doch VB6 oder? Falls wir hier nämlich über .Net reden, könntest du das einfach mit Try/Catch erledigen.
Quick & Dirty würde ich mir eben ein Feld anlegen (ErrLine) und hinter jede richtige Zeile im Code eine Zeile: ErrLine=1, ErrLine = 2, usw. hinzufügen. Beim ErrHandler machst du du dann einfach ein Msgbox Cstr(ErrLine) und du hast du Zeile wo der Fehler auftritt.

Gruß

Sascha

Fuerchau
20-06-06, 08:59
Also, dieser Laufzeitfehler deutet darauf hin, dass du z.B. auf einen Namen in der Fields-Auflistung des Recordsets zugreifen willst, der nicht existiert.

Am einfachsten, um den Fehler einzukreisen:

on error resume next
err.clear
--tuwas
if err.number then
' Fehler
endif
--tuwas
if err.number then
' Fehler
endif
:
:
usw.

Ggf. kannst du ja mal mit einer Schleife die vorhandenen Feldnamen in einem Fenster ausgeben.
Irgendwo muss der Unterschied zwischen deinem und dem Kundensystem liegen.

Toschie
20-06-06, 09:04
jo quick & dirty ist gut ;)
Fülle jetzt vor jedem neu eingelesenem Feld das Feld ERR_Zeile mit der jeweiligen Zeilennummer!

Bei mir klappt es!
Das Programm geht jetzt mal raus zum Kunden damit der mir sagen kann, bei welchem Feld das Problem auftritt!

Erstmal herzlichen Dank

werde bald wieder da sein ;)

Gruß Fabian

Toschie
21-06-06, 11:53
Hallo
wollte mich nochmal melden ;)

Das Programm geht jetzt!
Die Anbindung und so was ich programmiert hab war alles richtig!

Es lag an der Dateibeschreibung!
Der Zugriff auf diese Datei durfte nur über den alternativ Namen erfolgen!
Weis der Geier warum !
Auf jedenfall funktioniert es und die Daten kommen an!

Dennoch nochmal herzlichen Danke für die Hinweise!

Gruß Fabian