Hallo
Ich habe da ein Problem wofür ich im Netz noch keine Antwort gefunden habe bzw. erhalten habe.
Ich bekomme ein Mail in dem unter anderem eine txt-Datei enthalten ist.
In dieser txt-Datei befindet sich ein Datensatz.
Um diesen Datensatz importieren zu können, muss sich diese Datei im Verzeichnis "C\:Import" befinden. Diese txt-Datei in diesem Verzeichnis ist in die DB verknüpft.
Bisher war es immer so, dass ich die Datei im Mail links angeklickt habe und mit Kopieren diese in den Zwischenspeicher gegeben habe. Dann bin ich in die DB gegagnen und habe auf die Schaltfläche "Importieren" geklickt.
Damit wurde die txt.Datei in das Verzeichnis "C\:Import" eingefügt und dieser Datensatz in meine Tabelle kopiert von wo ich weiter damit arbeiten kann.
Das habe ich damals eben über den Weg gemacht, dass ich ein Webbrowser-Feld erzeugt habe, das in das Verzeichnis "C\:Import" verweist. Durch das klicken der Schaltfläche wurder der Fokus auf dieses Webbrowser-Feld gegeben und mit
=> SendKeys "^v" , True <= wurde diese dann in das Verzeichnis kopiert..... So, und genau das funktioniert jetzt nicht mehr. Auch wenn ich manuel auf das Webbrowser-Feld gehe und die Tastenkombination Strg-V verwende geht das nicht. Linke Maustaste - Einfügen jedoch funktioniert.
Der Datenimport anschließen passt, der geht...
Hab keinen Plan warum das so ist...
Einen Verdacht habe ich aber: kann das an einem Windows-Update hängen....?? Kurz bevor mit der Fehler aufgefallen ist, kamen einige Updates.... kann das sein???
Kann mir hier jemand helfen??
Danke
Hallo,
hier: https://www.ms-office-forum.net/forum/showthread.php?t=362139&page=2
hast Du doch umfassende und ausreichende Hilfe bekommen.
Sendkeys ist nun mal fehleranfällig und funktioniert nicht unbedingt richtig..
Es kann auch gut sein, dass das Webbroser-Control jetzt nicht mehr den Fokus erhält und dadurch Sendkeys im Sande ver(s)läuft.
Möglicherweise sind auch manche Einstellungen bei den Sicherheitsoptionen nicht (mehr) korrekt/ausreichend.
Zitat von: Benjamin Baum 1 am September 03, 2019, 20:05:45
Das habe ich damals eben über den Weg gemacht, dass ich ein Webbrowser-Feld erzeugt habe, das in das Verzeichnis "C\:Import" verweist. Durch das klicken der Schaltfläche wurder der Fokus auf dieses Webbrowser-Feld gegeben und mit
=> SendKeys "^v" , True <= wurde diese dann in das Verzeichnis kopiert.....
Nochmal, auch wenn es bereits häufiger in diesem Zusammenhang erwähnt wurde: SendKeys ist (und wahr schon immer) einer äußerst fehleranfällige Funktionalität. Das liegt einfach in der Natur der Tastaturbefehle, die immer vom aktuellen Kontext/Zustand abhängig sind.
Im MOF hatte ich dir dazu je bereits den Hinweis auf mein Clipboard-Klassenmodul (https://codekabinett.com/rdumps.php?Lang=2&targetDoc=vba-clipboard-file-content) geschrieben, das konkret vor dem Hintergrund deiner Problemstellung entstanden ist.
Mit dem ebenfalls im MOF geposteten Beispielcode (s.u.) sollte deine Anforderung damit relativ einfach und wesentlich stabiler als mit der Webbrowser+Sendkeys-Lösung umsetzbar sein.
Public Sub SaveClipboardContentToTextFile(ByVal fileName As String)
Dim data As Variant
If Clipboard.IsFormatAvailable(Clipboard.FormatFileContent) Then
data = Clipboard.GetData(Clipboard.FormatFileContent)
SaveToTextFile fileName, StrConv(data, vbUnicode), True, False
Else
MsgBox "Data format '" & Clipboard.FormatFileContent & "' is not available."
End If
End Sub
Public Sub SaveToTextFile(ByVal fileName As String, ByVal data As String, Optional ByVal OverwriteExistingFile As Boolean = False, Optional ByVal ContentIsUnicode As Boolean = False)
Dim objFSO As Object
Set objFSO = CreateObject("Scripting.FileSystemObject")
Dim objFile As Object
Set objFile = objFSO.CreateTextFile(fileName, OverWriteExistingFile, ContentIsUnicode)
objFile.Write data
objFile.Close
End Sub
Hallo
Sorry, aber ich habe da noch eine Frage.... in dem Code von PhilS.... wo steht da drinnen wo die Datei abgelegt werden soll?? Da müsste doch so etwas wie ein Pfad oder so sein... oder? Ich stelle mir vor, da müsste doch auch ein kurzer Code ausreichen. Ich dachte das an so etwas wie einen Dos-Befehl... nur da habe ich "copy..." gefunden aber nicht "Paste..."
Zitat von: Benjamin Baum 1 am September 06, 2019, 15:18:19.... in dem Code von PhilS.... wo steht da drinnen wo die Datei abgelegt werden soll??
Das steht nicht drin. Den Aufruf der Prozedur habe ich weggelassen. Du müsstest, um das erstellen der Datei aus der Zwischenablage auszulösen, noch etwas wie das folgende ergänzen.
Call SaveClipboardContentToTextFile("C:\Import\DeineDatei.txt")