Bringen Sie ein Excel-Fenster in den Vordergrund von Access
Ich versuche zum öffnen einer Excel-Datei aus Access-und es funktioniert auch, aber das Excel-Fenster öffnet sich im hintergrund (hinter dem Access-Fenster), das ist nicht sehr benutzerfreundlich. Hier ist der code den ich benutze:
Private Function OpenExcelAttachment()
Dim MyXL As Object
Set MyXL = CreateObject("Excel.Application")
With MyXL
Dim FullPath As String, Name As String
Name = "\ExcelFile.xlsx"
FullPath = CurrentProject.Path & Name
.Workbooks.Open FullPath
.Visible = True
End With
Wie kann ich das Excel-Fenster im Vordergrund angezeigt (oben auf allen geöffneten Fenstern) statt?
Danke!
Es sollte daher, ist es kein problem mit Ihrem code. Programme, die nur eine kleine Menge von Zeit, um sich als Vordergrund-Fenster, ist es eine lange Zeit, um loadfile? Versuchen Sie, sichtbar zuerst, dann Datei laden.
Danke für die Antwort! Die Datei ist klein, so dauert es nicht sehr lange überhaupt. Spielen, um mit, wenn ich sichtbar noch nicht geholfen, entweder. Interessant fand ich heraus, dass, wenn ich öffnen Sie die VBA-vor dem aufrufen von Excel, die Sie zeigen, nicht in den Vordergrund! Aber wenn ich beenden Sie Access, öffnen Sie es erneut und rufen Sie Excel (die die potentiellen Anwender tun würde), es zeigt im hintergrund...
Versuchen Sie Spy++ von MS-Programmierung Sprachen, Werkzeuge, Ordner oder Windows SDK-tools Ordner. Sehen, was passiert, Protokollierung aller Nachrichten.
The system restricts which processes can set the foreground window. A process can set the foreground window only if one of the following conditions is true:
The process is the foreground process. The process was started by the foreground process. The process received the last input event. There is no foreground process. The foreground process is being debugged. The foreground is not locked (see LockSetForegroundWindow). The foreground lock time-out has expired (see SPI_GETFOREGROUNDLOCKTIMEOUT in SystemParametersInfo). Windows 2000/XP: No menus are active.
Danke für die Antwort! Die Datei ist klein, so dauert es nicht sehr lange überhaupt. Spielen, um mit, wenn ich sichtbar noch nicht geholfen, entweder. Interessant fand ich heraus, dass, wenn ich öffnen Sie die VBA-vor dem aufrufen von Excel, die Sie zeigen, nicht in den Vordergrund! Aber wenn ich beenden Sie Access, öffnen Sie es erneut und rufen Sie Excel (die die potentiellen Anwender tun würde), es zeigt im hintergrund...
Versuchen Sie Spy++ von MS-Programmierung Sprachen, Werkzeuge, Ordner oder Windows SDK-tools Ordner. Sehen, was passiert, Protokollierung aller Nachrichten.
InformationsquelleAutor Knodel | 2014-08-17
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich würde zuerst für bereits geöffnete Excel-Instanz. Wenn Sie muss können mehrere Instanzen der Anwendung, dann wird es schwieriger. Wenn Sie sind OK mit nur einer Instanz von Excel, dann denke ich, sollte diese Arbeit mit der AppActivate - Anweisung.
InformationsquelleAutor David Zemens
Zu nennen
AllowSetForegroundWindow
bevor Sie Excel sichtbar. Ich glaube nicht, entwickeln in VBA, aber ich denke, es würde dann so Aussehen:InformationsquelleAutor QuiOui
Ein wenig spät zur party hier,
(mit Office 2013)
Wenn Excel noch nicht geöffnet ist, finde ich, dass:
Bringt das Excel-Fenster auf der Vorderseite, wenn Excel nicht geöffnet ist. Wenn Excel bereits offen ist, allerdings finde ich, dass ich brauche, um unsichtbar zu falschen zuerst, dann reset auf true, um die Fenster auf der Vorderseite
Vielleicht sollte dies funktionieren?
EDIT:
Eigentlich, was scheint zu funktionieren weit besser ist AppActivate
AppActivate-Anweisung
InformationsquelleAutor noelmcg