ich habe folgendes problem:
ich will per vba aus einer textdatei bestimmte zeilen auslesen und in eine tabelle schreiben. in einer neuen access2000 datenbank habe ich das auch soweit geschaft und es funktioniert genau so wie ich mir das vorgestellt habe.
nun wollte ich den code in die enddatenbank einbinden und habe per ctrl-c und ctrl-v den code rüberkopiert. nun erscheint plötzlich ein "laufzeitfehler 62 - einlesen hinter dateiende" der debuger zeigt auf die erste line mit dem code:
Line Input #1, sLine hat jemand eine ahnung wieso der code in den verschieden access-datenbanken unterschiedlich interpretiert wird?
hier noch der teilcode wo der text ausgelesen wird:
ach ja, wundert euch nicht über die ev etwas koplizierte programmierung. ich bin schliesslich noch grün hinter meinen vba-ohren. ;)
'datenbank und tabelle vorbereiten
Dim db As Database, rs As Recordset
Set db = CurrentDb()
Set rs = db.OpenRecordset("TTypArtikelHolz", dbOpenDynaset, dbSeeChanges)
'textdatei öffnen
Open ImportDatei For Input As #1
Do
Line Input #1, sLine
Loop Until sLine = "; pos"
ArtikelZaehler = 1
While Not EOF(1)
Do
Line Input #1, sLine
If sLine = ";" Then
ArtikelZaehler = ArtikelZaehler + 1
Else
' artikelname
Dim ArtikelName As String
If Right(Left(sLine, 9), 3) = "503" Then
SchnittPos = InStr(1, sLine, ":", 1)
StringLaenge = Len(sLine)
ArtikelName = Right(sLine, StringLaenge - SchnittPos)
Else
' menge
Dim Menge As Long
If Right(Left(sLine, 9), 3) = "504" Then
SchnittPos = InStr(1, sLine, ":", 1)
StringLaenge = Len(sLine)
Menge = Right(sLine, StringLaenge - SchnittPos)
Else
' orientierung
Dim Orientierung As String
If Right(Left(sLine, 9), 3) = "505" Then
SchnittPos = InStr(1, sLine, ":", 1)
StringLaenge = Len(sLine)
Orientierung = Right(sLine, StringLaenge - SchnittPos)
Else
' breite
Dim Breite As Long
If Right(Left(sLine, 9), 3) = "550" Then
SchnittPos = InStr(1, sLine, ":", 1)
StringLaenge = Len(sLine)
Breite = Right(sLine, StringLaenge - SchnittPos)
Else
' hoehe
Dim Hoehe As Long
If Right(Left(sLine, 9), 3) = "551" Then
SchnittPos = InStr(1, sLine, ":", 1)
StringLaenge = Len(sLine)
Hoehe = Right(sLine, StringLaenge - SchnittPos)
Else
' tiefe
Dim Tiefe As String
If Right(Left(sLine, 9), 3) = "552" Then
SchnittPos = InStr(1, sLine, ":", 1)
StringLaenge = Len(sLine)
Tiefe = Right(sLine, StringLaenge - SchnittPos)
Else
End If
End If
End If
End If
End If
End If
End If
Loop Until sLine = ";"
'werte in die tabelle schreiben
rs.AddNew
rs![Typnummer] = TypNr
rs![ArtikelName] = ArtikelName
rs![Anz] = Menge
rs![Bandseite] = Orientierung
rs![Breite] = Breite
rs![Tiefe] = Tiefe
rs![Höhe] = Hoehe
rs![importdatum] = Date
rs![ImportInitialen] = fOSUserName()
rs.Update
Wend
rs.Close
db.Close
Close #1 besten dank für eure zeit und grüsse
marc
-------------------------------------------------------------------------------------
gegenseitige hilfe macht selbst arme leute reich.
------------------------------------------------------------------------------------- |