Newsgroup: it.comp.appl.access
Titolo: [DAO] Problema stupido....

Il problema è sicuramente idiota, ma on riesco a capire cosa sbaglio. Ho
l'istruzione:
Set DefTab = CurrentDb.TableDefs(NomeTab2Analyze)
che fallisce!!! Ora se col Debugger "osservo" CurrentDb.TableDefs tutto OK,
ma CurrentDb.TableDefs(NomeTab2Analyze) pare non esistere, come se non fosse
un elemento dell'insieme TableDefs. Ovviamente la tabella il cui nome è
contenuto dalla variabile NomeTab2Analyze al momento dell'esecuzione del
codice esiste, tantopiù che se faccio:
For Each DefTab In CurrentDb.TableDefs
     If DefTab.Name = NomeTab2Analyze Then .......
Next DefTab
funziona perfettamente!
Sinceramente non riesco davvero a capire cosa caspita non funzioni!
La seconda soluzione può andare bene lo stesso, la routine che la contiene
non ha specifiche di velocità ed efficienza particolarmente spinte, ma
concettualmente mi rompe un po' le balle...
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 
-- 
ac
y-1=x

> L'errore cose' il 3265?
No.... A dire il vero ho scritto male. La SET non fallisce di per se:
assegna qualcosa alla variabile, la quale dopo punta a qualcosa di non
valido. Se guardo le proprietą di DefTab col Debugger, ogniuna riporta
"Object invalid or no longer set.". Idem se osservo
CurrentDb.TableDefs(NomeTab2Analyze).
L'errore si genera appena cerco di usare DefTab, ed č il 3420: "Object
invalid or no longer set.".


 Inviato via 
http://arianna.libero.it/usenet/
Potrebbe forse esserci un errore di dichiarazione del campo che tenti di 
valorizzare con l'oggetto tabella. In fondo hai riportato solo l'istruzione 
set e non la dichiarazione di DefTab: sei sicuro di averla dichiarata 
correttamente ?
Fossi in te cercherei di rendere tutte le istruzioni il più elementare 
possibile: quindi
dim dbs as database
set dbs = currentdb
...
dim tbfs as tabledefs
set tbfs = dbs.tabledefs
...
msgbox "La tabella è " & NomeTab2Analyze
dim DefTab as tabledef
set DefTab = tdfs(NomeTab2Analyze)
in questo modo puoi seguire meglio la sequenza delle istruzioni e 
determinare in quale punto potresti aver commesso un errore.
Facci sapere !!!
Ciao
Antonio

 determinare in quale punto potresti aver commesso un errore.
Inserendo il tuo codice tutto va (la dichiarazione "dim DefTab as tabledef"
alla penultima riga l'ho tagliata, usando la mia, a conferma che è
corretta.). Se però, sostituisco
set DefTab = tdfs(NomeTab2Analyze)
con
Set DefTab = CurrentDb.TableDefs(NomeTab2Analyze)
sono punto e a capo!!!!! Sinceramente non è che mi possa definire un
programmatore di prim'ordine, ma faccio davvero fatrica a capire perchè la
tua riga di codice funziona e la mia no!!!!
Intanto grazie!


 Inviato via 
http://arianna.libero.it/usenet/
Io sono solito utilizzare la forma piů elementare (quella che ti ho 
suggerito) e quindi non ho dimestichezza con l'istruzione complessa. Ora non 
mi č possibile fare una prova, ma non č percaso che quell'istruzione 
dovresti scriverla cosě:
Set DefTab = CurrentDb(0).TableDefs(NomeTab2Analyze) ?
Ciao
Antonio

 Set DefTab = CurrentDb(0).TableDefs(NomeTab2Analyze) ?
Mah, di solito CurrentDb ha sempre funzionato come riferimento ad DB
corrente. Appena ho occasione provo....
Grazie!
