Newsgroup: it.comp.appl.access
Titolo: DAO 2.5/3.5 e Dao 3.6

Ho un database che aveva tra i componenti Microsoft DAO 2.5/3.5
Compatibility Library.
Per necessità ho riferito al database, invece che la versione sopra citata,
"Microsoft DAO 3.6 object library".
Succede che la modifica che ho apportato mi consente di ottenere la
proprietà Size dell'oggetto Fields di un tabella, ma purtroppo non funziona
la maggior parte dei programmi, e mi viene emessa la seguente segnalazione:
Errore di compilazione
Impossibile trovare il metodo o il membro dei dati.
di seguito riporto la porzione di codice che provoca l'errore e in
particolare l'errore si verifica per l'istruzione
nu.Edit
Dim nu As Recordset
Dim db  As DATABASE
Set db = CodeDb
Set nu = db.OpenRecordset("Select * From UniTipolOrdine Where Tipologia='" +
Me.tipo + "'")
nu.MoveFirst
nu.Edit
    NROF = nu!UltimoNrOrdine + 1
    nu!UltimoNrOrdine = NROF
nu.Update
Dove posso trovare, ammesso che esista il DAO 2.5/3.6 compatibility Library?
Grazie
Ciao
Eugenio

"Eugenio" <Ci...@Eugenio.it> ha scritto nel messaggio
news:c8l8hb$ar7$1...@lacerta.tiscalinet.it...

Quale versione di access usi? Se è 2000> hai anche ADO fra i riferimenti, e
allora devi fare in modo che il riferimento a DAO venga prima o, ancora
meglio, puoi esplicitarlo nelle dichiarazioni:
Dim nu as DAO.Recordset
Dim db as DAO.Database
ecc.
Puoi inoltre fare a meno del MoveFirst quando questo viene subito dopo
l'istruzione Set.
Ciao
Galliano


Pare che il vecchio programma, forse a causa della sintassi, non gradisca
DAO360.dll. Purtroppo non si tratta di un programma, ma da un insieme di
programmi sviluppati in Access 2.
Se non c'è soluzione, dovrò rinunciare alla proprietà Size che è possibile
avere solo con Dao360.dll.
Grazie
Ciao
Eugenio

 Eugenio
Eppure il codice che hai postato dovrebbe funzionare anche DAO 3.60; A questo punto,
potresti provare ad abilitare e disabilitare da codice i riferimenti alle varie
librerie quando ti servono (e quando sei sicuro che funzionano) con i metodi
AddFromFile e Remove dell'insieme References: purtroppo non posso esserti più utile
di così perchè non ho mai provato :)
Ciao
Galliano.

 ha scritto nel messaggio
news:bSsrc.13468$Wc.4...@twister2.libero.it...

Spesso avviene per applicativi con Dll di riferimento non perfettamente
compatibili e non solo DAO.
Io ti consiglio di Generare un Nuovo DB VUOTO ed importare tutto.
Compila e deve funzionare.
Ciao.
@Alex.


Ho fatto come mi hai detto, ma non è cambiato nulla. Ho gli stessi problemi.
Credo che il problema sia proprio l'incompabilitità tra metodi e proprietà
di "DAO 2.5/3.5 compatibility library" con quelli di "DAO3.6 object
library".
Dovrei correggere circa 160 fra maschere e moduli con il rischio di
provocare altri problemi.
Penso che mi convenga rinunciare alla proprietà Size dell'oggetto Field di
DAO3.6.
Un grazie a Microsoft. Ha un amore incontenibile per chi usa i suoi
prodotti. Li aiuta proprio!  :-))))
Magari gli altri sono pure peggio. Mah!
Grazie Alex
Ciao
Eugenio

 ha scritto nel messaggio
news:bSsrc.13468$Wc.4...@twister2.libero.it...

Mi spiego meglio, perchè sicuramente non sono stato chiaro e ho fatto altre
scoperte nel frattempo.
La parte di codice che ti ho inviato funziona, ma ora evidenzia altri errori
dello stesso tipo durante l'esecuzione di istruzioni come la seguente
If isnull(Me!Un) Then Me!Un = RE.UMC
dove UMC è un campo del recordset, non una proprietà, ma la sintassi era
tollerata con precedenti versioni di DAO.
Grazie Galliano
Ciao
Eugenio

 Eugenio
prova ad inidividuare il campo del recordset con il punto esclamativo,
dovrebbe andare:
If isnull(Me!Un) Then Me!Un = RE!UMC
Ciao
Galliano


Si, questo lo so.
Il problema č che il database č pieno di istruzioni del genere e di
conseguenza dovrei rivedere tutte le maschere e moduli (circa 150), con il
rischio di provocare nuovi problemi. Meglio lasciare questa "porcheria" che
si chiama DAFOWIN com'č.
Grazie
Ciao
Eugenio