Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Import von Txt dateien in Access

Begonnen von KlaSur, Oktober 06, 2023, 12:19:26

⏪ vorheriges - nächstes ⏩

KlaSur

Das habe ich schon auf mehreren Pc versucht. Alle finden den Assi... nicht. Habe gerade nochmals händisch ein Update gemacht. Jetzt ist es diese Version : Microsoft® Access® für Microsoft 365 MSO (Version 2309 Build 16.0.16827.20166) 32 Bit

MzKlMu

Hallo,
ZitatMenupunkt Externe Daten - Neue Datenquelle - aus Datei - txt Datei -
ich kann diese in #10 beschriebene Befehlsabfolge nicht nachvollziehen.

Bei mir ist das deutlich einfacher, nämlich so:
ZitatExterne Daten >> Textdatei
Es kann natürlich sein, dass das an den Versionen liegt (ich habe Access2016).
Zeige daher bitte mal ein Bild des Menübandes "Externe Daten".
Gruß Klaus

PhilS

Zitat von: MzKlMu am Oktober 12, 2023, 11:36:16Es kann natürlich sein, dass das an den Versionen liegt (ich habe Access2016).
Zeige daher bitte mal ein Bild des Menübandes "Externe Daten".
Die Beschreibung von @KlaSur entspricht dem, was ich bei mir auch sehe:
Sie dürfen in diesem Board keine Dateianhänge sehen.

Ich denke, die Menü-Struktur ist hier nicht der relevante Punkt, sondern dass der Assistent nicht geladen werden kann. - Dazu habe ich im Moment keine weitere Idee, als die bereits geschriebenen (Installation reparieren/Deinstallation+Neuinstallation).
Neue Videoserie: Windows API in VBA

Klassische CommandBars visuell bearbeiten: Access DevTools CommandBar Editor

PhilS

Zitat von: KlaSur am Oktober 12, 2023, 11:28:35Das habe ich schon auf mehreren Pc versucht. Alle finden den Assi... nicht. Habe gerade nochmals händisch ein Update gemacht.
Was genau hast du versucht? - Ein Update war nicht der relevante, empfohlene Punkt.

Ich meinte, dass du in Windows zu "Control Panel\All Control Panel Items\Programs and Features" navigierst, dort in der Liste der installierten Programme "Microsoft 365 Apps ...." auswählst und aus dem Kontextmenü "Change" (Ändern) anklickst und dann "Online Repair" startest.
Sie dürfen in diesem Board keine Dateianhänge sehen.
Neue Videoserie: Windows API in VBA

Klassische CommandBars visuell bearbeiten: Access DevTools CommandBar Editor

KlaSur


Ich werde es einmal ersuchen habe aber leider wenig Hoffnung, daß es damit erledit ist. Ich habe es schon an verschiedenen Pc's probiert aber alle scheinen den Assi nicht laden zu können (Pc ausserhalb Firmenlan damit die Firewall nichts blockt, Privat-Laptop). 

KlaSur

Danke PhilS,

daran lag es ;D ! Jetzt started der Assi wieder. Werd bei den Pc's mal den beschriebenen "Repair" durchführen.

KlaSur

Guten Morgen,

jetzt habe ich eine ImportFunktion gespeichert "TxtImport". Wie komme ich an die Funktion und kann ihr Variablen übergeben, z.B. die einzulesende Datei und das Verzeichnis etc.

Gruß KlaSur

PhilS

Zitat von: KlaSur am Oktober 13, 2023, 08:57:10Wie komme ich an die Funktion und kann ihr Variablen übergeben, z.B. die einzulesende Datei und das Verzeichnis etc.
Mit DoCmd.TransferText kannst du per VBA Textdateien importieren (oder verknüpfen!) und dabei deine gespeicherte Importspezifikation im SpecificationName-Argument übergeben. - Wenn du dir mal kurz die verlinkte Doku dazu anschaust, sollte das eigentlich recht einfach zu realisieren sein.
Neue Videoserie: Windows API in VBA

Klassische CommandBars visuell bearbeiten: Access DevTools CommandBar Editor

MzKlMu

Gruß Klaus

KlaSur

Hallo PhilS,
Hallo MzKlMu,

habe mir die Beschreibung von DoCmd.TransferText angeschaut aber komme nicht weiter. Ich habe die Textdatei mit der eingebauten Importfunktion durchgeführt. Das hat auch funktioniert. So jetzt will ich anstelle der Test1.txt die Test2.txt einlesen. Der Aufbau der beiden Dateien ist gleich. Wie spreche ich die Funktion an.
Das ist mein Code:
Dim VaImport As Variant

VaImport = "ImportTxt"

DoCmd.TransferText acImportDelim, VaImport, "C:\Datenbank\Test2.Txt", False

Und wenn man dann noch erst ab der 3 Zeile einlesen könnte währe es genial.

Gruß KlaSur

PhilS

Zitat von: KlaSur am Oktober 17, 2023, 14:49:24DoCmd.TransferText acImportDelim, VaImport, "C:\Datenbank\Test2.Txt", False
Dein grundsätzliches Vorgehen ist schon richtig.
Allerdings fehlt in der obigen Zeile der Name der Zieltabelle:
DoCmd.TransferText acImportDelim, VaImport, "HierNameDerZieltabelle", "C:\Datenbank\Test2.Txt", False
Zitat von: KlaSur am Oktober 17, 2023, 14:49:24Und wenn man dann noch erst ab der 3 Zeile einlesen könnte währe es genial.
Entweder könntest du die Textdatei nur verknüpfen und dann mit einer Anfügeabfrage in die eigentliche Zieltabelle schreiben. Dabei kannst du in der Anfügeabfrage über die Kriterien unerwünschte Datensätze ausschließen.
Oder, du kannst die Tabelle MSysIMEXSpecs (Systemtabellen einblenden) öffnen und der per Hand in der Spalte StartRow deiner Import-Spezifikation die gewünschte Startzeile der Datei eintragen. - Soweit ich weiß ist das nur über dieses manuelle Herumfummeln an der Import-Spezifikation möglich, aber nicht über den Assistenten.



Neue Videoserie: Windows API in VBA

Klassische CommandBars visuell bearbeiten: Access DevTools CommandBar Editor

KlaSur

Dann haben wir es!!

Das ist der Code:

Sub ImportTxt()
Dim VaImport As Variant
Dim StrEingabe As String
Dim StrPfad As String


      StrPfad = "C:/Datenbank/"
      StrEingabe = InputBox("Bitte geben sie die Datei an:")
      StrPfad = StrPfad + StrEingabe
      MsgBox (StrPfad)
     
VaImport = "ImportTxt"  "erst einmal den Import durchführen und speichern unter Spezifikationen nicht vergessen"

'DoCmd.TransferText acImportDelim,VaImport , StrPfad, False
DoCmd.TransferText acImportDelim, VaImport, "Import", StrPfad, False
     

End Sub


Danke für eure Hilfe!!

KlaSur