Bloccare finestre di avvisi di access

di il
6 risposte

Bloccare finestre di avvisi di access

Buona sera,
ormai c'ho preso gusto a scrivervi ed ogni volta imparo sempre qualcosa in più, ma sono comunque ancora alle prime armi.
Stasera ho questa domanda da porvi: come fare per bloccare ogni finestra di avviso/errore che compare automaticamente appena apro dei report?
Premetto che ho già letto vari interventi in altre discussioni in cui si consiglia di non bloccare tali messaggi perchè importanti, ma il mio problema è diverso, perchè tali messaggi di errore compaiono SOLO perchè delle query devono svolgere dei calcoli matematici in cui è richiesta la presenza di un numero e che sia diverso da zero. Di conseguenza, dal momento che devo consegnare un database privo di dati che riempono le varie tabelle, le query non troveranno i numeri che cercano... e quindi, appena apro dei report che mi mostrano i risultati di tali operazioni, compare la finestra che mi dice "errore".
Ho voluto precisare ciò per chiarire che le finestre di errore alle quali voglio impedire la comparsa, si riferiscono soltanto ad una ovvia mancanza di dati all interno delle tabelle.
é possibile quindi bloccare la comparsa di questa finestre di avviso/errore?

grazie mille per l attenzione

jibi

6 Risposte

  • Re: Bloccare finestre di avvisi di access

    Buonasera Jibi, ...scrivi che il messaggio di errore é dovuto al risultato di un calcolo dove c'è uno zero che in condizioni di normale funzionamento non c'è... Secondo me é li che devi intervenire... Potresti usare la funzione "iif" per gestire la condizione che produce l'errore settando nella parte vera una formula che non produce l'errore... Se non riesci prova a postare il campo con la formula evidenziando in rosso il campo o il controllo che non dovrebbe essere 0..
  • Re: Bloccare finestre di avvisi di access

    A quanto pare ti rispondo (quasi) sempre io ....

    Permettimi un appunto : a cosa serve aprire un report se mancano dei dati (e/o se l' assenza di alcuni dati determina comunque un risultato NON veritiero) ?
    Perchè, invece di far aprire il report e prenderti messaggi di errore (magari per divisioni non possibili e/o altri problemi connessi) non intercetti gli errori (l' assenza dei dati) e fai aprire TU una finestra che ti informa che mancano dei dati fondamentali (e quindi NO report) ?

    Magari, poi i tuoi problemi possono essere risolti utilizzando la funzione nz sui campi non impostati (null) che potrebbero essere una ulteriore causa dei messaggi di errore .....
  • Re: Bloccare finestre di avvisi di access

    Grazie Angelo e come al solito Max. raccolgo i consigli espressi da Angelo e tengo a precisare che la formula è la seguente :
    Round(Sqr(Var([tabella1]![campo1])+Var([tabella1]![campo2]));4)
    si tratta di una radice quadrata tra due varianze, tutto approssimato a 4 cifre decimali. Credo di aver capito ciò che intendi Angelo, ma non saprei come attuarlo.
    Per rispondere a Max, il report resta vuoto di dati fintanto che non vengano aggiunti; tuttavia, anche se vuoto, in tale report sono presenti grafici e tabelle che si collegano ad altre query e tabelle, quindi il cliente avrà necessità di visualizzare tale report anche se ancora mancheranno i dati del corpo di questo. Scusami ma non ho capito cosa sia la funzione nz.

    Comunque, data la scarsa competenza di chi utilizzerà questo database, può andar bene (se non preferibile) che non compaia nessun messaggio di errore di alcun genere... va benissimo una soluzione che blocchi ogni messaggio d errore, a prescindere che venga da una formula matematica o da altro.

    Ringrazio ancora una volta

    jibi
  • Re: Bloccare finestre di avvisi di access

    ...hai dimenticato qualcosa?

    Angelo_Tbp ha scritto:


    Se non riesci prova a postare il campo con la formula evidenziando in rosso il campo o il controllo che non dovrebbe essere 0..
    ..

    Va beh ho visto io... Nella parte finale del link https://support.office.com/it-it/article/Funzioni-Var-VarP-e08f5f59-22f3-43d1-863f-a195df09904f puoi leggere che la query sottostante al campo che utilizza ka funzione var deve avere almeno due record altrimenti ti dice che non può essere valutata.. É quello l'errore? In caso affermativo forse mettendo l'intera espressione che hai postato nella parte vera di una funzione iif che ha per condizione dcount(tuaquery)>0... ENella parte falsa metti un espressione valida che ovviamente non deve essere composta dalla fun var
    Ps: Cerca nella guida in linea la corretta sintassi di dcount e di iif
  • Re: Bloccare finestre di avvisi di access

    Round(Sqr(Var([tabella1]![campo1])+Var([tabella1]![campo2]));4)
    Ho fatto una prova banale :
    - 1 tabella con un campo intero
    - 1 query con calcolo della varianza sul campo numerico
    Con nessun record e con 1 solo record la query restituisce un risultato con valore null. Non ho ricevuto alcun errore in esecuzione dalla query.
    Con almeno 2 record viene restituito il risultato della varianza.
    Quindi, dovrebbe bastare l' utilizzo della funzione nz nella tua formula ....
    
    Round(
    sqr(
    nz(Var([tabella1]![campo1]);0)
    +
    nz(Var([tabella1]![campo2]);0)
    )
    ;4)
    
    Per essere più preciso ed evitare miei possibili errori di sintassi in quello che ho scritto sopra :
    nz(var(campo);0) -> restituisce zero quando il risultato della var è nullo.
  • Re: Bloccare finestre di avvisi di access

    Perfetto! Provo quanto prima!
    Ringrazio sia Angelo che Max, che mi hanno prestato molto del loro tempo dandomi ottimi consigli. Grazie mille!
    (Ps: è vero non ho scritto in rosso quanto richiesto, sorry sorry)

    Grazie mille ancora

    Jibi
Devi accedere o registrarti per scrivere nel forum
6 risposte