Newsgroup: it.comp.appl.access
Titolo: Non far aprire una seconda copia del FE

Situazione di applicativo con FE e BE ma non per la multiutenza.
L'utente, capra, per definizione di utente, invece di utilizzare la stessa
copia del FE sospende una transazione e poi si dimentica, quindi apre
un'altra copia del FE e le cose si scombinano.
Come si puň fare per evitare ciň?
--
Antonio in trasferta lucana


Puoi verificare all'apertura del FE se esiste il file NomeBE.lbl... se
esiste significa che è già aperta una sessione. Fare attenzione al FE
aperto che non ha nessun record aperto (il file .lbl non c'è) puoi
tenere aperto un recordset globale per tutta la durata della sessione
(migliorando così anche le prestazioni del db).
Ciao bb

 (migliorando così anche le prestazioni del db).
No, questa non l'ho proprio capita...
Antonio in trasferta lucana

 wrote in message
news:CwT78.22982$5M4.7...@twister2.libero.it...
Auguri per la Trasferta.
Ho trovato mi pare su MVPS.Org proprio quello che fa per te.
Prova un Pò a vedere se funziona.....!
Ovviamente non c'è bisogno di commenti.
Ciao ANTONIO buon lavoro.
Alessandro.
?fIsAppRunning("Word",True)
If you just want to know if Word is running or not, you can simply call
the function like this:
?fIsAppRunning("word")
Note: New class names can be added to the Select case structure to
extend functionality.
'******************** Code Start ************************
Private Const SW_HIDE = 0
Private Const SW_SHOWNORMAL = 1
Private Const SW_NORMAL = 1
Private Const SW_SHOWMINIMIZED = 2
Private Const SW_SHOWMAXIMIZED = 3
Private Const SW_MAXIMIZE = 3
Private Const SW_SHOWNOACTIVATE = 4
Private Const SW_SHOW = 5
Private Const SW_MINIMIZE = 6
Private Const SW_SHOWMINNOACTIVE = 7
Private Const SW_SHOWNA = 8
Private Const SW_RESTORE = 9
Private Const SW_SHOWDEFAULT = 10
Private Const SW_MAX = 10
Private Declare Function apiFindWindow Lib "user32" Alias _
    "FindWindowA" (ByVal strClass As String, _
    ByVal lpWindow As String) As Long
Private Declare Function apiSendMessage Lib "user32" Alias _
    "SendMessageA" (ByVal Hwnd As Long, ByVal Msg As Long, ByVal _
    wParam As Long, lParam As Long) As Long
 
Private Declare Function apiSetForegroundWindow Lib "user32" Alias _
    "SetForegroundWindow" (ByVal Hwnd As Long) As Long
 
Private Declare Function apiShowWindow Lib "user32" Alias _
    "ShowWindow" (ByVal Hwnd As Long, ByVal nCmdShow As Long) As Long
 
Private Declare Function apiIsIconic Lib "user32" Alias _
    "IsIconic" (ByVal Hwnd As Long) As Long
 
Function fIsAppRunning(ByVal strAppName As String, _
        Optional fActivate As Boolean) As Boolean
    Dim lngH As Long, strClassName As String
    Dim lngX As Long, lngTmp As Long
    Const WM_USER = 1024
    On Local Error GoTo fIsAppRunning_Err
    fIsAppRunning = False
    Select Case LCase$(strAppName)
        Case "excel":       strClassName = "XLMain"
        Case "word":        strClassName = "OpusApp"
        Case "access":      strClassName = "OMain"
        Case "powerpoint95": strClassName = "PP7FrameClass"
        Case "powerpoint97": strClassName = "PP97FrameClass"
        Case "notepad":     strClassName = "NOTEPAD"
        Case "paintbrush":  strClassName = "pbParent"
        Case "wordpad":     strClassName = "WordPadClass"
        Case Else:          strClassName = ""
    End Select
 
    If strClassName = "" Then
        lngH = apiFindWindow(vbNullString, strAppName)
    Else
        lngH = apiFindWindow(strClassName, vbNullString)
    End If
    If lngH <> 0 Then
        apiSendMessage lngH, WM_USER + 18, 0, 0
        lngX = apiIsIconic(lngH)
        If lngX <> 0 Then
            lngTmp = apiShowWindow(lngH, SW_SHOWNORMAL)
        End If
        If fActivate Then
            lngTmp = apiSetForegroundWindow(lngH)
        End If
        fIsAppRunning = True
    End If
fIsAppRunning_Exit:
    Exit Function
fIsAppRunning_Err:
    fIsAppRunning = False
    Resume fIsAppRunning_Exit
End Function
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 ha scritto nel messaggio
news:yTS78.22823$5M4.7...@twister2.libero.it...

Altro suggerimento; hai provato testato l'eventuale errore che ritorna
AppActivate?
Ciao.
--
Sergio MAZZA

 AppActivate?
Ti faccio sapere
Antonio in trasferta lucana

 prestazioni del tuo db
Perchè dovrebbe migliorare le prestazioni?!?
Se ho delle tabelle allegate, non mi costa nulla accedervi se il database
non è già aperto...
e in questo modo il file lbl sarà sicuramente
LDB
Antonio in trasferta lucana

 AppActivate?
Risolto con la soluzione dell'apertura di un reocrdset all'avvio e test su
presenza del file LDB del BE
Antonio