forgottenrealm
Goto Top

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!

Content-Key: 186779

Url: https://administrator.de/contentid/186779

Printed on: April 26, 2024 at 20:04 o'clock

Member: NetWolf
NetWolf Jun 20, 2012 at 13:44:09 (UTC)
Goto Top
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)
Member: ForgottenRealm
ForgottenRealm Jun 20, 2012 at 13:57:18 (UTC)
Goto Top
Moin

Ich öffne das Programm als Runtime Version über die msaccess.exe, dadurch ist es möglich, eine Access Anwendung mehrmals zu starten.

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.
Member: NetWolf
NetWolf Jun 20, 2012 at 14:38:48 (UTC)
Goto Top
Moin Moin,

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)
Mitglied: 76109
76109 Jun 20, 2012 at 22:30:35 (UTC)
Goto Top
Hallo ForgottenRealm!

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
Member: Pjordorf
Pjordorf Jun 21, 2012 updated at 00:48:40 (UTC)
Goto Top
Hallo,

Zitat von @ForgottenRealm:
Ich öffne das Programm als Runtime Version
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"  
Allerdings gab es auch immer in der Registrierung des betreffenden PCs den Pfad zur stanadardmäßigen MDW Datei
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\9.0\A ccess\Jet\4.0\Engines
"SystemDB"="C:\\ACCWRKGRP\\Gruppe01.mdw"  
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
Member: ForgottenRealm
ForgottenRealm Jun 21, 2012 at 06:40:29 (UTC)
Goto Top
Guten Morgen!

Didi: Die Funktion durchsucht den Taskplaner nach allen MS Access Programmen, mein Problem ist allerdings, das es durchaus andere Access Programme geben kann, die im Hintergrund laufen (sollen/können).

Gibt es eine Möglichkeit, mit der Funktion den Titel einer Anwendung an statt der Programmdatei abzufragen?

Peter: Irgentwie kann ich das Access Programm auch mit der Arbeitsgruppendatei mehrfach öffnen, muss aber dabei sagen das ich gerade zum ersten mal von der Arbeitsgruppendatei gehört habe, was genau muss ich damit machen ausser diese über Extras > Sicherheit zu generieren?