Visualizzazione dei risultati da 1 a 9 su 9

Discussione: Funzione DMax

  1. #1
    Utente di HTML.it L'avatar di Kian
    Registrato dal
    Oct 2003
    Messaggi
    31

    Funzione DMax

    Ciao...
    Sembra che ultimamente mi capitino solo problemi per me incomprensibili.
    Guadate questa espressione:
    M = DMax("Campo","Tabella")
    Teoricamente M dovrebbe assumere il valore massimo fra tutti i valori di campo.Ma invece...Dipende!
    Se avvio il codice e lo faccio eseguire tutto insieme...mi da errore perchè rimane M=Null.
    Se invece lo eseguo passo passo( con il tasto F8 ) va tutto perfettamente.
    E' la prima volta che mi capita una cosa del genere.
    A cosa può essere dovuto secondo voi?
    Grazie

  2. #2
    Utente di HTML.it L'avatar di cik
    Registrato dal
    Jul 2003
    Messaggi
    449
    fai altre operazioni sulla tabella prima della funzione DMax?
    S'i fosse foco, arderei 'l mondo

  3. #3
    Utente di HTML.it L'avatar di Kian
    Registrato dal
    Oct 2003
    Messaggi
    31
    Si...
    Apro un recordset relativo a quella tabella.
    Poi aggiungo ad ogni iterezione una nuova riga a questo recordset utilizzando AddNew e subito dopo Update.
    Dopo aver fatto questo, controllo che una la variabile inserita nell'ultima operazione al recordset, sia o no uguale ad una costante.
    Se no...vado avanti con una nuova iterazione.
    Se si...uso la funzione DMax su quella tabella e su un determinato campo.
    Spero di essere stato chiaro...

  4. #4
    Se il record set non è Live, allora non vedrai apparire le modifiche che hai fatto, e nemmeno le vedrà la DMax.

    Ciao!
    "Le uniche cose che sbagli sono quelle che non provi a fare."
    Atipica

  5. #5
    Utente di HTML.it L'avatar di Kian
    Registrato dal
    Oct 2003
    Messaggi
    31
    Le modifiche che ho fatto compaiono nella tabella. E su questo non c'è problema.
    Il problema è che DMax fa il suo lavoro solo se utilizzo F8 andando passo per passo.
    Se invece uso F5 e gli faccio leggere il codice a lui tutto insieme mi dice che Dmax è Null.
    E' questo che non capisco!

  6. #6
    Non sto dicendo che le modifiche non compaiono nella tabella, sto dicendo che se il recordset non è live, le modifiche non compaiono NEL RECORDSET.

    Mi sa che non hai ben chiari i vari tipi di recordset...

    Ciao!
    "Le uniche cose che sbagli sono quelle che non provi a fare."
    Atipica

  7. #7
    Utente di HTML.it L'avatar di Kian
    Registrato dal
    Oct 2003
    Messaggi
    31
    Il fatto che non ho ben chiari i vari tipi di recordset è possibilissimo.
    Ma quello che pensavo di aver capito è che la funzione DMax non lavora su un recordset ma su una tabella.
    CamminoLimite1 è infatti il nome di una tabella.
    E quello che, ripeto, continuo a non capire, è perchè se uso F8 arrivato alla funzione DMax va tutto liscio e il codice effettivamente legge nella tabella il valore esatto.
    Mi dispiace se continuo a fare domande stupide.
    Ma se avessi tutto ben chiaro non sarei qui a chiedere aiuto.
    ciao...

  8. #8
    Quello che sto dicendo è quando tu lavori facendo passo passo, tra una istruzione e l'altra c'è del tempo, per cui i meccanismi di caching dei recordset possono salvare in tabella i dati con tranquillità, mentre quando va più veloce no.

    Comunque, se il valore DMax deve cambiare a causa degli inserimenti che tu fai, non è più semplice farsi restituire il Dmax solo all'inizio e poi aggiornartelo tu?

    In fondo se stai inserendo tu i nuovi record potrai di certoo confrontare il nuovo valore del campo nel record che stai inserendo con il vecchio valore massimo, e se è superiore prendi il nuovo, così sei sicuro di avere sempre il massimo indipendentemente da qualsiasi meccanismo di caching e tipo di recordset...

    In fondo questo modo di procedere potrebbe avere dei problemi solo nel caso di multitasking, ma in quel caso ce l avrebbe anche il metodo con dmax...
    "Le uniche cose che sbagli sono quelle che non provi a fare."
    Atipica

  9. #9
    Utente di HTML.it L'avatar di Kian
    Registrato dal
    Oct 2003
    Messaggi
    31
    Ora ho capito...
    Proverò a fare come mi suggerisci.
    Impara dagli errori degli altri: non puoi vivere così a lungo da farli tutti da te
    (Eleanor Roosevelt

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.