MsgBox con Query di Conta su selezione ComboBox

di il
5 risposte

MsgBox con Query di Conta su selezione ComboBox

Buonasera a tutti,
premettendo che so qualcosa di Database ma sono completamente nuovo su Access, mi è stata chiesta una mano su qualche modifica a un DB.
Mi sono bloccato sulla seguente:
La tabella principale è un elenco di persone con decine di colonne. Ho creato un ComboBox tramite wizard - e annullandolo - per poi mettere come origine riga una Query SQL che mostra come opzioni del ComboBox i dati unici di una colonna (anno di iscrizione della persona) e fin qui tutto ok.
Sulla selezione dell'anno ho creato un evento (Macro) ApriMaschera che mi apre la Maschera di visualizzazione predisposta per il DB, correttamente filtrata in base alle persone iscritte nell'anno selezionato.
Tuttavia mi è stato chiesto di inserire anche un comando per contare l'effettivo numero di persone iscritte in quell'anno. Per evitare di fare un altro pulsante/combobox ho visto la possibilità di creare un MsgBox all'apertura della maschera e sarebbe perfetto, ma ogni modo che ho provato per eseguire la query di conta non funziona/dà errore.
Come posso fare? Ho pensato anche di implementare il tutto in VB ma se premo sul combobox e faccio "Visualizza Codice" mi esce solo "Option Compare Database" a differenza degli altri comandi che hanno un corpo/funzione strutturato. VB non è un linguaggio che conosco troppo, quindi non saprei bene come lavorarci.

Qualche idea?

Grazie mille in anticipo

5 Risposte

  • Re: MsgBox con Query di Conta su selezione ComboBox

    Rispiega tutto usando nomi propri di tabella, campi, maschera, su quale combobox avviene il fatto, quale maschera apre ApriMaschera, su quale oggetto vuoi il Conta.
  • Re: MsgBox con Query di Conta su selezione ComboBox

    Ciao e grazie per la risposta

    La Tabella si chiama "elenco generale iscritti", e ha tante colonne tra cui quelle utili sono Cognome, Nome, Iscrizione

    Il combobox si chiama CasellaCombinata7 ed è in una maschera di prova fatta da me
    Origine riga SELECT DISTINCT [elenco generale iscritti].[iscrizione] FROM [elenco generale iscritti] ORDER BY [iscrizione] DESC;

    Questo mi permette di avere tutti gli anni possibili nel menù a tendina del ComboBox

    Evento su clic -> Macro incorporata

    La macro al momento esegue "ApriMaschera" sulla Maschera "iscritti indir filtrato" che è una maschera di visualizzazione dei record. Visualizzazione Maschera
    Nome Filtro
    Condizione WHERE = [Maschere]![Prova]![CasellaCombinata7]=[elenco generale iscritti]![iscrizione]
    Modalità immissione dati
    Modalità finestra Normale

    Questo funziona correttamente e apre la maschera "iscritti indir filtrato" in base agli iscritti nell'anno scelto dal ComboBox
    Ora mi è stato chiesto anche di contare quanti effettivamente sono gli iscritti in quell'anno, ma non capisco dove andare a mettere la query sql. Pensavo di fare Aggiungi Nuova Azione -> Finestra Messaggio per creare un messaggio con il numero di record estratti ma non mi permette di scriverci la query
  • Re: MsgBox con Query di Conta su selezione ComboBox

    Io non sono pratico nell'uso del SQL, preferisco utilizzare gli strumenti nativi di Access, ossia le query in visualizzazione struttura.
    1. Crea una nuova query in visualizzazione struttura
    2. Importa la tabella Iscritti
    3. Trascina nella griglia sottostante i campi che a te interessa prendere in considerazione, sicuramente anche Iscrizione
    4. In corrispondenza del campo Iscrizione, a Criterio, scrivi:
    [Maschere]![elenco generale iscritti]![iscrizione]
    5. Salva la query con nome IscrittiFiltrati
    6. Sfruttando la funzione
    DCount("*";"IscrittiFiltrati")
    puoi sapere quanti sono, quindi in VBA puoi scrivere qualcosa come
    MsgBox "Gli Iscritti filtrati sono " & DCount("*","IscrittiFiltrati")
    N.B.: Se usi DCount in qualche macro o controllo di maschera o query, il carattere separatore argomenti è il PUNTO-VIRGOLA. Se usi VBA è la VIRGOLA.

    RpiUser ha scritto:


    Questo funziona correttamente e apre la maschera "iscritti indir filtrato" in base agli iscritti nell'anno scelto dal ComboBox
    Ora mi è stato chiesto anche di contare quanti effettivamente sono gli iscritti in quell'anno
    Considera che in basso alla maschera, accanto ai piccoli pulsanti di spostamento record, c'è una piccola casella di testo che dice quanti sono i record filtrati.
  • Re: MsgBox con Query di Conta su selezione ComboBox

    OsvaldoLaviosa ha scritto:


    Io non sono pratico nell'uso del SQL, preferisco utilizzare gli strumenti nativi di Access, ossia le query in visualizzazione struttura.
    1. Crea una nuova query in visualizzazione struttura
    2. Importa la tabella Iscritti
    3. Trascina nella griglia sottostante i campi che a te interessa prendere in considerazione, sicuramente anche Iscrizione
    4. In corrispondenza del campo Iscrizione, a Criterio, scrivi:
    [Maschere]![elenco generale iscritti]![iscrizione]
    5. Salva la query con nome IscrittiFiltrati
    6. Sfruttando la funzione
    DCount("*";"IscrittiFiltrati")
    puoi sapere quanti sono, quindi in VBA puoi scrivere qualcosa come
    MsgBox "Gli Iscritti filtrati sono " & DCount("*","IscrittiFiltrati")
    N.B.: Se usi DCount in qualche macro o controllo di maschera o query, il carattere separatore argomenti è il PUNTO-VIRGOLA. Se usi VBA è la VIRGOLA.

    RpiUser ha scritto:


    Questo funziona correttamente e apre la maschera "iscritti indir filtrato" in base agli iscritti nell'anno scelto dal ComboBox
    Ora mi è stato chiesto anche di contare quanti effettivamente sono gli iscritti in quell'anno
    Considera che in basso alla maschera, accanto ai piccoli pulsanti di spostamento record, c'è una piccola casella di testo che dice quanti sono i record filtrati.
    Ciao e grazie per la risposta
    Non avevo pensato al numero di record in basso! Vediamo se gli va bene, nel caso contrario invece:

    -Al punto 4 non dovrei mettere come criterio la casella combinata?
    -Il codice in VBA dove andrebbe messo? Ci capisco proprio poco di sta roba
  • Re: MsgBox con Query di Conta su selezione ComboBox

    RpiUser ha scritto:


    -Il codice in VBA dove andrebbe messo? Ci capisco proprio poco di sta roba
    Lascia perdere, sfrutta il numerino in basso.
Devi accedere o registrarti per scrivere nel forum
5 risposte