PDA

Vollständige Version anzeigen : Auto-Import ohne Primär-Schlüssel


Dieter Opitz
28.06.2001, 15:02
Hallo!
Versuche mehrere Txt-Dateien mit Import-Spezificationen automatisch über eine VBA Routine zu importieren. Leider kriege ich bei diesem Auto-Import immer einen Primären Index in meine Tabellen geklatscht. Wie kann ich diesen Index direkt beim Import unterdrücken? Hinterher löschen kann ich auch. Wer ist so nett und hilft???

Stefan Kulpa
29.06.2001, 05:27
<font face="Verdana" size="2">Hallo Dieter,

dass ist gemäß <a href="http://www.ms-office-forum.net/forum/netiquette.php" target="_blank">Netiquette</a> wohl eher einer Thema für das Access-Forum!?
Da Du nichts über das Umfeld verräts (VB?, Access?, Version?) nehme ich mal an, dass Du Textdateien in Access importieren möchtest (von VB oder Access aus?). Wenn Primärschlüssel beim Import angelegt werden, sieht das danach aus, dass die Tabelle ein Feld vom Typ Autowert besitzt, welches von Access automatisch geführt wird und auf das man keinen Einfluss hat. Entweder Du wirfst dieses Feld raus oder änderst den Typ in Numerisch und vergibst selbst Schlüsselwerte.

HTH</font>

<font size="1" face="Century Gothic">Moderatorenanmerkung: Überarbeitung, durch den Wechsel der Forensoftware zum 01.01.2003 verursacht: in diesem Beitrag Link(s) korrigiert.
jinx – 10.07.2003</font>

Dieter Opitz
29.06.2001, 09:15
Hat, da mit VBA programmiert sowohl mit Access als auch mit VBA zu tun.
Die automatisch ( durch ne blöde, das Verzeichnis auslesende Schleife)importierten Textdateien kriegen, wie man es auch per Hand erlebt, automatisch nen Primärschlüssel angefügt. Per Hand kann man das unterdrücken, indem man den RadioButton auf "nein" setzt. Folglich muß es für das Objekt "Import" auch die Methode PrimaryKey mit den Eigenschaften "aktiv" bzw "inaktiv" geben. Ist wahrscheinlich nur undokumentiert.
Jetzt such ich einen, der die Methode kennt.
HAbe ich nach VB getan, da es mit VBA Code zu tun hat. Bezieht sich übrigens auf Access 97.
Erstmal danke für die Antwort.

Stefan Kulpa
29.06.2001, 09:43
<font face="Verdana" size="2">Hallo Dieter,

da Du es ansprichst - es geht ja gerade darum, dass Fragen zu VBA in die jeweiligen Foren gehören - denn VBA <> VB (oder auch VB =! VB).

Was Deine nähere Erläuterung angeht - da ich kein Access-Profi bin, habe ich Manuela (Moderatorin Access) gefragt, aber ehrlich gesagt, können wir dieses Scenario nicht ganz nachvollziehen - welchen RadioButton und welches Objekt Import meinst Du?

Stefan
</font>

A.S.
29.06.2001, 09:48
Hallo Dieter,
Hallo Stefan,

ich gehe davon aus das Dieter die TransferText-Methode des DoCmd-Objekts benutzt.

Dieter, Du mußt einmal eine Datei per Hand importieren und dann, bevor Du auf Fertigstellen klickst, über den Button "Weitere" die Importspezifikation entweder unter dem Vorgeschlagenen oder von Dir vergebenen Namen abspeichern.

Die somit angelegte Importspezifikation gibst Du dann beim Aufruf der TransferText-Methode an. Parameterposition siehe OnlineHilfe.


------------------
HTH

Arno

Dieter Opitz
29.06.2001, 14:21
Ich poste, Dein einverständnis vorraussetzend weiter hier. Thema läuft ja bereits. Nächstes Mal beachte die Themen-Zuordnung genau. Also VBA-Acces nach Access!
Folgendes: Ich importiere mehrere Textdateien mit gleichem Satzaufbau über Importspezifikationen und einen darin definierten Filter nach Access. Jede Text-Datei wandert in eine neu erzeugte Tabelle. Wenn ich den Datei-Import per Hand erledige, erscheint der Text-Import-Assistent und fragt unter Der Schaltfläche "weitere" nach Import-Spezificationen. Ich lade den dementsprechenden Import-Filter, beende den Dialog mit "Ok", sage bei den nun folgenden Fragen einige Male "weiter", klicke auf den Radio-Button "neue Tabelle" und nun kommt die Frage "PrimärSchlüssel automatisch hinzufügen". Ich betätige den Radio-Button "keine Primärschlüssel".
Nun geht es nach VBA
Die gespeicherte Importspezifikation rufe ich, wie oben richtig gesagt, über das DoCmd Objekt mit "DoCmd.TransferText acImportDelim, "ZFA", ....***"
auf. Leider ist dort das Hinzufügen oder weglassen der Primärschlüssels nicht dokumentiert. Die in VBA aufgerufene Methode TransferText arbeitet immer mit PrimärSchlüssel. Da es aber einen Import-dialog gibt, der die Eigenschaft(Ich nimm mal an, das is ne Eigenschaft, keine Methode)
Primärschlüssel kennt, muß man auch per VBA darauf zugreifen können. Wie geht das, möchte ich wissen.


Nochmal abschliessend zu meinem missverständlichem Positionieren dieses Threads. VB ist in meinen Augen die Obermenge. Den mit VB kann ich auf alle Ms-Office Dialekte zugreifen und eigenständige Anwendungen entwickeln. Ich dachte im Access-Forum geht es nur um allgemeines Access ohne VB(A)Inhalte. Sorry nochmal und danke für Eure netten Antworten.

A.S.
29.06.2001, 14:57
Hallo Dieter,

ich habe gerade das ganze, allerdings mit ImportFixed, nachvollzogen und bekam keinen Primärschlüssel automatisch zugefügt. Vielleicht schickst Du mir testhalber mal eine Datei und das entsprechende Coding aus der DB (inklusive Deiner Importspezifikation)....

Gruß

Arno

Dieter Opitz
05.07.2001, 15:26
Danke erstmal. Habe Dich angemailt. Hoffe Du kannst mit der Mail was anfangen.