PDA

Vollständige Version anzeigen : Focus auf ACCESS setzen?


Alarm112
21.03.2004, 15:45
Access2000/Win XP

Hallo!!!
Habe in meiner DB eine Terminfunktion (Uhrzeit) eingebaut.
Wird die Zeit(xx:xx) erreicht, dann öffnet sich über

DoCmd.OpenForm...

mein ACHTUNG-TERMIN-Formular.
Funktioniert super!!!

Problem:

Arbeite ich jetzt parallel mit anderen Programmen und meine *.MDB
ist minimiert, kann ich den Termin nicht bemerken.

Wie kann ich Access veranlassen sich über vba zu maximieren
und auf Windowsebene den Focus zu erhalten?

mabe38
21.03.2004, 16:24
Hallo,
probiere mal im Ereigniss deines Formulares bei Aktivierung
ungetestet
DoCmd.Maximize


Gruß Martin

Alarm112
21.03.2004, 17:00
Danke für den Tipp hat aber leider nicht geholfen :(

Mit Java/HTML-Code ist das kein Problem (Pop-Up etc.)
auf Fenstern einen Focus zu setzen.
Ist bestimmt auch bei Access möglich.

Nur so eine Idee:
Vielleicht ist mit dem FSO (File System Object)
oder shell... was zu machen ???

Alarm112
21.03.2004, 18:00
Habe ich gerade im VBA-Objektkatalog gefunden!!!
Klasse: ACCommand
acCmdBringToFront

Habe leider keinen Schimmer wie ich das in meinem Code unterbringen
soll :) und ob ich es verwenden kann.

hier mein Formaufruf:

...
Dim stDocName As String
Dim stLinkCriteria As String

stDocName = "termin"
DoCmd.OpenForm stDocName, , , stLinkCriteria, , acDialog
...

für Hilfe immer dankbar!!!

TommyK
22.03.2004, 05:58
Hallo,

kopiere folgenden Code in ein Modul in Deine DB:

Declare Function FindWindowEx Lib "user32" _
Alias "FindWindowExA" ( _
ByVal hWnd1 As Long, _
ByVal hWnd2 As Long, _
ByVal lpsz1 As String, _
ByVal lpsz2 As String) As Long

Declare Function SetForegroundWindow Lib "user32" _
(ByVal hwnd As Long) As Long


Public Sub GetWindow(strNameWindow As String)
'*******************************************
'Name: GetWindow (Sub)
'Purpose: Holt das angegebene Fenster in den Vordergrund
'Author: Thomas Keßler
'Date: März 22, 2004, 06:26:47
'Inputs: Name des Fensters
'Output:
'*******************************************
Dim lhWnd As Long
On Error Resume Next

lhWnd = FindWindowEx(0, 0, vbNullString, strNameWindow)
Call SetForegroundWindow(lhWnd)

End Sub

Die Sub GetWindow holt mittels API das angegebene Fenster in den Vordergrund.
Der Aufruf:

GetWindow "Hier muss der komplette Fenstername der Taskleiste stehen"

Diese Zeile wird mit der Openform-Anweisung als nächstes aufgerufen.

@Alarm112
Habe ich gerade im VBA-Objektkatalog gefunden!!!
Klasse: ACCommand
acCmdBringToFront


Das hat damit überhaupt nichts zu tun. Dieser Befehl holt nur ein Control im Formular- oder Berichtsentwurf in den Vordergrund.

Steffen0815
22.03.2004, 06:49
Bei mir hilft der Aufruf

AppActivate titel

titel: Titel in der Titelleiste des zu aktivierenden Anwendungsfensters

TommyK
22.03.2004, 07:11
@Steffen0815

Hast Du natürlich Recht, das wäre die einfachste Lösung.

Alarm112
22.03.2004, 14:57
Hallo Tommy & Steffen,

bei mir funktioniert es jetzt auch zu 200% :)

Danke auch für die acCmdBringToFront-Bedeutung,
bei Zeiten brauch ich es bestimmt.

Danke und einen schönen Montag,
Gruß Ferenc