Filtro su una tabella Listini con date

di il
8 risposte

Filtro su una tabella Listini con date

Saluti a tutti
Per sintesi nella spiegazione e per facile comprensione allego immagine delle tbl del mio DB.
Quando riporto sulla tbl_Lavorazioni il campo IDListino, mi compaiono nella tendina, tutte le lavorazioni riportate nella tbl_Listini.
La mia domanda: come posso filtrare la tbl_Listini per farmi comparire solo i più aggiornati??
ciao
grazie per la risposta
Allegati:
13622_5a10282631d23cd3995074de126c9d73.png
13622_5a10282631d23cd3995074de126c9d73.png

8 Risposte

  • Re: Filtro su una tabella Listini con date

    Immagino che attualmente nella tabella Lavorazioni al campo IDListino avrai creato una casella combinata con Origine riga: Listini.
    1) Crea una query dove importi la tabella Listini e trascini gli stessi campi che volevi vedere nella tua casella combinata
    2) Clicca sul pulsante Totali e scegli per il campo [Data listino], in corrispondenza di Formula: Max
    3) Salva la query con nome ListinoCorrente
    4) Ritorna in visualizzazione struttura tabella Lavorazioni e imposta Origine riga: ListinoCorrente

    P.S.: Non c'entra nulla con il titolo del thread. Ma ti consiglio, alla relazione TipiLavorazione.TipoLavorazione uno-a-molti con Listini.TipoLavorazione, di mettere la spunta su "Applica integrità referenziale".
  • Re: Filtro su una tabella Listini con date

    Sicuramente non sono riuscito a seguire bene i tuoi consigli.
    Si nella mia tbl_Lavorazioni al campo IDListino, ho una casella combinata con origine tbl_Listini creato con la ricerca guidata che mi ha dato un tipo dati numerico.
    Ho creato con la procedura guidata la query ListinoCorrente dalla Tbl_Listini.
    Ho riportato i campi : Data listino – Tipo Lavorazione – Prezzo, al campo DataListino con Totali, ho impostato “Massimo”.
    Sono andato nella struttura della Tbl_Lavorazioni e alla casella combinata ho inserito Origine Riga “ListinoCorrente” e quindi il mio campo IDListino è risultato cosi configurato: Indicizzato si (Duplicati ammessi) - Casella combinata – Tabelle/Query – Origine riga ListinoCorrente – Colonna associata 2 – Numero colonne 3 – intestazione colonne NO – Larghezza colonne 0cm;5cm;0cm – solo in elenco SI – Consenti valori multipli NO – Consenti modifiche a elenco NO – Mostra solo Valori Origine Riga NO.
    Ritornado sulla Tbl_Lavorazioni, mi sono ritrovato la seguente situazione:
    • Tutti i campi IDListino già riportati sul DB riportano adesso il campo IDLavorazione dalla Tbl_Listini.
    • Sulla tendina mi compaiono i tre campi impostati sulla query
    • All’inserimento di una IDListino, mi trascrive la IDListino selezionata, ma mi compare l’errore “il valore immesso non corrisponde al tipo dati numerico di questa colonna.
    A questo punto ho cambiato il tipo dati del campo IDListino in Testo dopo avere eliminato la relazione uno a molti esistente.
    All’immissione dei dati, anche se visualizza tutti i Tipo lavorazione, immette solo e sempre la prima voce e al tentativo di rimettere la relazione uno a molti fra il campo IDListino Tbl_Lavorazioni e il campo IDListino della tbl_Listini, mi da il messaggio di errore ” La relazione deve interessare lo stesso numero di campi contenenti lo stesso tipo di dati”
    La stessa cosa mi succede appena provo ad applicare l’integrità referenziale sulle tabelle che mi hai consigliato. “Impossibile creare la relazione e applicare l’integrità referenziale, i dati nella tabella listini, violano le regole di integrità referenziale”.
    Molto probabilmente sul mio db ho creato dei tipo dati errati, o sicuramente non riesco a mettere bene in pratica il tuo aiuto commettendo altri errori.
    Se ti è possibile, puoi ancora aiutarmi?
    Ciao e grazie per la risposta
  • Re: Filtro su una tabella Listini con date

    E' di fondamentale importanza che il primo campo della query sia esattamente il campo ID. Nel tuo caso IDListino. Poi, ti conviene nasconderlo (perché all'occhio umano non serve), impostando la proprietà
    Larghezza colonne: 0 cm; 1 cm; 2 cm; 4 cm...ecc...
    insomma la prima colonna deve avere sicuramente 0 cm, così non la vedi. La colonna immediatamente successiva con cm diverso da 0 sarà quella visibile quando tu rilasci il clic del mouse dopo la scelta del valore nella casella combinata. Ci sono numerosissimi altri thread che parlano della questione della casella combinata ben organizzata.
  • Re: Filtro su una tabella Listini con date

    Non è proprio come dici Osvaldo... i concetti sono relativamente corretti.

    E' sicuramente indispensabile che ci sia un Campo PK, che poi sia chiamato ID è un dettaglio.
    E' indispensabile sia il 1°...?
    No..!
    E' però sicuramente indispensabile conoscere l'esistenza della proprietà BoundColumn[Colonna Associata] che identifica proprio il Numero di Colonna nella quale risiete il Riferimento(in questo caso la PK), quindi fosse anche il 3° o il 10°... non importa... se poi nella proprietà BoundColumn si definisce l'indice equivalente.
    Stessa cosa dicasi per la larghezza delle Colonne, potrebbe essere la 3° o la 10° colonna quella a larghezza =0cm...

    Il fatto di impostare il 1° Campo di conseguenza la 1° colonna è più una convenzione di COMODITA', che peraltro io stesso uso e condivido, ma non un MUST.
  • Re: Filtro su una tabella Listini con date

    Ringrazio sempre per l’aiuto che mi date.
    Osvaldo, ho seguito le tue indicazioni, e ho letto anche i thread, ma purtroppo non mi hanno aiutato,
    Sono solo un autodidatta e molti “termini” sono per me incomprensibili, nella vita ho fatto tutt’altro ma ora mi cimento con cose che possono accrescere le mie conoscenze.
    Bando alle premesse:
    Dopo aver creato la query ListinoCorrente (1º ID cm 0 etc….), modificato l’origine della casella combinata, nella tbl_Lavorazioni il campo ID Listino (descrizione del lavoro) dei campi già esistenti, mi viene cambiato con la IDListino della tbl_Listini.
    Nei nuovi inserimenti, mi compare esattamente quello che desidero, ma appena immetto la voce, mi compare il messaggio “ Il valore immesso, non corrisponde al tipo di dati numerico di questa colonna”.
    Spero che avrai ancora la pazienza per rispondermi.
    Ciao, grazie
  • Re: Filtro su una tabella Listini con date

    SCUSATEMI,
    Ho continuato a provare e riprovare e finalmente quanto da me esposto si è risolto.
    a beneficio di tutti i lettori inesperti,
    seguire l'indicazione di Osvaldo
    non commettere il mio errore (colonna associata 1 - io commettevo l'errore di mettere il numero di colonna corrispondente a quanto volevo trascrive cioè 2).
    Osvaldo, comunque se io nella tbl_Listini, trascrivo una voce esistente con un prezzo nuovo e data diversa, nella tendina li vedo comunque entrambi, come mai? e normale o commetto ancora qualche errore?
    grazie per la risposta.
  • Re: Filtro su una tabella Listini con date

    ernestosup ha scritto:


    Osvaldo, comunque se io nella tbl_Listini, trascrivo una voce esistente con un prezzo nuovo e data diversa, nella tendina li vedo comunque entrambi, come mai? e normale o commetto ancora qualche errore?
    Ho sbagliato io nel formulare la query. Faccio sempre un po' di casino con le espressioni di Totali. Ho fatto un test presupponendo che i tuoi aggiornamenti nel tempo procedono cronologicamente Crescente di pari passo con il contatore IDListino.
    1. Vai in visualizzazione struttura query ListinoCorrente
    2. Correggi le seguenti formule:
    IDListino: Ultimo
    DataListino: Max
    TipoLavorazione: Raggruppamento
    Prezzo: Primo o Ultimo è indifferente
    3. Salva la query

    Ho fatto un test con pochi valori e funziona, ma non ho idea di cosa succede nel corso del tempo se per caso non dovessi essere coerente cronologicamente nel tempo...
  • Re: Filtro su una tabella Listini con date

    Grazie Osvaldo, ora funziona tutto perfettamente.
    Sul campo "Prezzo" ho dovuto inserire "Ultimo", altrimenti mi riportava il prezzo vecchio.
    Ti ringrazio ancora per l'aiuto
Devi accedere o registrarti per scrivere nel forum
8 risposte