Con
Set rstOre = Nothing
imposti l'oggetto rstOre a "niente", per cui l'errore 91 è corretto, perché assegni qualcosa al "nulla".
Inoltre, con *.fields.append crei una nuova definizione di un tabledef, anziché aprirne un recordset esistente.
In Access (da tradurre poi in ADO) la formulina per creare un nuovo tabledef è:
<pre id=code><font face=courier size= id=code>
dim db as DAO.Database
dim td as DAO.TableDef
dim fd as DAO.Field
set db = OpenDatabase(...)
set td = new tabledef
td.name = "NomeTabella"
set fd = new field
fd.name = "NomeCampo"
fd.type = dbString
fd.size = 255
td.fields.append fd
db.tabledefs.append td
</font id=code></pre id=code>
oppure:
<pre id=code><font face=courier size= id=code>
db.Execute "CREATE TABLE NomeTabella(NomeCampo TEXT)", dbFailOnError
...
db.tabledefs.refresh
</font id=code></pre id=code>
ADO ha una sintassi diversa, che non mi ricordo mai a memoria, ma essenzialmente è uguale.
Personalmente cerco di fare tutto tramite query, perché il codice è più chiaro per chi lavora con programmi strutturati, non ad oggetti, e tutto sommato molte volte è anche più breve.
Per aprire un recordset esistente:
<pre id=code><font face=courier size= id=code>
dim db as DAO.Database
dim rs as DAO.Recordset
set db = OpenDatabase(...)
set rs = db.OpenRecordset("SELECT * FROM NomeTabella", dbOpenDynaset)
</font id=code></pre id=code>
Giovanni
---
http://www.y2ksw.com/vbulletin