vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Top-Preis! AP-Access-Tools-CD Volume 1  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Visual-Basic Einsteiger
Textdatei in Access97 Datenbank einlesen - Probleme mit LF und CR 
Autor: Markus
Datum: 18.09.01 21:48

Hallo,

ich versuche eine Textdatei in eine Acces97 Datenbank einzulesen.

Die Struktur der Datei ist so:

Name1 ; Name2; Name3 ; Straße ;

Leider habe ich am Ende des Datensatzes keinen CR+LF sonder nur einen LF.

Wie kann ich den LF durch CR+LF ersetzen ??

wie kann ich die Datei einlesen ???

muß ich die Semikolons durch Kommas ersetzen ?

Bin leider kein Profi,

vielen Dank für euere Hilfe

Gruß, Markus
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Textdatei in Access97 Datenbank einlesen - Probleme mit LF und CR 
Autor: ModeratorDieter (Moderator)
Datum: 18.09.01 22:42

Hi Markus,

hast Du die eigentliche Import-Routine schon erstellt?
Wie hast Du vor die Textdatei einzulesen?

Zeile für Zeile auslesen und dann per Recordset.AddNew und Recordset.Update die Daten nach Access97 übertragen?

Cu
Dieter
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Textdatei in Access97 Datenbank einlesen - Probleme mit LF und CR 
Autor: Markus
Datum: 19.09.01 12:35

Hallo,

eine Importroutine hab ich versucht, geht aber nicht, jetzt wollte ich die *.csv Datei mittels einem Markro von Access97 einlesen.

Die Datei hat ca. 20 Felder pro Datensatz, diese sind mittels Semikolon getrennt, kann man die überhaupt mit VBA einlesen ???

Kann mir da jemand helfen ?

Das nächste Problem, am Ende des Datensatzes ist nur ein LineFeed (LF) ich brauch zum einlesen aber einen LF+CR.

Vielen Dank für euere Hilfe.

Gruß,
Markus
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Textdatei in Access97 Datenbank einlesen - Probleme mit LF und CR 
Autor: ModeratorDieter (Moderator)
Datum: 19.09.01 13:34

Hallo Markus,

hier mal ein Beispiel, welches unter VB funktioniert (ob's unter VBA genauo geht - ausprobieren):
<code>Dim F As Integer
Dim sInhalt As String
Dim sTextFile As String
Dim lPos As Long
Dim sLine As String
Dim iFeldCount As Long
Dim Db As Database
Dim Rs As Recordset
 
<font color=green>' maximale Anzahl Felder pro Zeile</font>
Const iMaxFelder = 20
ReDim sFeld(iMaxFelder)
 
<font color=green>' Access-Datenbank + Tabelle öffnen</font>
Set Db = OpenDatabase("DeineMDB.mdb", False, False)
Set Rs = Db.OpenRecordset("DeineTabelle")
 
sTextFile = "DeineCSVDatei.csv"
 
<font color=green>' zunächst den gesamten Inhalt einlesen</font>
F = FreeFile
Open sTextFile For Binary As #F
sInhalt = Space$(Lof(F))
Get #F, , sInhalt
Close #F
 
<font color=green>' nun den Inhalt splitten (LF)</font>
Do
  lPos = InStr(sInhalt, Chr$(10))
  If lPos > 0 Then
    sLine = Left$(sInhalt, lPos - 1)
    sInhalt = Mid$(sInhalt, lPos + 1)
  Else
    sLine = sInhalt: sInhalt = ""
  End If
 
  <font color=green>' Nun die einzelnen Felder ermitteln</font>
  iFeldCount = 0
  While sLine <> ""
    iFeldCount = iFeldCount + 1
    lPos = InStr(sLine, ";")
    If lPos > 0 Then
      sFeld(iFeldCount) = Left$(sLine, lPos - 1)
      sLine = Mid$(sLine, lPos + 1)
    Else
      sFeld(iFeldCount) = sLine: sLine = ""
    End If
  Wend
 
  <font color=green>' Felder in die Datenbank speichern</font>
  Rs.AddNew
  Rs("Feld_1") = sFeld(1)
  Rs("Feld_2") = sFeld(2)
  ...
  Rs.Update
Loop Until sInhalt = ""
Close #F
 
Rs.Close
Db.Close</code>
Schau's Dir mal an - probier's aus und viel Erfolg!

Cu
Dieter
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel