Hackerboard Wiki HaboBlog
Hackerboard bei Facebook Hackerboard bei Google+ Hackerboard bei Twitter

[HaBo]

 
Code Kitchen Allgemeines Coder-Forum rund um das Programmieren eigenständiger, ausführbarer Programme.

csv. mit VBA in Access datenbank importieren

Diskussion: csv. mit VBA in Access datenbank importieren im Forum Code Kitchen, in der Kategorie Software Home; Anzeige hab hier eine schleife gefunden bzw. ein wenig umgebaut die ein .csv file in eine Access datenbank einliest jedoch ...

Antwort
Alt 30.09.08, 12:51   #1 (permalink)
 
Registriert seit: 02.06.05
erik SN Leistung: Facit NTK
Likes: 2
Standard csv. mit VBA in Access datenbank importieren

Anzeige

hab hier eine schleife gefunden bzw. ein wenig umgebaut die ein .csv file in eine Access datenbank einliest
jedoch schneidet es je nach bereich von "intZ" in der schleife immer die letzte spalte ab, leider bin ich
noch nicht genug in die Materie eingestiegen um das richtig umzu bauen...theoretisch brauch ich den
bereich von 0-40 jedoch kommt dann die fehler meldung: ungültiges Argumment X(

vielleicht hat jemand von euch eine passende idee der sich in VBA besser auskennt
eventuel gibt es ja auch eine möglichkeit mit DOCmd.TransferText....
thx erik SN

Code:
Private Sub cmd_inputBO11_Click()

Dim rst As New ADODB.Recordset
Dim strZeile As String
Dim intZ As Integer
Dim intPos1 As Integer
intZ = 0

'On Error GoTo fehler
rst.Open "tbl_BO11", CurrentProject.Connection, , adLockOptimistic
Open "C:xxx.csv" For Input As #1

Do While Not EOF(1)
DoCmd.Hourglass True

Line Input #1, strZeile
rst.AddNew
For intZ = 0 To 40
rst.Fields(intZ) = Left(strZeile, InStr(strZeile, ";") - 1)
intPos1 = InStr(strZeile, ";") + 1
strZeile = Mid(strZeile, intPos1, Len(strZeile) - InStr(strZeile, ";"))
Next intZ
rst.Update

Loop
DoCmd.Hourglass False
Close #1
rst.Close
Exit Sub

fehler:
MsgBox Err.Number & " " & Err.Description
Close #1
End Sub


Das problem liegt an der .csv da am ende der zeile kein ";" steht gibt es hierzu vielleicht
direkt eine Idee wie is es mache ohne das ich das ";" manuell in die csv eintragen muss?
erik SN ist offline   Mit Zitat antworten
Alt 01.10.08, 20:22   #2 (permalink)
 
Registriert seit: 05.06.07
0mega Leistung: Facit NTK
Likes: 0
Standard

hm. früher konnte man csv-dateien in basic problemlos mit input # einlesen (glaub ich). evtl kannst du mit..
Code:
if not right$(strzeile,1) = ";" then strzeile=strzeile+";"
an geeigneter stelle eingefügt etwas anfangen. das sollte prüfen ob am ende ein semikolon sitzt & bei bedarf eins anfügen. packs einfach mal unter's line input und schau nach ob's läuft, programmierung in der theorie is nämlich nich so mein ding xD

viel glück ^^
__________________
Jabber: admin@c-r-t.ath.cx
0mega ist offline   Mit Zitat antworten
   
HaBOT
 
- Anzeige -

Werbung ist gerade online    
Alt 02.10.08, 07:31   #3 (permalink)
Themenstarter
 
Registriert seit: 02.06.05
erik SN Leistung: Facit NTK
Likes: 2
Standard

naja ich hab jetzt einfach die letzte spalte nochma eingefügt nach der schleife des geht dann auch.....der scheiß vba dreck geht ma echt am senkl hey -.-

trotzdem danke

das eigntl. Problem ist wohl das ich am ende der Zeile kein Semikolon stehen habe.
Gibt es vielleicht eine möglichkeit das in jeder Zeile automatisch ans ende des strings zu schreiben
erik SN ist offline   Mit Zitat antworten
Alt 02.10.08, 21:32   #4 (permalink)
 
Registriert seit: 05.06.07
0mega Leistung: Facit NTK
Likes: 0
Standard

hm.. das sollte mein code eigentlich tun.. hab mich wahrscheinlich blöd ausgedrückt
naja, harter arbeitstag, bisschen wirr im kopf und dann produzier ich schonma müll

evtl gehts ja so:

Code:
Private Sub cmd_inputBO11_Click()

Dim rst As New ADODB.Recordset
Dim strZeile As String
Dim intZ As Integer
Dim intPos1 As Integer
intZ = 0

'On Error GoTo fehler
rst.Open "tbl_BO11", CurrentProject.Connection, , adLockOptimistic
Open "C:xxx.csv" For Input As #1

Do While Not EOF(1)
DoCmd.Hourglass True

Line Input #1, strZeile
If Not Right$(strZeile,1) = ";" Then strZeile=strZeile+";"
rst.AddNew
For intZ = 0 To 40
rst.Fields(intZ) = Left(strZeile, InStr(strZeile, ";") - 1)
intPos1 = InStr(strZeile, ";") + 1
strZeile = Mid(strZeile, intPos1, Len(strZeile) - InStr(strZeile, ";"))
Next intZ
rst.Update

Loop
DoCmd.Hourglass False
Close #1
rst.Close
Exit Sub

fehler:
MsgBox Err.Number & " " & Err.Description
Close #1
End Sub
an zeile 17 sollte mein codeschnippsel nämlich gehn, habs aber nich getestet.. und naja, programmieren in der theorie is nich mein ding ^^ viel erfolg

achja noch was.. eventuell muss man bei VBA das $-zeichen bei "Right$()" weglassen. gehts dann immer noch nich, mag ich VBA auch nich mehr

mfg.
__________________
Jabber: admin@c-r-t.ath.cx
0mega ist offline   Mit Zitat antworten
Antwort
   
- Anzeige -

Werbung ist gerade online    

[HaBo] » Software Home » Code Kitchen » csv. mit VBA in Access datenbank importieren
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind aus
Pingbacks sind aus
Refbacks sind aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Sicherheit für Access Datenbank Jahn (In)security allgemein 8 23.08.09 07:55
Access Point vs. Access Point? (wlan) [starfoxx] Kaufberatung 0 20.05.09 13:39
MS Access - langen text in Datenbank speichern kito Code Kitchen 2 03.08.06 08:02
Zugriff auf Access-Datenbank Kai Applikationen 4 16.12.02 17:16
Brauche Mitstreiter in der Entwicklung einer mächtigen Access Datenbank Da Psydonym Applikationen 4 08.11.02 16:17


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61