Newsgroup: it.comp.appl.access
Titolo: Problemi con DAO.recordset

Ciao,
tempo fa con l'aiuto di qualcuno in questo ng (non mi ricordo piu' chi,
scusa), avevo scritto questa funzione per settare a 1 un campo in una
tabella secondo certi criteri:
Public Function FlagEta()
    Dim rs As DAO.Recordset
    Set rs = CurrentDb.OpenRecordset("Select
data_nascita,data_ammissione,anzianita From membro Where anzianita=0")
    If (Not (rs.EOF And rs.BOF)) Then
        With rs
         .MoveFirst
         Do Until .EOF
               If Eta(!data_nascita) >= 65 Or
anz(CInt(!data_ammissione)) >= 20 Then
                  .Edit
                  !anzianita = 1
                  .Update
               End If
               .MoveNext
         Loop
        End With
    End If
End Function
Eta() e anz() servono a calcolare l'eta  e il tempo che un socio e' nel
club (queste funzionano perche' le ho prese dal sitocomune.
Questa funzione (flageta()) la faccio eseguire ad ogni apertura del
database tramite la macro AutoExec.
Per un certo periodo questa cosa ha funzionato.
Poi devo aver cambiato qualcosa (a sapere cosa pero'...) e ora mi da'
errore:
Errore di Compilazione:
Tipo definito dall'utente non definito
E si colora di giallo la riga di codice:
Dim rs As DAO.Recordset
Sicuramente e' una c...ata, ma in quanto niubbo di access+vb non so dove
sbattere la testa.
Grazie Ciao Jack
-- 
Yoda of Borg am I! Assimilated shall you be! Futile resistance is, hmm?

 Yoda of Borg am I! Assimilated shall you be! Futile resistance is, hmm?
Eheheh!
Namor
-- 
namor at inwind punto it
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

[CUT]
Heilà hombre -> come tu stai? Non ci si sente da un pò...tutto bene?
L'udinese ;-) 

 selezionata la libreria Microsoft DAO.
OK, non era selezionata :P
ora mi da' un altro errore: Errore di runtime 94 Utilizzo non valido di
null qua:
If Eta(!data_nascita) >= 65 Or
anz(CInt(!data_ammissione)) >= 20 Then
devo capire perche'...
-- 


 L'udinese ;-)
Sono un pochino pochino impegnato in questo periodo, ma nonostante ciò
riesco ancora a ritagliarmi qualche minutino qua e là per mangiare e
dormire. Per il resto tutto ok grazie! Tu tutto bene?


 devo capire perche'...
Verifica aprendo direttamente la tabella se ci sono i campi data_nascita o
data_ammissione sono vuoti in qualche record.
O da VBA quando si blocca lascia il cursore su !data_nascita o su
!data_ammissione per vedere che valore hanno.
Probabilmente sono Null, nel qual caso puoi convertirli a zero con Nz():
  If Eta(nz(!data_nascita,0)) >= 65 Or _
  anz(CInt(nz(!data_ammissione,0))) >= 20 Then



Praticamente continuando così c'è la possibilità che tu riesca ad aumentare 
di qualche ora la durata del giorno ;-)
Tutto bene: grazie ! :-)
A presto

 Namor
Ripensandoci non è una buona idea convertire le date in zero con Nz(), le
due funzioni potrebbero calcolarti età ed anzianità di 106 anni.
E' meglio gestire quei casi in altro modo, per esempio aggiungendo le
condizioni if isnull(!data_nascita), oppure impostando a True la proprietà
Required dei campi della tabella in modo che non possano essere lasciati
vuoti.


 [CUT]


Ottima idea. Bisognerebbe avviare uno studio di fattibilità.
 
http://it.wikipedia.org/wiki/Wormhole


 Namor
OK, ora funziona!
Ho usato isnull(). E' piu' comodo per chi inserisce i dati, cosi il db
non rompe se non si sa' la data di nascita di un socio.
Grazie ancora !!!!
Ciao Jack



Sì ne ho sentito parlare...c'è un form da riempire x la richiesta all'url -> 
www.tuoDio.org
 ;-)