Pfad zu einer Tabelle in eine Variable schreiben

P

pb.Brain

Hallo NG,

ich habe ein kleines Problem mit einer Datenbank.
Ich will Textdateien in eine Tabelle einlesen.

Das bekomm ich soweit auch hin, nur der Clou ist, dass ich den User
1. den Pfad zu der Textdatei auswählen lassen will (funktioniert)
2. den Pfad und den Namen zu einer Tabelle in einer (nicht vorher
festgelegten) Datenbank.

Hier mein Code, wie er zur Zeit aussieht, zum besseren Verständnis :blush:

Option Compare Database
Option Explicit


Private Sub Öffnen_Click()
On Error GoTo Err_Öffnen_Click

Dim Path As String
Dim Dateinummer As Integer
Dim Textzeile

If ((IsNull(Me![Dateipfad])) Or (Me![Dateipfad] = "")) Then
Me![Dateipfad] = DateiOeffnen("C:\Import Datenbank\Logs",
"Datei öffnen")
Else
Me![Dateipfad] = DateiOeffnen(Me![Dateipfad], "Datei öffnen")
End If

DoEvents

If ((Not IsNull(Me![Dateipfad])) And (Me![Dateipfad] <> "")) Then
DoCmd.Hourglass True
Dateinummer = FreeFile
Open Me![Dateipfad] For Input As #Dateinummer
While Not EOF(Dateinummer)
Line Input #Dateinummer, Textzeile
Me![Textfeld] = Me![Textfeld] & Textzeile & vbCrLf
Wend
Close #Dateinummer
End If

Exit_Öffnen_Click:
DoCmd.Hourglass False
Exit Sub

Err_Öffnen_Click:
DoCmd.Hourglass False
MsgBox Err.Description
Resume Exit_Öffnen_Click

End Sub
Private Sub OK_Click()
On Error GoTo Err_OK_Click

DoCmd.Close acForm, Me.Name

Exit_OK_Click:
Exit Sub

Err_OK_Click:
MsgBox Err.Description
Resume Exit_OK_Click

End Sub

Private Sub Importieren_Click()
On Error GoTo Err_Importieren_Click

Dim Path As String
Dim Dateinummer As Integer
Dim Textzeile

'***************************************************************

//Dieses Feld benutze ich zur Zeit noch nicht, soll aber dann dafür
genutzt werden, um den Pfad zu der eigentlichen Tabelle
anzugeben...

'If ((IsNull(Me![Dateipfad_imp])) Or (Me![Dateipfad_imp] = ""))
Then
' Me![Dateipfad_imp] = DateiOeffnen("C:\Import Datenbank\Logs",
"Datei Importieren")
'Else
' Me![Dateipfad_imp] = DateiOeffnen(Me![Dateipfad_imp], "Datei
Importieren")
'End If
'
'DoEvents


'***************************************************************

If ((Not IsNull(Me![Dateipfad])) And (Me![Dateipfad] <> ""))
Then
DoCmd.Hourglass True
Dateinummer = FreeFile
Open Me![Dateipfad] For Input As #Dateinummer

Close #Dateinummer


//Hier kommt der Teil, in dem ich den eigentlichen Import machen
will...

könnte es hier vielleicht sein, dass ich statt "acImportFixed"
-"Delim" schreiben muss?
Ich habe es zwar schon versucht, aber dann liest er mir gar nix mehr
ein. (Die Fehlermeldung steht am Schluss, zwecks besserer Übersicht
;))
DoCmd.TransferText acImportFixed, "Importspezifikation",
"Import_Table", Me![Dateipfad], False, ""
End If

'***************************************************************

Exit_Importieren_Click:
DoCmd.Hourglass False
Exit Sub

Err_Importieren_Click:
DoCmd.Hourglass False
MsgBox Err.Description
Resume Exit_Importieren_Click

End Sub


//Fehlermeldung bei "acImportDelim":

.... konnte nicht alle Daten an die Tabelle anfügen.

In 511 Datensätzen wurden die Inhalte einiger Felder gelöscht, und 0
Datensätze wurden aufgrund von Schlüsselverletzungen nicht
eingefügt.
*Wenn Daten gelöscht wurden, entsprechen die von Ihnen eingefügten
oder importierten Daten bezüglich der Eigenschaften Felddatentyp oder
Feldgröße nicht den Anforderungen der Zieltabelle.
*Wenn datensätze nicht eingefügt wurden, gibt es 2 mögliche
Ursachen: Die von Ihnen eingefügten Datensätze enthalten
Primärschlüsselwerte, die es in der Zieltabelle bereits gibt; oder
die Schlüsselwerte verletzen für eine Beziehung, die zwischen 2
Tabellen definiert ist, die Regeln für die referentielle Integrität.
Möchten Sie trotzdem fortfahren?


--> Ich beutze eine Importspezifikation, wie sie in einer anderen
Tabelle gleich existiert, und auch funnktioniert.
Primärschlüssel habe ich keinen vergeben. Funktioniert aber bei der
anderen Tabelle auch ohne. :(


So nun seid ihr dran. Hab jetzt genug geschrieben ;)

Danke schonmal im Voraus für schnelle Hilfe.
Nehme auch gerne Verbesserungsvorschläge am Code im Allgemeinen an.
Ich habe von VBA und Access so ziemlich keine Ahnung...

Gruß Mike
 
H

Henry Habermacher [MVP Access]

Hallo pb.Brain

Vielleicht mal den Realnamen einstellen, wie es hier üblich ist?

quoting pb.Brain said:
Kann mir bitte jemand helfen?

Kannst Du das bitte nochmals anders formulieren. Ich habe as Posting
inzwischen 4 mal gelesen, verstehe Dein Problem aber immer noch nicht.

Gruss
Henry


--
Keine E-Mails auf Postings in NGs senden!
Don't send e-mails to postings in newsgroups!
KB: http://support.microsoft.com/default.aspx
FAQ: http://www.donkarl.com (neu mit Suchfunktion!)
OH: Online Hilfe von Microsoft Access (Taste F1)
Downloads: http://www.dbdev.org
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top