Newsgroup: it.comp.appl.access
Titolo: maschera sottomaschera e recordsetclone?

sto realizzando un programma che calcola gli interessi per il mio ufficio
il form principale fa i conteggi
le sottomaschere riportano le tabelle dei vari tassi di interesse
Istat, legale, amministrativo (campi DA=data PER=percentuale)
vorrei creare un oggetto recordsetclone della (sottomaschera istat ad es.) e
cercare in ordine crescente di data il campo PERC dell'ultimo record in cui
campo DA è inferiore alla data di calcolo corrente (sarebbe l'indice
corrispoindente alla scadernza)
Non mi riesce di impostare correttamente rst.find

Mi sono spiegato malissimo - ripeto meglio
' in una sottomaschera SottIstat
' voglio trovare il valore massimo tra i minori di una certa data (es
01/01/1996)
' records ordinati per data descrescente - campi [da] e [perc]
  Dim rst As Recordset
  Dim datacorrente As Date
  datacorrente = "01/01/1996"
  Set rst = SottIstat.Form.Recordset ' errore tipo non corrisp
  rst.Find ("da >") & datacorrente
  percentualecorrente = [perc]
'oppure
  Dim rst As Recordset
  Dim datacorrente As Date
  datacorrente = "01/01/1996"
  For Each da In SottIstat 'proprietą o metodo non supp dall'oggetto
    If da > datacorrente Then
        percentualecorrente = [perc]
        Exit For
    End If
  Stop
  Next
non riesco a venirne fuori

per creare l'oggetto recordse di quello che vedi nella sottomaschera
dim rcmio as recordset
set rcmio =  me!nomesottomaschera.form.recordsetclone
il me! se il codice lo usi dalla maschera principale dove hai inserito la
sottomaschera
altrimenti forms!
e poi su rcmio
puoi applicare
rcmio.findfirst   ed altre proprietà
n.b. quando poi hai usato il tuo codice devi
scaricare la variabile oggetto recordset
e cioè
set rcmio= nothing
(io aggiungo prima anche rcmio.close ma non so se è qualcosa in più)
sulla guida c'è un esempio ma non c'è l'esempio del nothing
che sicuramente e quello che scarica n.b indicasione data da Biso
quindi legge!!!!

   Dim rcmio As Recordset
   Set rcmio = Me!SottIstat.Form.RecordsetClone
   [istatal] = Date
   dal = [istatdal]
   While dal < [istatal]
       corr = DateSerial(Year(dal), Month(dal) + 6, Day(dal))
       If corr <= [istatal] Then
          dal = corr
          esprcorr = "[da] < #" & dal & "#"
          rcmio.FindFirst (esprcorr)
          [istatint] = [istatint] + [istatint] * rcmio.fields???? / 200
       Stop
       Else
          [istatal] = dal
       End If
   Wend
   rcmio.Close
   Set rcmio = Nothing
mi manca solo la sintassi di Fields
Grazie 1000

 quindi legge!!!!
Mai ascoltare BISO....!
Se ti sente BISO che si fa spesso chiamare Bisio in arte ANTONIO....!
Ma non farci caso.....!
Ciao.
Alessandro.
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 Grazie 1000
Solo..???
Senza quella non va nulla.
In Fields ci va il nome del Campo relativo all'origine dati della FORM.
Se è es. DataInizio scriverai rcmio.Fields("DataInizio")
o se il campo DataInizio è nella Tabella il 2° scriverai anche
rcmio.Fields(1) ---->che è 2-1 perchè il numero parte da 0.


    Set rcmio = Nothing
non ho molta praticità con il wile wend però
 rcmio.Close
  Set rcmio = Nothing
devi inserirli anche nel caso in cui esci dalla sub prima del wend
ad esmpio sull'else o prima di stop
cioè quando chiudi la variabile rcmio assicurati che lì il codice
ci passa evitando che a causa degli if ed else o altro poi
in realtaà non sempre il codice scorre nel punto
dove tu hai messo il nothing
è un accorgimento che spesso può sfuggire