Access 2003 - Mehrfaches öffnen eines Projektes abfragen
Hallo!
Ich habe unter Access 2003 ein Programm erstellt, und möchte das dies nur einmal pro PC ausgeführt werden kann.
Unter VB und VB.net gibts da eine schöne Möglichkeit mit App.PrevInstance, was es anscheinend für VBA nicht gibt.
Ich suche nun eine Lösung, möglichst ohne externe Programme.
Freundliche Grüße!
Ich habe unter Access 2003 ein Programm erstellt, und möchte das dies nur einmal pro PC ausgeführt werden kann.
Unter VB und VB.net gibts da eine schöne Möglichkeit mit App.PrevInstance, was es anscheinend für VBA nicht gibt.
Ich suche nun eine Lösung, möglichst ohne externe Programme.
Freundliche Grüße!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 186779
Url: https://administrator.de/forum/access-2003-mehrfaches-oeffnen-eines-projektes-abfragen-186779.html
Ausgedruckt am: 23.04.2025 um 02:04 Uhr
6 Kommentare
Neuester Kommentar
Moin Moin,
mir ist es noch nicht gelungen als ein User mehrere Instanzen eines Access-Programms zu starten. Ich vermute daher: auf dem PC sind mehrere User gleichzeitig angemeldet, die dann das Programm auch mehrfach starten können.
Ich würde das Problem einfach mit einer zentralen Dummy-Textdatei lösen. Ist sie vorhanden, ist das Programm bereits gestartet, ist sie nicht vorhanden steht dem Start des Programms nichts im Wege.
Natürlich könntest du auch eine Tabelle anlegen und dort die Information ablegen. Nur sollte mal etwas schief gehen (Murphys Law) kann du extern schneller eine Datei löschen als in der Tabelle einen Wert ändern.
Grüße aus Rostock
Wolfgang
(Netwolf)
mir ist es noch nicht gelungen als ein User mehrere Instanzen eines Access-Programms zu starten. Ich vermute daher: auf dem PC sind mehrere User gleichzeitig angemeldet, die dann das Programm auch mehrfach starten können.
Ich würde das Problem einfach mit einer zentralen Dummy-Textdatei lösen. Ist sie vorhanden, ist das Programm bereits gestartet, ist sie nicht vorhanden steht dem Start des Programms nichts im Wege.
Natürlich könntest du auch eine Tabelle anlegen und dort die Information ablegen. Nur sollte mal etwas schief gehen (Murphys Law) kann du extern schneller eine Datei löschen als in der Tabelle einen Wert ändern.
Grüße aus Rostock
Wolfgang
(Netwolf)
Moin Moin,
In dem Fall wirst du immer das Problem haben, eingreifen zu müssen, es sei denn, du definierst eine Zeitspanne, in der das dann automatisch erledigt wird. Ein entsprechender Startparameter wäre auch noch denkbar.
Grüße aus Rostock
Wolfgang
(Netwolf)
Eine Dummydatei war auch meine erste Idee, allerdings hab ich dann das Problem, das ich die Datei immer von Hand löschen muss wenn das Programm wegen einem Fehler abgestürzt ist oder so.
In dem Fall wirst du immer das Problem haben, eingreifen zu müssen, es sei denn, du definierst eine Zeitspanne, in der das dann automatisch erledigt wird. Ein entsprechender Startparameter wäre auch noch denkbar.
Grüße aus Rostock
Wolfgang
(Netwolf)

Hallo ForgottenRealm!
Versuchs mal hiermit:
Gruß Dieter
Versuchs mal hiermit:
Private Const strComputer = "."
Private Sub ReadProcesses()
Dim objWMIService As Object, colProcesses As Object
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colProcesses = objWMIService.ExecQuery("Select * from Win32_Process Where Name = 'msaccess.exe'")
If colProcesses.Count = 0 Then
MsgBox "Läuft nix!"
Else
MsgBox "Läuft was!"
End If
End Sub
Gruß Dieter
Hallo,
Die Runtime kann doch auch mit Parameter gestartet werden. Da dann deine MDW (Arbeistgruppendatei) mit angeben. Das sollte dein Mehrfachöffnen doch auch unterbinden (hoffe ich). Ich hatte es immer so gemacht
Allerdings gab es auch immer in der Registrierung des betreffenden PCs den Pfad zur stanadardmäßigen MDW Datei
Das kann mit dem Workgroup Administrator innerhalb von Access 2003 gendert werden, oder per Hand.
Noch schnell gefunden:
http://support.microsoft.com/kb/305542
Gruß,
Peter
Die Runtime kann doch auch mit Parameter gestartet werden. Da dann deine MDW (Arbeistgruppendatei) mit angeben. Das sollte dein Mehrfachöffnen doch auch unterbinden (hoffe ich). Ich hatte es immer so gemacht
"C:\Programme\Microsoft Office\Office12\MSACCESS.EXE" "C:\ACCRT\DieDatenbank.mdb" /runtime /wrkgrp "C:\ACCWRKGRP\Gruppe01.mdw"
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\9.0\A ccess\Jet\4.0\Engines
"SystemDB"="C:\\ACCWRKGRP\\Gruppe01.mdw"
Noch schnell gefunden:
http://support.microsoft.com/kb/305542
Gruß,
Peter