Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Docmd.TransferText liefert Fehler 2046 Der Befehl oder die Aktion steht momentan

Begonnen von F100, Februar 16, 2016, 00:50:18

⏪ vorheriges - nächstes ⏩

F100

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

DF6GL

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..

Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

F100

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.

DF6GL

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.

Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

F100

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

F100

Hallo Franz,

der Test war erfolgreich! Deine Vermutug war goldrichtig.

Vielen Dank und viele Grüße

Freundliche Grüße

Frank