Funzione DLast

di il
4 risposte

Funzione DLast

Buongiorno,
La mia esigenza è questa: Vorrei impostare la caratteristica "valore predefinito" di un controllo in una maschera ad un valore rappresentato dal'ultimo valore di un dynaset + 1.
Per fare questo ho fino ad ora usato la funzione Dlast andando a cercare l'ultimo valore per quel campo ([NumeroProgressivo]) e aggiungendo "1".
Per un certo periodo tutto ok.
Riscontro ora un problema con la funzione Dlast. Nel senso che il suo risultato non è l'ultimo record del dynaset ma mi rimane fisso ad un valore.
Sapete spiegarmi il motivo?
PS: anche attraverso una query, impostando la funzione "ultimo" per il campo in questione, mi restituisce il solito valore.

Grazie
Andrea

4 Risposte

  • Re: Funzione DLast

    Salve.
    Mi incuriosisce molto..., sarebbe possibile allegarci il file di Access...? o è composto da troppe Tabelle ?
    In pratica si tratterebbe di un campo numerico, da dove con questa operazione, troveresti l'ultimo 'progressivo' a cui aggiungendo 1, avresti il nuovo progressivo del Record corrente in eleaborazione e da inserire...?!
    Comunque, nel qual caso fosse così, prova a sostituire la funzione 'DLast()', con 'DMax()'.
    Dammi notizie.
    Saluti.
  • Re: Funzione DLast

    Salve, Grazie per la risposta. Con Dmax() funziona. Ho temporaneamente risolto.
    Comunque mi piacerebbe sapere come mai (c'è sicuramente un motivo logico per questo) del funzionamento di Dlast()
    L'intero database è un po' pesante (25MB)... non so se posso inviarlo.
    Per questo motivo ho provato ad esportare la tabella incriminata e una query in un nuovo DB. Tuttavia aprendo il nuovo DB in cui ho esportato tabella e query, la funzione ha ripreso a funzionare correttamente.
    Forse il motivo è legato a qualche impostazione della specifica tabella nel mio DB??
    Mi conviene "esportare" la tabella e fare una successiva importazione dei dati?

    Grazie
    Andrea
  • Re: Funzione DLast

    Di niente...
    Vai a sapere cosa è successo in qualche 'meandro' del DB...?!
    Fossi in te lascerei tutto come hai, con la funzione DMax(), se assolve bene il suo compito..., anche perchè, in una situazione di progressione numerica sarebbe la più giusta da usare.
    Se poi ti sentissi più tranquillo con il funzionamento di prima, fai la tua esportazione...
    Saluti.
  • Re: Funzione DLast

    Andrea50018 ha scritto:


    Salve, Grazie per la risposta. Con Dmax() funziona. Ho temporaneamente risolto.
    Comunque mi piacerebbe sapere come mai (c'è sicuramente un motivo logico per questo) del funzionamento di Dlast()
    .....
    Grazie
    Andrea
    Ciao Andrea, premesso che solitamente si usa
    
    =NZ(DMAX(...))+1
    Nz serve nel caso la Tabella sia vuota...

    Prova a leggere bene quanto dice questo Link:

    ed anche questo:


    è molto evidente il motivo del probabile inghippo... peraltro al Paragrafo REMARKS spiega anche quale sia il metodo migliore per estrarre il primo o ULTIMO... e non cita DLAST.

    Devo dire peraltro che l'uso delle Funzioni di Aggregazione sui Domini(DMax/Dlast/Dlookup....) hanno delle performances discretamente scarse, se ti crei una Funzione che effettua il recupero del valore del TOP 1 con ordinamento DESC(decrescente) è decisamente meglio.
Devi accedere o registrarti per scrivere nel forum
4 risposte