Casella riepilogo e valorizzazione di una tabella

di il
8 risposte

Casella riepilogo e valorizzazione di una tabella

Ho una maschera di prelievo articoli con un campo riepilogo con il codice dell'operatore attivo che ottengo con "Select top 1 id_operatore from operatore_attivo where >1 orderby id desc".

Quando uso la maschera ritrovo il campo valorizzato con il valore corretto dell'id operatore solo che viene inserito nella tabella prelievi solamente se clicco sul campo, mentre io vorrei che fosse come un default dopo il primo inserimento.
Come potrei fare? Grazie

8 Risposte

  • Re: Casella riepilogo e valorizzazione di una tabella

    Leggi la documentazione su come si imposta il valore di default:
    https://support.office.com/en-us/article/set-default-values-for-fields-or-controls-99508d03-b28b-4057-9652-dac1c4c60d86
    http://www.iaccessworld.com/get-last-value-certain-field/
    http://allenbrowne.com/ser-24.htm
    https://www.tek-tips.com/viewthread.cfm?qid=111819
    https://access-programmers.co.uk/forums/showthread.php?t=279442
  • Re: Casella riepilogo e valorizzazione di una tabella

    Ho visto i suggerimenti ma o non ho capito o non riflettono il mio caso.
    ripongo il problema in un altro modo:
    in una tabella di prelievi ho un campo id operatore che identifica l'operatore che fa il prelievo. L'id operatore è un campo di un'altra tabella dove scrivo al login dell'operatore il suo codice per cui l'ultimo record contiene l'id dell'operativo attivo in quella sessione.
    ora vorrei che tutti i record prelievi creati contenessero per default l'id dell'operatore attivo.

    per ottenere questo ho inserito nella maschera prelievi un campo riepilogo che riempio con origine riga = "Select top 1 id_operatore from operatore_attivo where >1 orderby id desc". E la visualizzazione è corretta, però se non clicco sul campo il suo valore non viene inserito nel record prelievi creato.
    Forse ci sono altri metodi per ottenere il risultato che voglio.
    Grazie in ogni caso per i suggerimenti
  • Re: Casella riepilogo e valorizzazione di una tabella

    robademar ha scritto:


    ...ora vorrei che tutti i record prelievi creati contenessero per default l'id dell'operatore attivo.
    il tuo valore lo devi inserire come valore PREDEFINITO.
    ... ho inserito nella maschera prelievi un campo riepilogo che riempio con origine riga =
    "Origine riga" NON è il valore predefinito
    Forse ci sono altri metodi per ottenere il risultato che voglio.
    un'altro metodo per determinare il valore? ma questo già c'è...o no?

    saluti
  • Re: Casella riepilogo e valorizzazione di una tabella

    Sì ci sarebbe se funzionasse. ho provato a mettere nel valore predefinito Dlookup, sql con casella di testo e di riepilogo ma non funziona. Il predefinito mi funziona per un valore specifico o una formula, ma non con la lettura di un campo di una tabella. Io devo riempire con il valore di id dell'ultimo record della tabella operatori e ad ogni login creo un nuovo ed ultimo record.
    >Mettendo come origine la query io riempi il campo della maschera con il valore corretto che però viene inserito nella nuova tabella solo se seleziono il campo. Io lo vedo nella maschera ma non lo ritrovo nel record che scrivo a meno che non ci clicchi sopra.
  • Re: Casella riepilogo e valorizzazione di una tabella

    Come è stato indicato, in una casella di riepilogo (list-box) la proprietà "Origine riga", non imposta direttamente il valore di default (propone i valori possibili).
    Questo indipendentemente dal numero di record restituiti dal codice SQL (uno o più); infatti nessuna delle scelte possibili viene automaticamente selezionata come preferenziale (a meno di non cliccarvi sopra).
    Ora se si vuole impostare il default value (non agendo con codice VBA) si deve utilizzare la proprietà "Valore predefinito" (della casella di riepilogo).
    Dal punto di vista pratico, per ottenere ciò (stabilita la proprietà "Origine riga" dei valori possibili a cui si farà riferimento con la proprietà "Valore predefinito") si può implementare una query che fornisca il singolo valore.
    Quindi, realizzare la query (e memorizzarla) verificando che questa restituisca l'occorrenza voluta ed impostare una funzione DLookUp che, tramite la succitata query, fornisca il valore predefinito.
    Le istruzioni sono qualcosa di similare:
    
    =DLookUp("[PrimoOperatore]";"[QueryPrimoOperatore]")
    
    ed in tal modo. avendo il valore predefinito (fra quelli possibili) non vi sarà necessità di selezionarlo.
  • Re: Casella riepilogo e valorizzazione di una tabella

    Non ho motivo di dubitare del vostro suggerimento, però nel mio contesto non funziona.
    Per chiarezza io ho questo :
    tabella operatore_attivo
    campi ID, id_operatore
    tabella prelievi
    campi ..., operatore

    con un'altra maschera faccio il login operatore aggiungendo una riga nella tabella operatore_attivo per cui quello attivo è l'ULTIMO record scritto.

    Ora il lookup mi ritorna il primo record e quindi non ottengo quello che mi serve. Perciò avevo usato la select TOP.
    Forse ora vi è più chiaro il mio caso.
    quindi la domanda diventa : come fare una lookup che selezioni l'ultimo record della tabella?
    In ogni caso siete meravigliosi e vi ringrazio del tempo che mi dedicate
  • Re: Casella riepilogo e valorizzazione di una tabella

    Ho risolto !!!!!!!!

    l'istruzione giusta è
    =DLast("[id_operatore]";"[operatore_attivo]")

    grazie ancora a tutti
  • Re: Casella riepilogo e valorizzazione di una tabella

    Giusto per precisare:

    robademar ha scritto:


    Ora il lookup mi ritorna il primo record e quindi non ottengo quello che mi serve. Perciò avevo usato la select TOP.
    ...
    quindi la domanda diventa : come fare una lookup che selezioni l'ultimo record della tabella?
    se avessi posto l'ordinamento decrescente, l'ultimo record sarebbe stato quale primo della sequenza, di conseguenza avresti avuto lo stesso effetto anche con DLookUp (così come potevi anche impiegare il metodo DFirst).
Devi accedere o registrarti per scrivere nel forum
8 risposte