Acquista i nostri libri consigliati su Amazon.it
+ Rispondi al messaggio
Visualizzazione dei risultati da 1 a 7 su 7

Valorizzare una casella di testo con query su maschera continua

  1. #1
    maxs84 non è in linea Scribacchino
    Post
    526
    Like Inviati  
    0
    Like Ricevuti  
    0
    Ciao a tutti,
    sul mio database ho una maschera continua che si appoggia una tabella temporanea che viene popolata eseguendo una "complessa" select sull'evento click di un comando.
    La select altro non fa che inserire dentro questa tabella temporanea tutti gli allievi che dovranno sostenere un determinato esame.
    Il filtro è assai complesso perchè le casistiche da considerare sono molteplici (titolo di studio, studi pregressi, tipologia di materia, etc etc).

    Adesso vorrei che, nel caso si tratti di un allievo "ripetente", che abbia effettuato e superato medesimo esame l'anno precedente, mi compaia su una casella di testo, il voto ottenuto la volta precedente, in maniera da escluderlo dall'esame.

    Io ho realizzato la select che mi da questo output ma adesso ho un problema:
    -se ho una casella di testo, non la so valorizzare tramite vba
    -se ho una casella combinata e do in pasto la select come "origine riga" nel caso di più allievi ripetenti vedrò il voto del primo su tutti

    -la maschera in oggetto si chiama "EsamiAllieviIns"
    -il comando che lancia la select che popola la tabella temporanea si chiama: "cmdAllieviIns"
    -la tabella temp si chiama: EsamiTemp
    -mentre la select che do come "origine riga" alla casella combinata è questa:
    "SELECT AllieviCorsi.IDAllievo, Voti.Voto
    FROM ((((AllieviCorsi AS AllieviCorsi_1
    LEFT JOIN (VotiAllievi LEFT JOIN Voti
    ON VotiAllievi.IDVoto = Voti.IDVoto)
    ON AllieviCorsi_1.IDAllievoCorso = VotiAllievi.IDAllievoCorso)
    INNER JOIN ((EsamiTemp INNER JOIN AllieviCorsi ON EsamiTemp.IDAllievoCorso = AllieviCorsi.IDAllievoCorso)
    INNER JOIN AllieviAnagrafica
    ON AllieviCorsi.IDAllievo = AllieviAnagrafica.IDAllievo)
    ON AllieviCorsi_1.IDAllievo = AllieviAnagrafica.IDAllievo)
    LEFT JOIN EsamiVerbali ON VotiAllievi.IDEsameVerbale = EsamiVerbali.IDEsameVerbale)
    LEFT JOIN Esami ON EsamiVerbali.IDEsame = Esami.IDEsame)
    LEFT JOIN Curricula ON Esami.IDCurricula = Curricula.IDCurricula
    WHERE (((AllieviCorsi.IDAllievo)=[Forms]![EsamiAllieviIns]![IDAllievo])
    AND ((Voti.Voto)>=18)
    AND ((AllieviCorsi.IDCorsoOrigine)=[Forms]![EsamiAllieviIns]![IDCorsoOrigine])
    AND ((Curricula.IDDisciplina)=[Forms]![EsamiAllieviIns]![IDDisciplina]));"
    
    Specifico che, l'allievo ripetente è contraddistinto da un "IDCorsoOrigine".
    Consigli?

  2. #2
    maxs84 non è in linea Scribacchino
    Post
    526
    Like Inviati  
    0
    Like Ricevuti  
    0
    Nessuno mi sa aiutare?

  3. #3
    OsvaldoLaviosa non è in linea Topo di biblioteca
    Post
    3,091
    Like Inviati  
    0
    Like Ricevuti  
    1
    Siamo sicuri che stai lavorando in uno scenario di tabelle normalizzate?
    Poi vuoi popolare una tabella dai risultati di una query. Perchè?
    ℹ️ Leggi di più su OsvaldoLaviosa ...

  4. #4
    maxs84 non è in linea Scribacchino
    Post
    526
    Like Inviati  
    0
    Like Ricevuti  
    0
    Nome:   Relazioni.png
