Access Datenbankfenster

Hallo Welt,

normalerweise geht beim öffnen einer MSAccess Datenbank das MS Access Fenster im Vollbildmodus auf und dann darin die Datenbank mit ggf. eingestelltem Start-Formular.

Ich hätte gerne, dass man entweder das MS-Access Fesnter gar nicht sieht, sondern nur das Start-Formular
-> geht das, oder müsste ich das dann mit Visual Basic programmieren…
oder dass das Fenster nicht im Vollbildmodus erscheint und das Start-Formular dann aber das gesamte MS-Access Fenster ausfüllt.
-> Kann man beim Öffnen von MS Access einen Parameter mitgeben, der das steuert bzw. kann man das Start-Fomular steuern in Bezug auf sein Erscheinen als Vollbild innerhalb des MS-Access-Fensters?

Hoffe, das war einigermassen verständioch geschrieben… Ziel soll auf jeden Fall sein, dass die Datenbank praktisch wie ein eigenes Programm aussieht und nicht wie eine Anwendung innerhalb von MS-Access…

So, jetzt bin ich mal gespannt, ob mir da jemand helfen kann.
Schon mal vielen Dank
Matthias

Hi,
ich verstehe nicht ganz wo das Problem ist …

Ich hätte gerne, dass man entweder das MS-Access Fesnter gar
nicht sieht, sondern nur das Start-Formular

Das geht nicht.
Da du aber alle Access-Menues und Symbolleisten entfernen und durch deine eigenen ersetzen kannst, sollte es wirklich keinen Unterschied machen.

Gruss
Quaser

Hi,
ich verstehe nicht ganz wo das Problem ist …

Ich hätte gerne, dass man entweder das MS-Access Fesnter gar
nicht sieht, sondern nur das Start-Formular

Das geht nicht.

Stimmt nicht, das geht

Stefan

Hai, Matze,

aaalso,
Datenbankfenster

  • Datenbank öffnen
  • Focus auf Datenbankfenster
  • Menue Fenster
  • Menuepunkt Ausblenden
  • Datenbankfenster weg :wink:

Startformular
-Makro mit Namen AutoExec
-erster Makro-Schritt: ÖffnenFormular (Formular-Namen unten angeben)
-zweiter Makro-Schritt: müsste „AusführenBefehl“ und unten dann „Zoom100%“ sein - da musst Du aber die Hilfe nochmal zu Rate ziehen…

Gruß
Sibylle

Hallo Matthias

Falls du es doch mit Programmierung versuchen willst,
hier ein 2 Zeiler in VBA.

Is gar nicht so schwer.

Öffne dein Startformular in der Entwurfsansicht.
Öffne das Eigenschaftenfenster (ist wahrscheinlich schon offen)
In der Titelleiste des Eigenschaftenfenster muß FORMULAR stehen
Wechsle im Eigenschaftenfenster zum Register „Ereignis“ und
dort zum Punkt „Bei Laden“
Wenn du da reinklickst erscheint rechts ein Pfeil und daneben
3 Punkte. Klicke auf den Pfeil und wähle „[Ereignisprozedur]“
aus. Anschließend auf die 3 Punkte klicken.
Jetzt kommst du ins Programmierfenster.

Keine Angst ist nicht so schlimm!

Hier steht bereits der Text:
**Private Sub Form_Load()

End Sub**

Füge nun folgende Zeilen zwischen „Private …“ und „End …“
ein:

DoCmd.RunCommand acCmdAppMinimize
DoCmd.RunCommand acCmdDocRestore

Das Ergebnis sollte dann so aussehen:

Private Sub Form_Load()
DoCmd.RunCommand acCmdAppMinimize
DoCmd.RunCommand acCmdDocRestore
End Sub

Nun kannst du das Fenster wieder schließen und das
Formular speichern.

Bleibt noch eine Arbeit:
Du mußt JEDES Formular in deiner Datenbank mit den
Eigenschaften
Popup JA
Gebunden JA
versehen.

Diese Eigenschaften findest du im Eigenschaftenfenster
Register „Andere“

Nun zum Effekt dieser Programmzeilen:
DoCmd.RunCommand acCmdAppMinimize
Dieser Befehl minimiert das gesamte Access bis auf das Icon
in der Taskleiste

DoCmd.RunCommand acCmdDocRestore
Dieser Befehl holt das aktuelle Fenster in den Vordergrund
auf den Desktop.

Ergebnis: Dein Accessformular sieht wie eine eigene Anwendung
aus.

Gruß Franz

Hallo Franz, das war’s…! SUPER !! Endlich Einer, der mich versteht :smile:) Nichts desto trotz auch besten Dank an die Anderen…

Das mit dem Ereignis und Private Sub,… kenne ich schon, das war nicht das Problem. Vielmehr die Befehle zu kennen.

Nun musss ich noch rumtüfteln, wie ich das Formular in den Fordergrund bekomme, denn beim Öffnen verschwindet das erst einmal hinter den anderen Applikations-Fenstern…

Also nochmals vielen Dank !

1 Like

und wie? Alle Vorschläge hier haben das Main-Window nicht wirklich verschwinden lassen. Das geht meiner Meinung nur über einen API-Call und selbst dann wäre ich mir nicht sicher (habs nie ausprobiert) ob die Chield Windows nicht gleich mit verschwindet.

Quaser

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Matthias

Hallo Franz, das war’s…! SUPER !! Endlich Einer, der mich
versteht :smile:) Nichts desto trotz auch besten Dank an die
Anderen…

Danke. Das freut mich, wenn ich ich dir helfen konnte. Es ist
auch schön eine Rückläufer auf einen Artikel zu bekommen und
damit zu sehen ob man dem anderen helfen konnte oder nicht.

