Messaggio di Avviso e non apertura di una Maschera

di il
6 risposte

Messaggio di Avviso e non apertura di una Maschera

Buongiorno a tutti. 

Non riesco ad evitare l'evento di apertura di una maschera. Mi spiego.

Ho una maschera (M_Studenti) che si basa sulla relativa query (Q_Studenti) che si apre con il criterio Like [Digita Matricola].

Io vorrei questo. Alla richiesta di apertura della predetta maschera e dopo aver indicato la matricola nel Like, vorrei far uscire una Finestramessaggio che, qualora la matricola non esista o sia stata digitata in maniera errata, mi evidenzi questo fatto e, successivamente, mi blocchi l'apertura della maschera senza che la stessa, invece, si apra completamente bianca perché senza dati trovati.

Ho provato con la condizione [Matricola] Is Null in tutti gli eventi che credo servano (corrente, caricamento, apertura) ma non mi da niente.

Ovviamente parlo di macro e non di codice, perché, come emerso in altri post, non sono molto ferrato ma disposto ad apprendere in merito.

Non so se sbaglio la condizione o altro.

Grazie in anticipo per qualsiasi consiglio.

6 Risposte

  • Re: Messaggio di Avviso e non apertura di una Maschera

    Stai sbagliano metodo.

    Se il Criterio lo metti nella Query NON E' GESTIBILE...!!!

    Quello che hai fatto, ancorchè possa funzionare, non è il metodo da usare quando si utilizza un'interfaccia utente, per governare criteri di Validazione ed eventuali Condizionamenti, devi sfruttare una Maschera di IMMISSIONE.

    Nella Maschera metti una TextBox ed un pulsante, quando premi il pulsante validi prima il dato, e se valido lo passi alla proprietà FILTER di maschera.

  • Re: Messaggio di Avviso e non apertura di una Maschera

    Senza codice VBA la vedo buia che tu possa fare quello che chiedi.

    In alternativa a quanto suggerito da @Alex puoi utilizzare una combobox non associata che ha come origine dati il campo matricola della tabella; nell'impostazione della query imposti Valori univoci  a"si". Questo Ti  agevolera' l'inserimento perche' si autocompone mentre lo digiti, si evita cosi' eventuali errori.

    Nelle proprieta' della combo imposti  "Solo in elenco" a "si", "Consenti modifiche ad elenco valori" a "no" e "Mostra solo valori origine riga" a "si":  questo impedisce di inserire matricole non in elenco e gestisce l'errore "da solo"...

    A questo punto hai un numero di matricola validato, ma per filtrare la form occorre un po' di codice...

    Qualcosa del tipo:

    Me.FilterOn = False
    Me.Filter = "TuaMatricola=" & Me.cboTuaMatricola
    Me.FilterOn = True

    TuaMatricola e' il campo da filtrare

    cboTuaMatricola e' la combobox con il valore da filtrare

    Ovviamente dovrai giocare un po' con i controlli della form da rendere visibili o non visibili per rendere il tutto piu' leggibile...

  • Re: Messaggio di Avviso e non apertura di una Maschera

    Buongiorno a tutti.

    Allora vediamo se posso fare così. Io ho una maschera principale, la mia Home Page, che si apre automaticamente e si dimensiona a tutto schermo. 

    La maschera (M_Studenti) di cui chiedo viene aperta tramite pulsante e, ovviamente, chiede il like [Digita Matricola].

    Poteri fare così. In primis levo il like [Digita Matricola] dalla query (Q_Studenti). Creo una muova mascherina con la combobox e vicino un relativo pulsante che, una volta scelto il nominativo, mi apre la maschera (M_Studenti) filtrandola con la matricola scelta dalla combobox.

    Credo che possa essere una decente soluzione, anche a livello visivo, visto che l'applicativo è utilizzato, di rado, anche da altre persone e quindi voglio che sia molto intuitivo a livello visivo.

    Attendo conferme o smentite sulla mia "idea".

    Grazie ancora.

  • Re: Messaggio di Avviso e non apertura di una Maschera

    Se questa fosse la tua soluzione, non serve nemmeno Filtrare come ti abbiamo detto, basta usare la Funzione OPENFORM, e passare al parametro WHERECONDITION il criterio e fa tutto da sola...!

    DoCmd.OpenForm "NomeForm", , , "TuoCriterio"

    Ti suggerisco però, di approfondire meglio la gestione del prodotto perchè se parti con metodi "casalinghi" poi recuperare si rischia di fare 3 volte il lavoro...!

  • Re: Messaggio di Avviso e non apertura di una Maschera

    20/02/2025 - Dueruote ha scritto:

    Poteri fare così. In primis levo il like [Digita Matricola] dalla query (Q_Studenti). Creo una muova mascherina con la combobox e vicino un relativo pulsante che, una volta scelto il nominativo, mi apre la maschera (M_Studenti) filtrandola con la matricola scelta dalla combobox.

    Come gia' suggerito da @Alex, la tua e' una soluzione un po' casalinga che Ti costringe a fare poi degli "accrocchi" per gestire le varie casistiche. Non pensare solo all'uso corretto da parte dell'operatore; prova ad immaginare anche cosa potrebbe fare di sbagliato... (e qui si apre un mondo...)

  • Re: Messaggio di Avviso e non apertura di una Maschera

    Grazie ragazzi, ma il mio è un livello "casalingo" :)

    Ho risolto facendo come ho scritto prima con la combobox, solo che invece che creare un apposito pulsante ho inserito un evento al clic sul nome scelto dalla combobox. Infatti al clic sul nome cercato mi apre, in questo caso, la maschera desiderata con condizione/filtro sulla matricola scelta nella combobox.

    Devo dire che mi va bene e ho tolto anche un passaggio, ovvero il pulsante.

    Come detto in altri post, capisco il vostro lato di visione del lavoro ed è per questo che questo è uno dei gruppi/forum più spettacolare che abbia mai incontrato. E parlo in generale, non solo per quanto riguarda la progettazione access.

    Vi ringrazio dell'apertura mentale che, ogni volta io capiti in queste pagine, mi fate avere.

    Buona giornata a tutti.

Devi accedere o registrarti per scrivere nel forum
6 risposte