Visite:  9
Grandezza:  33.8 KB

    Questa è la parte relazionale che interessa in questo quesito...
    Ovviamente ci sono molte altre tabelle dove gestisco passi di accesso, docenti, libri, etc... etc...

    Adesso la mia esigenze è questa:
    1-dopo aver creato un nuovo esame (Tabella Esami)
    2-e i relativi verbali a esso associati (Tabella EsamiVerbali)
    3-devo inserire dentro ogni verbale n Allievi (presi dalla tabella AllieviCorsi).

    Ovviamente, in base alle varie casistiche, su un verbale devono andare certi allievi e non altri (sia in base al corso di appartenenza, sia in base al titolo di studio posseduto) e nel caso specifico un fattore discriminante, nel caso in cui l'allievo è ripetente, è che abbia già fatto e superato l'esame della stessa disciplina con un corso precedente.
    In questo ultimo caso, sulla tabella VotiAllievi ci sarà già un record dove l'allievo in anagrafica si trova già con un voto relativo alla stessa disiplina.

    Ovviamente il caso reale è un pò più complesso perchè le varie discipline, per ogni corso, vengono inserite nella tabella Curricula e a loro viene associato il docente per quell'anno, le CFU e l'anno di svolgimento.
    Quindi l'allievo ripetente che l'anno prima aveva sostenuto l'esame di Storia, si troverà dentro alla tabella VotiAllievi con IDCurricula relativo alla Storia del suo corso...

    Io sono riuscito già, tramite una query di inserimento e dei filtri (in vba) a popolare la tabella EsamiTemp con gli allievi ipoteticamente interessati all'esame e quindi da inserire nel verbale.
    Poi tramite una checkbox (Seleziona in EsamiTemp) spunto quelli che effettivamente devono essere inseriti nel verbale ovvero nella tabella VotiAllievi.

    La parte che mi manca è, nel caso di un allievo ripetente, andare a pescare il voto (solo se >=18) su VotiAllievi e visualizzarlo sulla maschera o comunque inserirlo sul campo "VotoPrecedente" della casella EsamiTemp in modo che io possa eliminare la spunta "Seleziona" relativa a quel allievo e quindi non inserirlo sulla tabella VotiAllievi.

    Spero di essere stato chiaro, anche se ho i miei dubbi!
    Immagini allegate Immagini allegate  

  5. #5
    OsvaldoLaviosa non è in linea Topo di biblioteca
    Post
    3,091
    Like Inviati  
    0
    Like Ricevuti  
    1
    Sarà pur vero che non mi sento addentro il tuo campo professionale, la descrizione mi appare confusa, ma qualcosa mi dice che il tuo scenario tabelle non è normalizzato. Vedo ad esempio un campo IDCorso disseminato qua e là...
    ℹ️ Leggi di più su OsvaldoLaviosa ...

  6. #6
    maxs84 non è in linea Scribacchino
    Post
    526
    Like Inviati  
    0
    Like Ricevuti  
    0
    Beh la situazione è assai complessa e anomala...
    infatti, diversamente da una semplice univertà qui ci sono esami che sostengono anche persone non diplomate (ad esempio) e un'altra miriade di casistiche particolari da gestire di volta in volta...
    IDCorso è PK solo sulla tabella Corsi, mentre su tutte le altre è un FK.
    Qual'è il problema in merito?
    Grazie.

  7. #7
    maxs84 non è in linea Scribacchino
    Post
    526
    Like Inviati  
    0
    Like Ricevuti  
    0
    Ho risolto intraprendendo un'altra strada.
    Grazie.

+ Rispondi al messaggio

Potrebbero interessarti anche ...

  1. Espandere casella di testo in maschera continua
    Da ArmandoVBA nel forum Microsoft Access
    Risposte: 5
    Ultimo Post: 27-08-2019, 00:16
  2. Proprietà casella di testo in maschera continua
    Da Rinaldino23 nel forum Microsoft Access
    Risposte: 19
    Ultimo Post: 03-02-2019, 15:18
  3. Casella di testo in una maschera continua con lampeggio
    Da potricsa nel forum Microsoft Access
    Risposte: 1
    Ultimo Post: 15-01-2016, 23:13
  4. Casella di testo in una maschera continua con lampeggio
    Da potricsa nel forum Microsoft Word
    Risposte: 0
    Ultimo Post: 15-01-2016, 20:45
  5. Access - Cambiare Colore Casella di Testo in Maschera Continua
    Da Giorgio&Filo nel forum Microsoft Access
    Risposte: 8
    Ultimo Post: 23-11-2011, 18:44