tray-park
Goto Top

Access 2007 - Dateiinhalt automatisch an Tabelle anfügen

Microsoft Access 2007

Hi,

ich bekomme eine csv-Datei geliefert deren Inhalte in eine Tabelle in Access importiert werden sollen.

Access soll mir diese Datei automatisch aufrufen und die Inhalte in eine Tabelle schreiben ohne, dass der User etwas mitbekommt.

Die Tabelle heißt "Inhalte" und besteht aus 3 Feldern."id","Dateiname","Datum". Die Felder sind in der csv-Datei mit Semikolon getrennt.

Die gelieferte Datei muss nicht unbedingt eine csv-Datei sein. Ich kann sie z.B. auch als SQL-Skript bekommen.

Wie kann ich das realisieren?

Gibt es vielleicht ein Makro? Oder mit VBA?

Welche Informationen benötigt ihr noch?

Ich freue mich auf jede Antwort.

Liebe Grüße


Tray

Content-ID: 158108

Url: https://administrator.de/contentid/158108

Ausgedruckt am: 22.11.2024 um 09:11 Uhr

NetWolf
NetWolf 07.01.2011 um 17:15:05 Uhr
Goto Top
Moin Moin,

ich bekomme eine csv-Datei geliefert deren Inhalte in eine Tabelle in Access importiert werden sollen.
ok

Access soll mir diese Datei automatisch aufrufen und die Inhalte in eine Tabelle schreiben ohne, dass der User etwas mitbekommt.
wann soll das denn passieren?

Die Tabelle heißt "Inhalte" und besteht aus 3 Feldern."id","Dateiname","Datum". Die
Felder sind in der csv-Datei mit Semikolon getrennt.
ok, also Standard

Die gelieferte Datei muss nicht unbedingt eine csv-Datei sein. Ich kann sie z.B. auch als SQL-Skript bekommen.
zwei Möglichkeiten = zwei Wege

Wie kann ich das realisieren?
per VBA

Gibt es vielleicht ein Makro?
nein

Oder mit VBA?
ja

Welche Informationen benötigt ihr noch?
und wie sieht deine Tabelle aus, in die importiert werden soll?


Grüße aus Rostock
Wolfgang
(Netwolf)
Biber
Biber 08.01.2011 um 12:56:28 Uhr
Goto Top
Moin tray-park,

noch ergänzend zu Netwolfs Nachfragen
  • die Import-Dateien werden sicherlich "regelmäßig" geliefert - immer im gleichen Verzeichnis/unter gleichem Namen?
  • wenn ja - wie soll ein "doppeltes Importieren" vermieden werden?
  • was passiert mit a) ordnungsgemäß verarbeiteten CSV-Dateien und b) mit fehlerhaften/nicht einlesbaren Dateien?
  • die Phrase "einlesen ohne dass der Benutzer etwas mitbekommt" lässt bei mir immer Nackenhaare hochstehen. Ein Daten-Import kann doch immer zwei Ergebnisse habe a) alles prima -oder- b) irgendwelche Datensachverhalte sind nicht verarbeitbar ohne Entscheidung eines Menschen/ohne Benutzereingriff. Wieso kann deinen Anwendern wurscht sein, ob der Import geklappt hat oder nicht?

Grüße
Biber
tray-park
tray-park 10.01.2011 um 12:39:14 Uhr
Goto Top
Zitat von @NetWolf:
Moin Moin,

> ich bekomme eine csv-Datei geliefert deren Inhalte in eine Tabelle in Access importiert werden sollen.
ok

> Access soll mir diese Datei automatisch aufrufen und die Inhalte in eine Tabelle schreiben ohne, dass der User etwas
mitbekommt.
wann soll das denn passieren?

Das erste mal beim Start von Access, dann minütlich überprüfen. Vielleicht das Datum des Datensatzes mit dem Erstell-Datum der csv-Datei vergleichen? Wenn die CSV-Datei aktueller ist als die Datensätze in der Tabelle, dann importieren.

