Access 2010: Sottomaschera di inserimento con tutti i record della tabella associata visibili

di il
26 risposte

Access 2010: Sottomaschera di inserimento con tutti i record della tabella associata visibili

Salve,
avrei bisogno del vostro aiuto.
Ho realizzato un piccolo DB per gestire i dati dei rilievi dei passeggeri saliti su un mezzo di trasporto ad ogni fermata.
I dati che devo inserire sono i seguenti:
-DATA del rilievo
-RILEVATORE (pubblico/privato)
-DIREZIONE(andata/ritorno)
-NUMERO identificativo del mezzo
-ORARIO di partenza del mezzo
- N° dei saliti per OGNI FERMATA

Ho realizzato le seguenti tabelle così relazionate:
Ho realizzato una maschera di inserimento dove inserisco i valori dei campi
DATA, RILEVATORE, DIREZIONE, N°del TRAM, ORA

e una sottomaschera dove inserisco per ogni fermata i passeggeri saliti.
Quello che vi chiedo è se posso fare in modo che nella sottomaschera siano visibili contemporaneamente tutti i nomi delle fermate in ordine ID_FERMATA con la possibilità di inserire la quantità di passeggeri saliti per ogni fermata.
Vorrei anche, sempre che sia possibile, fare apparire l'ordine delle FERMATE in basa alla direzione.
Ovvero se la DIREZIONE è ANDATA l'ordine delle fermate sarà: A,B,C,D,E,F,G,H,I,L,M,N,O,P
mentre se la DIREZIONE è RITORNO l'ordine sarà: P,O,N,M,L,I,H,G,F...ecc.

Se non fosse possibile far apparire nella sottomaschera tutti i nomi delle fermate contemporaneamente, sarebbe possibile fare in modo che quando passo all'inserimento di un nuovo record della sottomaschera, quindi una nuova fermata, venga scritto il nome della fermata successiva rispetto a quella inserita nel record precedente (in base alla DIREZIONE)?

Spero di aver esposto in modo comprensibile. Grazie per l'aiuto che potrete e vorrete darmi.
Saluti Leonardo

