Finesta di dialogo su un risultato di una query

di
Anonimizzato10802
il
3 risposte

Finesta di dialogo su un risultato di una query

Finesta di dialogo su un risultato di una query

Come da titolo vorrei che a fine di una ricerca dove non trova un risultato mi si apra una finestra di dialogo dove a piacimento scrivo es. "nome non trovato",

in breve supponiamo che ho 2 campi nome e cognome faccio una query e metto nella maschera principale un pulsante cerca nome che a sua volta apre un'altra maschera con i relativi dati trovati, però se non trova niente vorrei che anzichè aprire la maschera con i campi vuoti mi restituisca un messaggio msgbox, mi pare si dica così dove inserisco a piacere il messaggio e che chiudendo il msgbox ritorni a visualizzare la maschera principale dove posso effuttare un'altra ricerca.
Utilizzo access 2003, grazie mille

3 Risposte

  • Re: Finesta di dialogo su un risultato di una query

    Non puoi ottenere NULLA se usi le QUERY in modo asettico, perchè una query non è gestibile.
    Le query sono oggetti da usare solo per la costruzione del predicato, poi si deve DELEGARE una maschera e/o del codice affinchè possa analizzare i risultati e generare un effetto condizionato.

    Quindi nel tuo caso devi delegare codice VBA semplice o una Form con codice VBA(nel caso tu debba inserire i parametri devi usare delle TextBox o ComboBox), aprire un Recordset sulla QUery Parametrica, verificare l'assenza di RECORDS e condizionare la scelta di aprire o meno la Form successiva...!

    Alternativa potrebbe essere delegare la FORM(se questa è basata sulla Query Parametrica) e sfruttare l'evento OPEN per verificare il Numero dei RECORDS e, nel caso sia=0 forzare il CANCEL=TRUE per annullare l'evento di OPEN.

    Tutto questo è semplice, se hai un minimo di conoscenze di VBA...
  • Re: Finesta di dialogo su un risultato di una query

    Ok pensavo fosse una cosa più semplice, grazie comunque.
  • Re: Finesta di dialogo su un risultato di una query

    Si può realizzare anche con azioni macro.
    Riepilogando tu hai il seguente scenario:
    TblAnagrafica con conseguente FormAnagrafica
    QFiltroNome con conseguente FormFiltroNome
    Entrambe le Form hanno un pulsante di comando, il primo Pulsante1 per dar via alla FormFiltroNome (che mette in moto la QFiltroNome), il secondo Pulsante2 per ritornare a FormAnagrafica.

    Al clic di Pulsante1 puoi far corrispondere una macro con le seguenti azioni:
    ApriMaschera / FormFiltroNome
    FinestraMessaggio (sotto ci scrivi un testo del tipo "Non ci sono record")
    Chiudi / Maschera / FormFiltroNome

    In corrispondenza delle azioni FinestraMessaggio e Chiudi devi associare una condizione con la seguente sintassi
    DCount("*";"QFiltroNome";"")=0
    nel rigo successivo (Chiudi) non è necessario riscrivere la stessa espressione, basta scrivere tre puntini
    ...
Devi accedere o registrarti per scrivere nel forum
3 risposte