> Die Tabelle heißt "Inhalte" und besteht aus 3 Feldern."id","Dateiname","Datum".
Die
> Felder sind in der csv-Datei mit Semikolon getrennt.
ok, also Standard

> Die gelieferte Datei muss nicht unbedingt eine csv-Datei sein. Ich kann sie z.B. auch als SQL-Skript bekommen.
zwei Möglichkeiten = zwei Wege

> Wie kann ich das realisieren?
per VBA

> Gibt es vielleicht ein Makro?
nein

> Oder mit VBA?
ja

> Welche Informationen benötigt ihr noch?
und wie sieht deine Tabelle aus, in die importiert werden soll?

Vielleicht hierzu erst einmal, wozu das Feld "Dateiname" gedacht ist. Der Name ist hier als Beispiel von mir schlecht gewählt.
Ich bekomme Inhalte von E-Mails geliefert.

Hier möchte ich nur testen, wie die Möglichkeiten von Access sind, einen Import-Vorgang durchzuführen. Später wird die Tabelle dann erweitert.

Tabellenname: Inhalte
Feld "ID" Autoincrement und Primary-Key
Feld "Dateiname" (Ist schlecht gewählt)
Feld "Datum"


Zitat von @Biber:
Moin tray-park,

noch ergänzend zu Netwolfs Nachfragen
  • die Import-Dateien werden sicherlich "regelmäßig" geliefert - immer im gleichen Verzeichnis/unter gleichem
Namen?

Das stimmt.

* wenn ja - wie soll ein "doppeltes Importieren" vermieden werden?

Durch löschen der csv-Datei nach dem Import-Vorgang oder (muss noch abgestimmt werden) Anhand des eindeutigen Primärschlüssels.
Doppelte Datensätze sollten so vermieden werden.

* was passiert mit a) ordnungsgemäß verarbeiteten CSV-Dateien

Diese werden umbenannt. Sie bekommen in den Dateinamen ein "Abgearbeitet-Datum" etwa so: "Dateiname-Datum-Urhzeit.csv" und werden in einen anderen Ordner verschoben.

und b) mit fehlerhaften/nicht einlesbaren Dateien?

Das wird schwierig. Vielleicht schreibt Access beim Start eine Datei mit Uhrzeit und Datum und ein weiteres PowerShell-Skript gleicht dann den Dateinamen mit dem Erstell-Datum der import-Datei ab? Wenn die Datei-Uhrzeit (der von Access geschriebenen Dati) aktueller ist als das der importierten Datensätze, dann muss was schief gelaufen sein.

Korrigiert mich bitte bei Denkfehlern.

Danach eventuell mit Status-Mails. Ein Skript überprüft das Datum und die Uhrzeit und schickt eine Mail wenn der Unterschied größer eine Stunde?
Ich sehe, ich habe nicht alle Eventualitäten bedacht.

* die Phrase "einlesen ohne dass der Benutzer etwas mitbekommt" lässt bei mir immer Nackenhaare hochstehen. Ein
Daten-Import kann doch immer zwei Ergebnisse habe a) alles prima -oder- b) irgendwelche Datensachverhalte sind nicht verarbeitbar
ohne Entscheidung eines Menschen/ohne Benutzereingriff. Wieso kann deinen Anwendern wurscht sein, ob der Import geklappt hat oder
nicht?

Du hast natürlich recht. Also streichen wir das mal okay?

Huh. Mittlerweile zweifele ich an meinem Vorhaben.

Danke euch schon einmal.

Liebe Grüße

Tray
tray-park
tray-park 12.01.2011 um 09:58:56 Uhr
Goto Top
Hi,

ich zweifele zwar etwas an meinem Vorhaben, aber unmöglich scheint es mir bisher nicht.

Weiß jemand, wie ich mit VBA den Filesystem-Zugriff bekomme und wie beim Start von Access 2007 die Daten in eine Tabelle importiert werden?

Grüße


Tray