26 Risposte

  • Re: Access 2010: Sottomaschera di inserimento con tutti i record della tabella associata visibili

    Secondo me, nella tua struttura tabelle, manca il fatto che un IDTram abbia una propria serie di Fermate. Voglio dire che dovresti avere la relazione Tram uno-a-molti Fermate. Penso che ogni Fermata potrebbe avere l'Indirizzo+Civico per identificarla meglio e una lettera vicino per capire di quale Step-Fermata si tratta (io preferirei i numeri...se le fermate dovessero essere più di 25 come fai?). Questa elencazione letterale (o numerica) dovrebbe implicare automaticamente il meccanismo di andata/ritorno se solo decidi di orientare correttamente il loro ordinamento.
    Forse ci sono da dire altre cose...preferisco fermarmi qui e lasciarti una pausa di riflessione...
  • Re: Access 2010: Sottomaschera di inserimento con tutti i record della tabella associata visibili

    Ciao Osvaldo, grazie per la risposta.
    Secondo me, nella tua struttura tabelle, manca il fatto che un IDTram abbia una propria serie di Fermate. Voglio dire che dovresti avere la relazione Tram uno-a-molti Fermate.
    In effetti non ci avevo pensato e credo sia corretto. Provvedo a sistemare.
    Penso che ogni Fermata potrebbe avere l'Indirizzo+Civico per identificarla meglio e una lettera vicino per capire di quale Step-Fermata si tratta (io preferirei i numeri...se le fermate dovessero essere più di 25 come fai?)
    Le lettere usate per i nomi delle fermate sono puramente indicative. Nella realtà hanno nomi di luoghi, come quelle ferroviarie (Prato, Lucca, Parma, Milano...ecc).
    Questa elencazione letterale (o numerica) dovrebbe implicare automaticamente il meccanismo di andata/ritorno se solo decidi di orientare correttamente il loro ordinamento.
    Avevo scartato questa ipotesi in partenza perchè secondo me sarebbe una forzatura. Se pensi alle fermate ferroviarie non esiste un nome fermata diverso in base alla direzione. La fermata "LA SPEZIA" si chiama così sia in un senso che nell'altro. È per questo che ho messo il campo direzione.
    Però se non fosse possibile arrivare alla risoluzione della mia esigenza lasciando lo stesso nome di fermata posso anche provare a mettere un nome fermata diverso a seconda della direzione.
    Pensi che non sia proprio possibile fare in modo che se il campo DIREZIONE è "ANDATA" l'ordine delle fermate è crescente mentre se è RITORNO è decrescente?

    Grazie ancora per la risposta. Ciao Leonardo
  • Re: Access 2010: Sottomaschera di inserimento con tutti i record della tabella associata visibili

    Io, accanto a NomeFermata, aggiungerei un campo NumeroFermata e applicherei l'Ordinamento Crescente o Decrescente, a seconda dei casi, su quest'ultimo campo.
  • Re: Access 2010: Sottomaschera di inserimento con tutti i record della tabella associata visibili

    Ok,
    ma come faccio a fare apparire nella sottomaschera tutti i record con le fermate?
    Oppure come faccio sempre nella sottomaschera a fare in modo che ad ogni nuovo record mi metta automaticamente il nome fermata?

    Grazie
    Leonardo
  • Re: Access 2010: Sottomaschera di inserimento con tutti i record della tabella associata visibili

    C'è un qualcosa di grosso che va rivisto nello scenario tabelle. A proposito, ma la Fermata in "Piazza Garibaldi 10" è prevista per un solo Tram oppure per molti?
  • Re: Access 2010: Sottomaschera di inserimento con tutti i record della tabella associata visibili

    Il tragitto attuale è composto da 14 fermate e nel tragitto ci sono 17 tram ognuno dei quali, quando è in servizio, si ferma a ciascuna delle 14 fermate. Sia in una direzione che nell'altra.
  • Re: Access 2010: Sottomaschera di inserimento con tutti i record della tabella associata visibili

    Ma il tragitto è uno solo?
    1) Palermo
    2) Messina
    3) Reggio Calabria
    4) Cosenza
    5) Salerno
    6) Napoli
    7) Roma
    8. Firenze
    9) Bologna
    10) Modena
    11) Reggio Emilia
    12) Piacenza
    13) Mantova
    14) Milano
  • Re: Access 2010: Sottomaschera di inserimento con tutti i record della tabella associata visibili

    Il tragitto è :
    IN ANDATA
    1) Palermo
    2) Messina
    3) Reggio Calabria
    4) Cosenza
    5) Salerno
    6) Napoli
    7) Roma
    8. Firenze
    9) Bologna
    10) Modena
    11) Reggio Emilia
    12) Piacenza
    13) Mantova
    14) Milano

    IN RITORNO è esattamente l'opposto

    1) Milano
    2) Mantova
    ...
    ecc
  • Re: Access 2010: Sottomaschera di inserimento con tutti i record della tabella associata visibili

    Io la struttura tabelle la vedrei così:

    Tram
    IDTram (numerazione automatica, chiave primaria)
    Tram

    Fermate
    IDFermata (numerazione automatica, chiave primaria)
    NumeroFermata
    NomeFermata
    AR (qui indichi se è Andata o Ritorno)
    Questa tabella avrà 28 record. Dal 15mo al 28mo riscrivi le stesse Fermate in ordine inverso e ci scrivi accanto Ritorno

    FermateTram
    IDFT (numerazione automatica, chiave primaria)
    TimeFermata
    IDFermata (numerico)
    NumeroPasseggeriSaliti
    IDTram (numerico)

    Relazioni:
    Tram.IDTram uno-a-molti FermateTram.IDTram
    Fermate.IDFermata uno-a-molti FermateTram.IDFermata

    Quello che occorre fare ogni volta che parte una Corsa (ossia un set di 14 record) è di accodarli nella tabella FermateTram. I restanti campi TimeFermata, NumeroPasseggeriSaliti verranno compilati volta per volta.
  • Re: Access 2010: Sottomaschera di inserimento con tutti i record della tabella associata visibili

    Ciao grazie,
    provo a organizzarla ma c'è qualcosa che non mi è chiaro.
    In questo modo il TimeFermata sarebbe uno ogni fermata? Io devo mettere solamente l'orario della partenza della corsa. L'orario delle fermate intermedie non serve.
    Comunque provo a sistemare il tutto e poi ti faccio sapere. Grazie ancora Leonardo
  • Re: Access 2010: Sottomaschera di inserimento con tutti i record della tabella associata visibili

    Scusa, mi sono arenato.
    Ho creato le tabelle aggiungendo alla tabella FermateTram anche il campo Data. Ho impostato le relazioni, come mi hai suggerito.

    Quello che occorre fare ogni volta che parte una Corsa (ossia un set di 14 record) è di accodarli nella tabella FermateTram. I restanti campi TimeFermata, NumeroPasseggeriSaliti verranno compilati volta per volta.
    Non mi è chiaro come dovrei fare. Scusa ma sono entrato in palla....!!!
  • Re: Access 2010: Sottomaschera di inserimento con tutti i record della tabella associata visibili

    leonardocarrani ha scritto:


    In questo modo il TimeFermata sarebbe uno ogni fermata? Io devo mettere solamente l'orario della partenza della corsa. L'orario delle fermate intermedie non serve.
    Quand'è così, vuol dire che occorre rivedere ulteriormente la struttura. Serve una tabella Corse. Solo che non è chiaro se la Corsa delle 8:30 che parte da Milano--->Palermo (Ritorno) viene effettuata sempre dallo stesso IDTram oppure no.
  • Re: Access 2010: Sottomaschera di inserimento con tutti i record della tabella associata visibili

    No, se cambia la data può cambiare anche l'IDTram. Cioè oggi quella corsa la fa un IDTram e domani la stessa corsa un altro IDTram.

    Io mi sono arenato anche sulla qry di accodamento...
  • Re: Access 2010: Sottomaschera di inserimento con tutti i record della tabella associata visibili

    Non sono sicurissimo, ma ci vedrei il seguente nuovo scenario tabelle:

    Tram
    IDTram (numerazione automatica, chiave primaria)
    Tram

    Corse
    IDCorsa (numerazione automatica, chiave primaria)
    OraInizioCorsa
    AR (questo campo è necessario perchè potresti avere 2 Corse con orario uguale, ma una da Palermo, l'altra in contemporanea da Milano)

    CorseTram
    IDCT (numerazione automatica, chiave primaria)
    DataCorsa
    IDCorsa (numerico)
    IDTram (numerico)

    Fermate
    IDFermata (numerazione automatica, chiave primaria)
    NFermataA
    NFermataR (direi che questi 2 campi è meglio scriverli entrambi in ordine inverso e manualmente da 1 a 14...di conseguenza questa tabella ora avrà 14 record)
    Fermata

    DettagliFermate
    IDDF (numerazione automatica, chiave primaria)
    IDCT (numerico)
    IDFermata (numerico)
    NumeroPasseggeriSaliti

    Relazioni:
    Tram.IDTram uno-a-molti CorseTram.IDTram
    Corse.IDCorsa uno-a-molti CorseTram.IDCorsa
    Fermate.IDFermata uno-a-molti DettagliFermate.IDFermata
    CorseTram.IDCT uno-a-molti DettagliFermate.IDCT

    Da CorseTram, in base al proprio IDCorsa che conserva se è A o R, tu stabilisci che una query di accodamento deve accodare 14 record da Fermate in DettagliFermate in base al CorseTram corrispondente. L'ordinamento Crescente in base al campo NFermataA oppure NFermataR stabilirà il corretto recordset...sembra un po' arzigogolato...si tratta di cogliere i punti focali di tutto il discorso.
    Per me la mia ultima struttura tabelle potrebbe andare.
Devi accedere o registrarti per scrivere nel forum
26 risposte