Das mit dem Ereignis und Private Sub,… kenne ich schon, das
war nicht das Problem. Vielmehr die Befehle zu kennen.

Nun musss ich noch rumtüfteln, wie ich das Formular in den
Fordergrund bekomme, denn beim Öffnen verschwindet das erst
einmal hinter den anderen Applikations-Fenstern…

Das Problem hab ich auch noch nicht gelöst. Ich klick einfach
auf das Icon von Access in der Taskleiste und das Formular
kommt in den Vordergrund. Solltest du drauf kommen, teil
mir bitte die Lösung mit.

Gruß Franz

Also nochmals vielen Dank !

Hallo,
…hatte ich befürchtet, dass die Frage kommt.
lang ists her…das ganze für Access 97.

Los gehts mit einem Formular das

  1. Ein Pop up ist
    und
    2.beim DB-Aufruf automatisch startet.

Im Formular-Code als erstes:

Option Compare Database
Option Explicit
’ Wie blende ich die Access Oberfläche aus 1
Const SW_HIDE = 0
Private Declare Function ShowWindow Lib „User32“ (ByVal hwnd As Long, ByVal _
nCmdShow As Long) As Long
’ Ende von :Wie blende ich die Access Oberfläche aus 1

und als zweites:

Private Sub Form_Open(Cancel As Integer)
’ erst mal nichts aktualisieren (optional)
Application.Echo False
’ Wie blende ich die Access Oberfläche aus 2(Resultat ist dass das Formular
’ ohne Leisten etc. (Pop up muss eingestellt sein) gezeigt wird)
Dim hWindow As Long
Dim nResult As Long
Dim nCmdShow As Long
hWindow = Application.hWndAccessApp
nCmdShow = SW_HIDE
nResult = ShowWindow(ByVal hWindow, ByVal nCmdShow)
’ Ende von :Wie blende ich die Access Oberfläche aus 2
’ Gesamten Bildschirm nutzen
DoCmd.Maximize
'Jetzt alles anzeigen
Application.Echo True

ergänzend:

Private Sub Form_Activate()
Dim hWindow As Long
Dim nResult As Long
Dim nCmdShow As Long
hWindow = Application.hWndAccessApp
nCmdShow = SW_HIDE
nResult = ShowWindow(ByVal hWindow, ByVal nCmdShow)
DoCmd.Maximize
End Sub

Stefan

Hallo Stefan,

funktioniert gut, danke für den Hinweis. Nur hat die Anwendung dann in der Taskleiste keinen „Eintrag“ mehr, so dass man nur über Alt-Tab an sie rankommt.

Hast Du da noch eine Idee?

Jetzt gibt es die Lösung von Franz, zur Erinnerung:
Private Sub Form_Load()
DoCmd.RunCommand acCmdAppMinimize
DoCmd.RunCommand acCmdDocRestore
End Sub
bei der das Startformular beim Öffnen im Hintergrund verschwindet und Deine, bei der die Taskleiste nichts von der Anwendung weiss…

Kann man die beiden Sachen nicht Kombinieren…?

Gruss Matthias

Hast Du den Beitrag von Stefan gesehen ? Der hat eine andere Lösung, bei der das Fenster im Fordergrund ist, allerdings sieht man das keinen Eintrag in der Taskleiste, was auch ein wenig komisch ist…

Gruss Matthias

Danke Franz & Stefan -> Kombilösung
Hallo,

habe jetzt eine Kombination aus den beiden Anregungen von Franz und Stefan gefunden:

Zum einen gibt es in der von Stefan benutzten „User32.dll“ noch eine Funktion „SetForegroundWindow“, die ein Fenster in den Fordergrund bringt.

Kombiniert man nun diese Funktion mit der von Franz, hat man alles genau so wie gewünscht, d.h. das Access-Symbol in der Taskleiste zum Anklicken der Datenbank und das Startformular beim Starten im Fordergrund…

Diesen Code-Teil einfach ins Start-Formular einfügen …

Private Declare Function SetForegroundWindow Lib „User32“ (ByVal hwnd As Long) As Long
Private Sub Form_Load()
Dim nResult As Long
DoCmd.RunCommand acCmdAppMinimize
DoCmd.RunCommand acCmdDocRestore
nResult = SetForegroundWindow(Me.hwnd)
End Sub

Also nochmals Danke an Euch beiden…

Hallo Stefan

du verwendest hier einen Befehl aus der USER32.DLL, wenn ich
das richtig sehen (Brille geputzt? - OK) :wink:

Wie komme ich an eine Aufstellung aller Befehle mit evtl.
Parametern die in der USER32.DLL enthalten sind?

Private Declare Function ShowWindow Lib „User32“ (ByVal hwnd As Long, Val nCmdShow As Long) As Long

Gefällt mir sehr gut die Lösung!!!
Lässt sich mit SW_HIDE=1 zum An- und Ausschalten des Access-Fenster
gut nutzen (natürlich nur während der Entwicklungsphase)

Noch eine Frage:
Wozu Application.Echo False
und Application.Echo True
durch den Aufruf von ShowWindow wird das
doch m. E. überflüssig. Diese 2 Befehle steuern
lediglich die Aktuallisierung des Accessfensters

Gruß Franz

Bitte

Also nochmals Danke an Euch beiden…

Klasse,
eine echte Teamlösung, da freut sich das w-w-w Herz

Glückwunsch
Stefan

Tipp:
Du kannst hilfreiche Artikel mit einem Bewertungspunkt versehen.

Bitte

Also nochmals Danke an Euch beiden…

Bin auch von der Teamlösung begeistert und habe selber
noch was neues gelernt, so sollte es immer sein.
So macht WWW Spaß

Gruß Franz