+ Rispondi al Thread
Pagina 1 di 2 12 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 18

Discussione: Aggiornare menu a tendina da macro

  1. #1
    gionatan84 non è in linea Novello
    Post
    9

    Aggiornare menu a tendina da macro

    Salve a tutti. Sono nuovo del forum ma negli ultimi giorni ho letto diversi thread per imparare ad usare access.

    Spiego qual è il mio problema. Sto creando un database per registrare dati di bambini sostenuti a distanza, con i campi nome, cognome, data di nascita, ecc.
    Fra i record, c'è quello della classe scolastica frequentata, che viene selezionato da menu a tendina nella relativa maschera, collegata ad una tabella "classi".
    La questione è questa: trascorso un certo tempo, il bambino supera l'anno scolastico e passa alla classe successiva. Quindi avrei bisogno di creare un pulsante dal quale aggiornare la classe frequentata, in modo che la combobox scelga automaticamente la stringa successiva (le classi sono inserite in ordine).
    In alternativa posso creare una query che restituisca la classe successiva, ma serve comunque un pulsante per aggiornare la classe, aggiornando il dato inserito in precedenza con il risultato della query.

    Grazie per il vostro aiuto!

  2. #2
    Phil_cattivocarattere non è in linea Scribacchino
    Luogo
    Verona-Mantova
    Post
    1,688
    Quote Originariamente inviato da gionatan84 Visualizza il messaggio
    ...Fra i record, c'è quello della classe scolastica frequentata,
    Tra i campi, intendevi dire.
    Quote Originariamente inviato da gionatan84 Visualizza il messaggio
    ...che viene selezionato da menu a tendina nella relativa maschera, collegata ad una tabella "classi".
    Mi auguro che non si tratti di un campo a ricerca automatica o ricerca e relazione che dir si voglia.
    Per verificare guarda qua:Re: Importare dati da excel su campi con relazione (non badare al titolo)
    Quote Originariamente inviato da gionatan84 Visualizza il messaggio
    In alternativa posso creare una query che restituisca la classe successiva,
    Non è un'alternativa, è quella la strada. Dimentica quel concetto di "combobox che cambia". Dimentica anche la macro a cui hai fatto riferimento nel titolo.
    Una volta escluso che si tratta di un campo a ricerca automatica, indica come è memorizzata nella tabella degli alunni la classe scolastica e scrivi il contenuto della tabella delle classi. Fatto questo vediamo di studiare una query che faccia quello che deve essere fatto.
    Mi porto ulteriormente avanti: l'aggiornamento deve essere massivo? Nel caso di alunni che non sono passati alla classe successiva è più facile includere anche questi nell'aggiornamento massivo e poi "retrocederli" di una classe manualmente?

  3. #3
    gionatan84 non è in linea Novello
    Post
    9
    Ciao Phil e grazie per la risposta!
    Quote Originariamente inviato da Phil_cattivocarattere Visualizza il messaggio
    Tra i campi, intendevi dire.
    Si, esatto. Errore mio.

    Quote Originariamente inviato da Phil_cattivocarattere Visualizza il messaggio
    Mi auguro che non si tratti di un campo a ricerca automatica o ricerca e relazione che dir si voglia.
    L'origine riga della casella combinata è una query collegata ad un altro menu a tendina (campo Nazione). In funzione della Nazione di provenienza del bambino, vengono visualizzate solo le classi inerenti il sistema scolastico di quella data nazione. Chi compila la maschera indica prima la nazione, quindi passa a scegliere la classe frequentata nell'anno in corso.

    Quote Originariamente inviato da Phil_cattivocarattere Visualizza il messaggio
    Mi porto ulteriormente avanti: l'aggiornamento deve essere massivo?
    Si, l'aggiornamento massivo mi pare la via più indicata.
    Grazie ancora
    Ultima modifica di gionatan84; 04-07-2017 15:34 

  4. #4
    Phil_cattivocarattere non è in linea Scribacchino
    Luogo
    Verona-Mantova
    Post
    1,688
    Quote Originariamente inviato da gionatan84 Visualizza il messaggio
    ...Si, l'aggiornamento massivo mi pare la via più indicata.
    Bene, manca solo la struttura della tabella dove sono elencate tutte le classi disponibili e magari un "estratto" dei dati contenuti per vedere come trovare la classe successiva. Altrimenti gli elementi da considerare, anche nella spiegazioni, diventano troppo generici.

    (ndP, nota del Phil: dov'è Osvaldo che fa il lavoro sporco chiedendo nomi propri di campi e tabelle?)

  5. #5
    OsvaldoLaviosa non è in linea Topo di biblioteca
    Luogo
    Conversano
    Post
    2,953
    Io ipotizzerei un campo DataImmatricolazione...però...
    Quote Originariamente inviato da gionatan84
    database per registrare dati di bambini sostenuti a distanza
    Quote Originariamente inviato da gionatan84
    L'origine riga della casella combinata è una query collegata ad un altro menu a tendina (campo Nazione). In funzione della Nazione di provenienza del bambino, vengono visualizzate solo le classi inerenti il sistema scolastico di quella data nazione. Chi compila la maschera indica prima la nazione, quindi passa a scegliere la classe frequentata nell'anno in corso.
    ...come fai a creare un discorso/query "omogeneo" se (invento) nel Mali la scuola dura 3 anni, in Afghanistan 6 a partire da 4 anni, in Banghladesh dura 7 anni...???

    Quote Originariamente inviato da Phil_cattivocarattere
    dov'è Osvaldo che fa il lavoro sporco chiedendo nomi propri di campi e tabelle?
    Potrebbe non essere sufficiente senza una attenta analisi di ampio respiro. Boh!
    Ditemi i campi di tutte le vostre tabelle.

  6. #6
    gionatan84 non è in linea Novello
    Post
    9
    Ciao ragazzi e grazie!

    Ho provato a rispondere più volte in maniera dettagliata usando anche diversi colori di testo per aiutare nella comprensione, ma appena invio il messaggio continua a comparire la notifica che prima deve esserci l'approvazione di un moderatore.

    Voi che siete nel forum da tempo, che faccio? Aspetto e basta, oppure riscrivo la risposta semplificando il testo?

    [INSERISCO IL TESTO QUI']
    Complessivamente il DB ha dieci tabelle, ma quelle che interessano la questione sono tre. La tabella principale si chiama "Scheda Personale", è collegata alla maschera "Scheda Personale" e ha al suo interno i campi:

    Nome; Cognome; Sesso; Data di nascita.....Nazione; Classe....
    ovviamente ce ne sono altri ma che non hanno a che fare con la discussione.
    Nota: i campi Nazione e Classe sono delle caselle combinate.

    Ho una tabella "Nazioni" con il campo Nazione (ad es: Burkina Faso; Niger; India..) e questa è collegata (origine riga tabella/query) al campo Nazione di "Scheda Personale" per restituire un menu a tendina con la possibilità di selezionare una nazione.

    Poi ho la tabella "Classi" formata dai campi Classe; Classe Successiva; Nazione.
    La Query classi-nazione filtra le classi in base alla nazione scelta nel campo Nazione della maschera "Scheda Personale" (casella combinata) e questa query è l'origine riga di Classe in modo da visualizzare nel menu a tendina le possibili classi che appartengono alla data nazione.
    Il campo Classe contiene delle voci tipo: I elementare; II elementare.. ovviamente è un esempio perché i nomi cambiano, ma giusto per capire di che stiamo parlando.

    Il campo Classe Successiva mi permette di fare un'altra query per individuare, data la classe attuale e la nazione, qual è la classe successiva. Il problema è che questa scelta deve intervenire sul campo Classe, che è già risultato di una precedente query. In più c'è la questione di come dire al pulsante di eseguire tutto questo.

    Forse con i diversi colori sono stato più confusionario, ma non mi veniva in mente altro per provare ad essere più chiaro.
    Grazie ancora a tutti per l'aiuto!
    Ultima modifica di @Alex; 05-07-2017 12:08 

  7. #7
    Phil_cattivocarattere non è in linea Scribacchino
    Luogo
    Verona-Mantova
    Post
    1,688
    Quote Originariamente inviato da gionatan84 Visualizza il messaggio
    Voi che siete nel forum da tempo, che faccio? Aspetto e basta, oppure riscrivo la risposta semplificando il testo?
    Prova semplificando il testo, in ogni caso per "problemi tecnici" nella redazione dei post contatta con messaggi privati gli amministratori.

  8. #8
    L'avatar di @Alex
    @Alex non è in linea Very Important Person
    Post
    16,222
    Quote Originariamente inviato da gionatan84 Visualizza il messaggio
    Ciao ragazzi e grazie!

    Ho provato a rispondere più volte in maniera dettagliata usando anche diversi colori di testo per aiutare nella comprensione, ma appena invio il messaggio continua a comparire la notifica che prima deve esserci l'approvazione di un moderatore.

    Voi che siete nel forum da tempo, che faccio? Aspetto e basta, oppure riscrivo la risposta semplificando il testo?
    Non ci sono restrizioni preventive, ma vedo che hai inviato in qualche modo(non so come) 5 messaggi non validi...!
    Ho provato a risolvere inserendo il messaggio.
    @Alex
    Il CROSSPOST è VIETATO
    Mirror al vecchio sito WEB(salvare i Demo riassegnando l'estensione (.Zip/.Rar/.Exe in base all'icona...):
    http://mirror.masterdrive.it/alessandrobaraldi/
    Leggi il
    Regolamento del Forum e nel comprenderne la filosofia rispettalo.

  9. #9
    gionatan84 non è in linea Novello
    Post
    9
    Quote Originariamente inviato da @Alex Visualizza il messaggio
    Non ci sono restrizioni preventive, ma vedo che hai inviato in qualche modo(non so come) 5 messaggi non validi...!

    Grazie per l'aiuto Alex!

  10. #10
    Phil_cattivocarattere non è in linea Scribacchino
    Luogo
    Verona-Mantova
    Post
    1,688
    Quote Originariamente inviato da gionatan84 Visualizza il messaggio
    ...
    Poi ho la tabella "Classi" formata dai campi Classe; Classe Successiva; Nazione.
    ...
    Il campo Classe contiene delle voci tipo: I elementare; II elementare.. ovviamente è un esempio perché i nomi cambiano, ma giusto per capire di che stiamo parlando.
    Il campo Classe Successiva mi permette di fare un'altra query per individuare, data la classe attuale e la nazione, qual è la classe successiva.
    Scritta così è da una parte un vantaggio, perché permetterebbe di fare un aggiornamento molto facilmente, dall'altro vedo qualche problema nella struttura: quale o quali sono le chiavi primarie di questa tabella? Da quello che capisco i campi classe e classe successiva sono solo testi descrittivi. Possibile problema: chi mi dice che nel campo classe successiva hai inserito una classe che esiste veramente e che possa essere usata come "classe" per gli anni futuri?
    Esempio
    codice:
    ---Classe --- Classe Successiva--- Nazione
    I elementare-----II elementare ------- XYZ
    II elementare----III elementare--------XYZ
    A questo punto fare una query di aggiornamento è un gioco da ragazzi, basta dire di attribuire a "Classe" il valore di "Classe Successiva" mettendo in relazione la tabelle "Scheda Personale" e Classi con campi in join Classe e Nazione.
    Il mio suggerimento però è quello di modificare la tabella Classe (e di conseguenza anche il modo con cui questa è in relazione con "Scheda Personale") aggiungendo un campo IDClasse che fa da chiave primaria e che sarà poi la chiave esterna in "Scheda Personale". Nel campo Classe Successiva sarà presente l'IDClasse della classe successiva, in pratica la tabella conterrà un riferimento a se stessa. Questo per normalizzare i dati.
    Ipotizza che invece di "II elementare", in "Classe successiva" ci fosse stato scritto "2 elementare". Nel momento in cui cercavo di aggiornare "Classe" non sarei riuscito a trovare alcuna corrispondenza ed avrei presumibilmente violato la relazione tra le due tabelle. Metto intenzionalmente gli IDClasse non in sequenza per far vedere che non sono legati al fatto che uno è di seguito all'altro
    codice:
    IDClasse------Classe --- Classe Successiva--- Nazione
    3---------I elementare-----------9------------- XYZ
    9---------II elementare----------2--------------XYZ
    2---------III elementare---------??-------------XYZ
    ....
    Tutto questo ti renderà poi semplicissimo creare una query di aggiornamento, che probabilmente sarebbe possibile fare anche adesso ma modificando così la struttura è a prova d'errore, anche futuro.

+ Rispondi al Thread
Pagina 1 di 2 12 ultimoultimo

Tag per questa discussione

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi