Messaggi runtime access 2000

di il
6 risposte

Messaggi runtime access 2000

Buongiorno a tutti, da parecchio tempo utilizzo access 2000 e tutti i database che ho creato li ho distribuiti sui vari client utilizzando la runtime access 2000. Togliendo da access 2000 i flag che porrebbero le classiche domande ad ogni esecuzione di una query di comando anche sui client con la runtime il database non chiedeva nulla. Ora mi trovo a distribuire un database fatto con access 2000 (ho provato anche a salvarlo come una database di access 2013 ma il risultato non cambia) su notebook che ha installato windows 10. In questo caso (ho provato con tutte le versioni di runtime) il database aperto su windows 10 con la runtime ad ogni esecuzione di una query di comando pome le classiche domande se si vuole esegguire la query e poi quante righe ha aggiornato o cancellato.
Come posso fare per eliminare questi alert quanto eseguo il database con la runtime?
In attesa ringrazio e saluto per la collaborazione.

6 Risposte

  • Re: Messaggi runtime access 2000

    Penso che ci siano 2 soluzioni:
    A) Togli i flag di cui hai parlato prima anche per le versioni che distribuisci.
    B) Via VBA
    https://docs.microsoft.com/en-us/office/vba/api/access.docmd.setwarnings

    La soluzione B è quella più consigliata dai programmatori.
  • Re: Messaggi runtime access 2000

    Diciamo che hai sbagliato a togliere i FLAG da opzioni di sistema... il programmatore sviluppa affinchè le opzioni siano ININFLUENTI, quindi dovevi far eseguire le Queries Action in modo che non venisse generato il messaggio.
    L'ìesecuzione delle queries Action si può fare in 3 Modi:

    RunSQL (membro di Docmd)
    Esegue uno statement, non una Query salvata, e mostra i messaggi di interazione(Questo metodo agisce sul modello oggetti di Access)
    OpenQuery (membro di Docmd)
    Esegue una Query salvata, e mostra i messaggi di interazione(Questo metodo agisce sul modello oggetti di Access)
    Execute (membro dell'Oggetto Database in questo caso)
    Esegue sia uno Statement SQL che una Query salvata e NON mostra interazioni(Questo metodo agisce direttamente sul modello Oggetti di JET, NON di ACCESS)

    Il primo/secondo metodo si traduce in:
    
    DoCmd.SetWarnings False
    ' Non so che metodo usi per le Queries Action, ma sicuramente uno di questi 2...
    DoCmd.OpenQuery "NomeQuery"
    DoCmd.RunSQL "DELETE/UPDATE/INSERT...."
    DoCmd.SetWarnings True
    Il terzo metodo invece
    
    DbEngine(0)(0).Execute "DELETE/UPDATE/INSERT...."
    Inutile dire che il 3° è sempre il migliore anche perchè consente di rilevare i Records affetti dall'esecuzione e capire e validare l'esito.

    Fossi in te, mi orienterei in modo definitivo...
  • Re: Messaggi runtime access 2000

    Ciao Alex ti ringrazio per la risposta. Il mio problema è che ho sempre usato access senza usare sql quindi non saprei come rendere operative le tue informazioni.
    1) Devo inserirle in ogni query?
    2) Puoi farmi un esempio?
    Grazie ancora per la collaborazione.
  • Re: Messaggi runtime access 2000

    colof62 ha scritto:


    Ciao Alex ti ringrazio per la risposta. Il mio problema è che ho sempre usato access senza usare sql quindi non saprei come rendere operative le tue informazioni.
    Quindi quali sono le Azioni che ti generano i messaggi...?
    Le cancellazioni...?
    Anche queste si gestiscono da codice...

    colof62 ha scritto:


    1) Devo inserirle in ogni query?
    2) Puoi farmi un esempio?
    Grazie ancora per la collaborazione.
    Per le Query gli esempi che ti ho fatto sono operativi... quello è il codice da usare, ma credo manchi qualche pezzo... Causa-Effetto dei messaggi.
  • Re: Messaggi runtime access 2000

    colof62 ha scritto:


    Il mio problema è che ho sempre usato access senza usare sql
    Se non te la cavi con SQL, io seguirei il suggerimento OpenQuery di @Alex. Considerando che tu hai una query di comando con nome QueryX, sfrutta la sequenza istruzioni così:
    DoCmd.SetWarnings False
    DoCmd.OpenQuery "QueryX"
    DoCmd.SetWarnings True

    colof62 ha scritto:


    Devo inserirle in ogni query?
    Le query restano quelle che sono. Il codice suggerito (che è VBA non SQL)...sai tu da dove parte
  • Re: Messaggi runtime access 2000

    Ciao Alex ti ringrazio, al m omento ho risolto inserendo nelle macro prima delle query di comando IMPOSTA AVVISI NO e al termine delle query di comnado IMPOSTA AVVISI SI.
    Grazie
Devi accedere o registrarti per scrivere nel forum
6 risposte