PDA

Vollständige Version anzeigen : 2. Aufruf von Microsoft Access


s8884martin
21.10.2017, 09:03
Hallo,

Ich habe das Problem, dass wenn ich den folgenden Skript aufrufe die Datenbank ein 2. Mal geöffnet wird, obwohl sie schon offen ist- wie kann ich das vermeiden?

Sub Datenbank()

Dim Pfad As String

'Einfach den Pfad ändern und das war's....
Pfad = "C:UsersS8884OneDriveDragonTools.accdb" '< XXX = Endung mdb, jpg, doc usw.
DateiOeffnen "open", Pfad, SW_MAXIMIZE
End Sub

Danke!

Martin

mumpel
21.10.2017, 09:14
Hallo!

Du musst die Datenbank auch wieder schließen. Dann funktioniert es auch.

Besser wäre es wenn Du die Datenbank nicht per ShellExecute aufrufst, sondern über Access direkt, dann kannst Du Access auch sauber beenden lassen. Stichwort: CreateObject("Access.Application")

Gruß, René

s8884martin
21.10.2017, 09:21
danke, das ist aber nicht meine Anforderung-wenn geöffnet, dann soll er die geöffnete Datenbank/Formular anzeigen-kannst Du noch bitte weiterhelfen?

Danke!

mumpel
21.10.2017, 10:50
Welches Programm nutzt Du zur Anzeige der Datenbank?

s8884martin
21.10.2017, 10:50
Access 2016

mumpel
21.10.2017, 11:31
Damit dürfte die Datei nur einmal geöffnet werden, und nur angezeigt werden wenn sie schon offen ist.

<pre style='border:thin solid #FF8000; padding:12px 24px; margin-left:12px; color:#000000'><span style='color:#0000EE'>Option</span> <span style='color:#0000EE'>Explicit</span> <span style='color:#0000EE'>Public</span> <span style='color:#0000EE'>Declare</span> <span style='color:#0000EE'>Function</span> ShellExecute <span style='color:#0000EE'>Lib</span> <span style='color:#FF0000'>&quot;shell32.dll&quot;</span> <span style='color:#0000EE'>Alias</span> <span style='color:#FF0000'>&quot;ShellExecuteA&quot;</span> (<span style='color:#0000EE'>ByVal</span> hWnd <span style='color:#0000EE'>As</span> <span style='color:#0000EE'>Long</span>, <span style='color:#0000EE'>ByVal</span> lpOperation <span style='color:#0000EE'>As</span> <span style='color:#0000EE'>String</span>, _ <span style='color:#0000EE'>ByVal</span> lpFile <span style='color:#0000EE'>As</span> <span style='color:#0000EE'>String</span>, <span style='color:#0000EE'>ByVal</span> lpParameters <span style='color:#0000EE'>As</span> <span style='color:#0000EE'>String</span>, _ <span style='color:#0000EE'>ByVal</span> lpDirectory <span style='color:#0000EE'>As</span> <span style='color:#0000EE'>String</span>, <span style='color:#0000EE'>ByVal</span> nshowcmd <span style='color:#0000EE'>As</span> <span style='color:#0000EE'>Long</span>) <span style='color:#0000EE'>As</span> <span style='color:#0000EE'>Long</span> <span style='color:#0000EE'>Public</span> hWnd <span style='color:#0000EE'>As</span> <span style='color:#0000EE'>Long</span> <span style='color:#0000EE'>Public</span> <span style='color:#0000EE'>Const</span> SW_HIDE = <span style='color:#DDAA00'>0</span> <span style='color:#008000'>' Versteckt &ouml;ffnen </span> <span style='color:#0000EE'>Public</span> <span style='color:#0000EE'>Const</span> SW_MAXIMIZE = <span style='color:#DDAA00'>3</span> <span style='color:#008000'>' Maximiert &ouml;ffnen </span> <span style='color:#0000EE'>Public</span> <span style='color:#0000EE'>Const</span> SW_MINIMIZE = <span style='color:#DDAA00'>6</span> <span style='color:#008000'>' Minimiert &ouml;ffnen </span> <span style='color:#0000EE'>Public</span> <span style='color:#0000EE'>Const</span> SW_NORMAL = <span style='color:#DDAA00'>1</span> <span style='color:#0000EE'>Public</span> <span style='color:#0000EE'>Const</span> SW_RESTORE = <span style='color:#DDAA00'>9</span> <span style='color:#0000EE'>Public</span> <span style='color:#0000EE'>Const</span> SW_SHOWMAXIMIZED = <span style='color:#DDAA00'>3</span> <span style='color:#0000EE'>Public</span> <span style='color:#0000EE'>Const</span> SW_SHOWMINIMIZED = <span style='color:#DDAA00'>2</span> <span style='color:#0000EE'>Public</span> <span style='color:#0000EE'>Const</span> SW_SHOWMINNOACTIVE = <span style='color:#DDAA00'>7</span> <span style='color:#0000EE'>Public</span> <span style='color:#0000EE'>Const</span> SW_SHOWNOACTIVATE = <span style='color:#DDAA00'>4</span> <span style='color:#0000EE'>Public</span> <span style='color:#0000EE'>Sub</span> AccessDBOeffnen() <span style='color:#0000EE'>Call</span> ShellExecute(<span style='color:#DDAA00'>0</span>, <span style='color:#FF0000'>&quot;open&quot;</span>, Environ(<span style='color:#FF0000'>&quot;USERPROFILE&quot;</span>) & <span style='color:#FF0000'>&quot;\Desktop\S8884\Test.accdb&quot;</span>, vbNullString, vbNullString, SW_MAXIMIZE) <span style='color:#0000EE'>End</span> <span style='color:#0000EE'>Sub</span><br><br><hr style='color: #FF8000; background-color:#FF8000; height:1px; border:none;' /><p style='font-size:9px; font-family: Verdana; text-align: left; '><a href='http://www.rholtz-office.de/vba-html' target='_blank'>VBA/HTML-CodeConverter</a>, AddIn f&uuml;r Office 2002-2016 - in VBA geschrieben von <a href='http://www.office-loesung.de/viewprofile19265.php'>Lukas Mosimann</a>. Projektbetreuung:<a href='http://www.rholtz-office.de'>RMH Software & Media</a></p><p style='font-size:11px; font-weight:bold; color:#0000FF; font-family:Verdana; text-align:left;'>Code erstellt und getestet in Office 16 - mit VBAHTML 12.6.0</p></pre>

markusxy
23.10.2017, 17:44
@mumpel,
ich habs nicht getestet, aber nach welchem Prinzip soll die mehrfache Öffnung verhindert werden? Ich kann nichts erkennen.

Ich kenne nur die Möglichkeit durch exklusives öffnen, oder man prüft vorher ob die Datei offen ist.

mumpel
23.10.2017, 17:52
Bei mir wird die Datei nur einmal geöffnet. Ist sie bereits geöffnet wird nur Access in den Vordergrund geholt.

markusxy
24.10.2017, 08:57
Also ich kann sowohl per Doppelklick via Shell, als auch per Code Aufruf via Shell mehrfach öffnen, sobald die Datei in einem Ordner liegt, dem Access vertraut, ansonsten wird auch nur einfach geöffnet.

LG Markus

s8884martin
24.10.2017, 14:17
Public Const SW_HIDE = 0

ab dieser Zeile ist alles rot - fehlt ein Verweis, wenn ja welcher?

Danke!

mumpel
24.10.2017, 14:51
Nein, einen Verweis braucht es nicht.