Condividi tramite

Chiudere e riavviare DB Access

Anonimo
2021-11-09T14:43:45+00:00

Buongiorno a tutti

Ho l'esigenza di chiudere Access al verificarsi di un certo evento con salvataggio dei dati e quindi riaprirlo. subito dopo averlo chiuso

Si può fare con vba?

Con quali comandi?

Ringrazio tutti per una risposta

Microsoft 365 e Office | Access | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

18 risposte

Ordina per: Più utili
  1. domenico laurenza 9,900 Punti di reputazione Moderatore volontario
    2021-11-16T14:45:17+00:00

    In coda a ciascuna risposta.

    La risposta è stata utile?

    1 persona ha trovato utile questa risposta.
    0 commenti Nessun commento
  2. Anonimo
    2021-11-10T12:00:12+00:00

    Ciao

    If Dir(Application.CurrentProject.Path & "*riavvia.vbs*") = "" Then

    cosa fa riferimento a riavvia.vbs ? a uno script

    ma io cosa devo mettere in questo script?
    Grazie della risposta

    Gianmario

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2021-11-09T17:02:10+00:00

    Ciao,

    continuando a cercare ho trovato la seguente soluzione che non ho provato:

    nell'evento su click di un pulsante della maschera aggiungi il seguente codice per creare lo script di riavvio:

    Private Sub TuoPulsante_Click()
    If Dir(Application.CurrentProject.Path & "\riavvia.vbs") = "" Then
    Open Application.CurrentProject.Path & "\riavvia.vbs" For Output As #1
    Print #1, "Dim shell"
    Print #1, "Set shell = wscript.CreateObject(""Wscript.Shell"")"
    Print #1, "shell.run """"""" & Environ("programfiles") & "\Microsoft
    Office\OFFICE11\msaccess.exe"""" """"" & Application.CurrentProject.Path &
    "\raccomandate.mdb"""""""
    Print #1, "set shell = nothing"
    Close #1
    End If
    docmd.quit
    End Sub

    e nell'evento su chiusura della maschera:

    Private Sub form_close()
    Call Shell("WScript.exe """ & Application.CurrentProject.Path &
    "\riavvia.vbs", vbHide)
    End Sub

    Facci sapere

    Ciao Mimmo

    Ho visto la tua risposta. Domani la provo

    Il motivo è questo

    In access gira una routine che per qualche motivo esterno può bloccarsi.

    Nella normale procedura aggiorna un campo tempo che funge da controllo per capire che si è verificato un blocco

    Quindi vorrei mettere una routine di controllo in un altro database che nel caso di evento di blocco chiuda il database bloccato e lo riapra in modo da farlo ripartire

    Gianmario

    La risposta è stata utile?

    0 commenti Nessun commento
  4. domenico laurenza 9,900 Punti di reputazione Moderatore volontario
    2021-11-09T16:00:49+00:00

    Ciao,

    continuando a cercare ho trovato la seguente soluzione che non ho provato:

    nell'evento su click di un pulsante della maschera aggiungi il seguente codice per creare lo script di riavvio:

    Private Sub TuoPulsante_Click()
    If Dir(Application.CurrentProject.Path & "\riavvia.vbs") = "" Then
    Open Application.CurrentProject.Path & "\riavvia.vbs" For Output As #1
    Print #1, "Dim shell"
    Print #1, "Set shell = wscript.CreateObject(""Wscript.Shell"")"
    Print #1, "shell.run """"""" & Environ("programfiles") & "\Microsoft
    Office\OFFICE11\msaccess.exe"""" """"" & Application.CurrentProject.Path &
    "\raccomandate.mdb"""""""
    Print #1, "set shell = nothing"
    Close #1
    End If
    docmd.quit
    End Sub

    e nell'evento su chiusura della maschera:

    Private Sub form_close()
    Call Shell("WScript.exe """ & Application.CurrentProject.Path &
    "\riavvia.vbs", vbHide)
    End Sub

    Facci sapere

    Ciao Mimmo

    La risposta è stata utile?

    0 commenti Nessun commento
  5. domenico laurenza 9,900 Punti di reputazione Moderatore volontario
    2021-11-09T15:20:24+00:00

    Ciao,

    non ho mai avuto questa esigenza quindi ho cercato su internet trovando la seguente istruzione

    Application.CurrentDb.Properties.Refresh

    che però non risolve alcune situazioni che necessitano proprio della chiusura e riapertura del DB.

    Non ho comunque trovato altre soluzioni.

    Per mia curiosità mi dici per quale motivo hai tale esigenza (della serie non si smette mai di imparare).

    Ciao Mimmo

    La risposta è stata utile?

    0 commenti Nessun commento