Newsgroup: it.comp.appl.access
Titolo: Sto' impazzendo !!!!

Ho una tabella contenente due tipi di record
Un tipo sono degli ordini clienti che partono dalla numero 1 in avanti, il
secondo tipo di ordini clienti parte dal numero 50.000 in avanti
Come posso fare da codice per trovare il numero di ordine cliente piu' alto
pero' del primo tipo (ossia inferiore a 50.000)
esempio.
NUM. ORDINE
1
2
3
50000
50001
50002
voglio che mi restiutisca 3
Grazi a chi puň aiutarmi.
Ciao
Giorgio

Ciao sono Arianna
potresti utilizzare la funzione DMax (però se ci sono tanti record diventa
un pò pesante e soprattutto se devi eseguirla tante volte in un ciclo)
Dim i
    i = Nz(DMax("CampoNumero", "NomeTabella", "CampoNumero < 50000"), "")
    'prova a farlo visualizzare...
a me funziona....
ciao By Arianna

Ciao,
Non sono sicuro di aver capito bene cosa ti serve, ma non ti basta fare una
query del tipo:
"Select Max(Num_Ordine) from Tabella Where Num_Ordine < 50000"
GIORGIO ha scritto nel messaggio ...


Grazie per il suggerimento
cerco di essere un pò più chiaro
Ho un pulsante nella maschera ordini che se premuto voglio che mi riporti
tutti i dati dell'ultimo ordine inserito il cui numero ordine è inferiore a
49.999
Io avevo provato con queste righe di codice ma mi sono accorto che la
funzione "dlast" restituisce dei valori casuali.
Me![RagSociale] = Dlast("[RagSociale]", "disposizioni", "[NumOrdine] <
49999")
Me![Data] = Dlast("[Data]", "disposizioni", "[NumOrdine] < 49999")
Me![Articolo] = Dlast("[Articolo]", "disposizioni", "[NumOrdine] < 49999")
......
Esiste una funzione similare che però mi permetta di copiare i valori
dell'ultimo ordine inserito (sempre minore di 49999)

Innanzi tutto la funzione DLast ti restituisce un numero a caso perchè
(leggi la guida)
Allora io ti consiglierei di estrarti il numero massimo dalla tua tabella
con il DMAX
i=Nz(DMax("CampoNumero", "NomeTabella", "CampoNumero < 50000"), "") ' o
eventualmente 49999 (sei tu a deciderlo)
ti posso buttare giù qualcosa che non ho provato ma l'ho fatto un miliardo
di volte e te lo posso garantire:
Dim rst as recordset
Dim i as integer
dim strSQL as string
    'estrai il massimo dalla tabella
    i=DMax("Campo", "NomeTabella", "[Campo] < 49999")
    'creazione della query che ti estrae i dati dalla tabella con il numero
massimo ma minore di 50000(49999)
    strsql= "SELECT  * FROM Nometabella WHERE Campo = " & i
    'apri il recordset con la query e ti trovi un record che ti
restituiscono le informazioni della tabella con 'numer' massimo ma minore di
50000(49999)
    set rst=currentdb.openrecordset(strsql)
    'se rst.eof è true la query non ha trovato alcun record
    if rst.eof<>FALSE then
        Me![RagSociale] =rst!RagSoc
        Me![Data]=rst!Data
    ...
    endif
    rst.close
    set rst=nothing
Se vuoi farmi sapere come è andata
Spero di aver capito cosa volevi altrimenti sono qua
By Arianna

Ti chiedo scusa ....:
dopo che hai aperto il recordset diventa cosi
NON -> if rst.eof<>FALSE then
MA -> if rst.eof<>TRUE then
     Me![RagSociale] =rst!RagSoc
        Me![Data]=rst!Data
    ...
    endif
    rst.close
Mille scuse
By Arianna

Inanzitutto ti ringrazio per il suggerimento (funziona benissimo)
Volevo solo chiederti ancora un piccolo chiarimento
Ho un campo della tabella il cui nome è composto da due parole separate da
uno spazio
[SETT CONS]
ho provato ad inserire il tuo codice
Me![SETT CONS] = rst!SETT CONS   ma mi restituisce un errore, ho provato
anche
Me![SETT_CONS] = rst!SETT_CONS  ma anche cosi mi restituisce un errore...
Come posso fare??
Grazie
Ciao

Ciao GIORGIO,
prova semplicemente con :
    me![SETT CONS]= rst![SETT CONS]
a me ha funzionato...
altrimenti se ci sono dei valori nulli (che non credo ti diano problemi) fai
cosě:
    me![SETT CONS]=nz(rst![SETT CONS],"")
o se non funziona anche cosě prova questo metodo
    me![SETT CONS]=rst("SETT CONS")
Ciao
By Arianna

Sto, senza accento....
Antonio