Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: F100 am Februar 16, 2016, 00:50:18

Titel: Docmd.TransferText liefert Fehler 2046 Der Befehl oder die Aktion steht momentan
Beitrag von: F100 am Februar 16, 2016, 00:50:18
Hallo zusammen,

ich verwende den Befehl Docmd.TransferText.
Dieser liefert zeitweise den Laufzeitfehler 2046 "Der Befehl oder die Aktion TransferText' steht momentan nicht zur Verfügung."

Wann / Warum steht dieser Befehl nicht zur Verfügung?
Wenn ich debuggen wähle, kann ich den Code ohne Änderung laufen lassen, und er macht alles wunschgemäß.

Hier der Code:
Public Sub t()
    Const TmpLink = "tmptabImport"
    Const ImportSpez = "TxtTemperaturImportSpezifikation"
    Const ZuImportierendeDatei = "D:\Access\txttemperatur.txt"
    Const extAufruf = "cmd /c D:\externesProgramm.exe"
   
    ' Das externe Programm erzeugt eine Textdatei: ZuImportierendeDatei = "D:\Access\txttemperatur.txt"
    WaitShell extAufruf, vbMinimizedNoFocus, 120, True 'Nach 2 Minuten würde es zwangsweise weitergehen, auch wenn der Prozess noch läuft, dann wäre mir ein Folgeproblem plausibel, der Prozess läuft aber nicht so lange.

    ' die temporäre Access-Tabelle wird falls vorhanden gelöscht (wird durch Importroutine neu erstellt)
    On Error Resume Next
    DoCmd.DeleteObject acTable, TmpLink
    On Error GoTo 0
   
    ' testweise 5 Sek warten, damit keine Zugriffsprobleme auftauchen sollen, hat auch nichts gebracht
    Wait 5000
   
    ' Tabelle importieren
    DoCmd.TransferText acLinkDelim, ImportSpez, TmpLink, ZuImportierendeDatei
   
    ' ... weiterer Code
End Sub


WaitShell ist zu finden unter http://dbwiki.net/wiki/VBA_Tipp:_Pro...ndigung_warten

Wie bekomme ich heraus, warum die Importfunktion manchmal nicht funktioniert?
Die einzulesende Datei wird nur von dem erzeugenden externen Programm und dieser Prozedur verwendet. Sogar den Virenscanner kann ich ausschließen.

Vielen Dank für mögliche Ideen.

Freundliche Grüße

Frank
Titel: Re: Docmd.TransferText liefert Fehler 2046 Der Befehl oder die Aktion steht momentan
Beitrag von: DF6GL am Februar 16, 2016, 09:39:48
Hallo,

villeicht hilft es, den Link vor dem Aufruf des ext. Programms zu löschen...

und auch mal das on error resume next entfernen und einen allgemeinen Errorhandler einbauen, damit man sieht, was Sache ist..

Titel: Re: Docmd.TransferText liefert Fehler 2046 Der Befehl oder die Aktion steht momentan
Beitrag von: F100 am Februar 16, 2016, 13:43:13
Hallo Franz,

Zitatvilleicht hilft es, den Link vor dem Aufruf des ext. Programms zu löschen
hatte ich probiert, hat aber keinen Effekt.

Zitatdas on error resume next entfernen und einen allgemeinen Errorhandler einbauen, damit man sieht, was Sache ist
Das on 'error resume next' greift nur für die eine Zeile, dann wird durch
'On Error GoTo 0' die Standardbehandlung eingeschaltet.

Zur Zeit prüfe ich den Fehlercode mit einer Logdatei. Mehr als 90% der Fälle laufen fehlerfrei durch. Aber machmal bleibt er hängen, und ich bekomme nicht heraus, weshalb.
Titel: Re: Docmd.TransferText liefert Fehler 2046 Der Befehl oder die Aktion steht momentan
Beitrag von: DF6GL am Februar 16, 2016, 16:08:12
Hallo,

"Das on 'error resume next' greift nur für ......"

das ist mir nicht neu..  :P


Ich habe trotzdem das "Gefühl", dass es an der noch aktiven Verlinkung liegt. Leg das Löschen weiterhin vor den Aufruf und setz gleich danach
Application.RefreshDatabaseWindow
ein.

Titel: Re: Docmd.TransferText liefert Fehler 2046 Der Befehl oder die Aktion steht momentan
Beitrag von: F100 am Februar 17, 2016, 00:36:59
Hallo Franz,

ich wollte nicht bestreiten, das du die Fehlerbehandlung kennst; mir ist nur der Grund nicht klar, weil nur eine Meldung unterdrückt wird, die ich auch unterdrücken möchte.

Application.RefreshDatabaseWindow kannte ich noch nicht. Habe mir mal die Doku dazu angesehen, sieht interessant aus.
Umgesetzt und der Test läuft.

Vielen Dank schon mal für den Ansatz.

Freundliche Grüße

Frank
Titel: Re: Docmd.TransferText liefert Fehler 2046 Der Befehl oder die Aktion steht momentan
Beitrag von: F100 am Februar 21, 2016, 12:39:30
Hallo Franz,

der Test war erfolgreich! Deine Vermutug war goldrichtig.

Vielen Dank und viele Grüße

Freundliche Grüße

Frank