Newsgroup: it.comp.appl.access
Titolo: Ancora sul recordset

Ciao a tutti.
Comincio con lo scusarmi se sembro riproporre domande già postate ma non
sono in grado, da solo, di darmi una spiegazione di quanto andrò a spiegare
e, malauguratamente, anche il sitocomune non mi è stato di aiuto.
Ho scritto 4 innocue righe di codice:
(in realtà le righe che avevo scritto erano diverse, ma di fronte all'errore
ho minimizzato, fino a quel che ho riportato sotto, il codice scritto per
capire cosa succedeva e perché non funzionava)
Private Sub Testo_AfterUpdate()
Dim datab As Database
Dim recset As Recordset
Set datab = OpenDatabase(CurrentDb.Name)
Set recset = datab.OpenRecordset("SELECT DataCodiceFiscale.* FROM
DataCodiceFiscale;")
End Sub
Non noto errori di concetto!
L'errore è:
    Errore di run-time '13':
    Tipo non corrispondente.
Il debug mi seleziona la riga:
    Set recset = datab.OpenRecordset("SELECT DataCodiceFiscale.* FROM
DataCodiceFiscale;")
Sapete dirmi cosa Caspita c'è che non va!!!
Grazie a tutti, Mike.

 ha scritto nel messaggio
news:dOb%8.20419$GV2.5...@twister2.libero.it...

La sintassi è
set recset = currentdb.openrecordset("SELECT...")
oppure, più lungo
set datab = currentdb
set recset = datab.openrecordset("SELECT...")
Antonio

 ...
Error 13 Type Mismatch Error on DAO OpenRecordset Method
http://support.microsoft.com/search/preview.aspx?scid=kb;en-us;Q181542
--
HTH
Karl
*********
Access-FAQ (tedesco): 
http://www.donkarl.com

 ha scritto nel messaggio
news:EWb%8.20468$GV2.5...@twister2.libero.it...

Avevo già provato la strada che mi hai proposto; IDEM.
Avete qualche altra idea sul perche non funzioni?
(deve esserci qualcosa di banale che mi sfugge)
Grazie della disponibilità, Mike.


Azzardo, quel punto dopo il controllo?
MAssimiliano

 ha scritto nel messaggio
news:ahjhvq$tkq8o$1...@ID-46617.news.dfncis.de...

Grazie, ottimo e puntuale suggerimento.
Effettivamente ho i due riferimenti indicati nell'articolo.
Grazie ancora, Mike

 ha scritto nel messaggio news:dOb%8.20419$GV2.5...@twister2.libero.it...

Se nel tuo progetto ci sono riferimenti alla libreria ADO e DAO contemporaneamente potrebbe essere un problema di "precedenza"
Se durante la dichiarazione degli oggetti non specifichi di che libreria fanno parte potrebbe succedere che, a seconda della
precedenza stabilita nella finestra dei riferimenti, venga creato un oggetto che non proviene dalla libreria che ti aspetti
prova a dichiarare così:
    Dim datab As DAO.Database
    Dim recset As DAO.Recordset
l'oggetto Database non esiste nella struttura ADO quindi anche se non fai una dichiarazione qualificata non ci sono problemi, mentre
sorgono per i Recordset (presente in entrambe le gerarchie).
Nel tuo caso sembrerebbe che la libreria ADO abbia la precedenza e quindi venga generato un oggetto Recordset appartenente alla
gerarchia ADO, così, nel momento in cui cerchi di inizializzarlo viene sollevato l'errore 13 poiche il metodo OpenRecordset
dell'oggetto DataBase restituisce un Recordset DAO.
Spero di non aver complicato la situazione.
Un'ultima cosa, per inizializzare l'oggeto DataBase è meglio usare più semplicemente la forma:
    Set datab=CurrentDb
Ciao,
Matteo

 ha scritto
nel messaggio news:ahjl85$o87$1...@atlantis.cu.mi.it...

Ti ringrazio per la disponibilità.
La soluzione è nella risposta di Karl al mio post iniziale.
(devo usare: dim pippo as ADO.recordset)
Ciao, Mike.

 (deve esserci qualcosa di banale che mi sfugge)
La libreria DAO è installata?
Antonio


Fantastico!
Non hai affatto complicato la situazione, anzi, mi hai insegnato qualcosa.
Ti ringrazio per la esauriente spiegazione e ringrazio tutti coloro che,
come te, mi hanno concesso il loro tempo.
Ciao, Mike.

 MAssimiliano
scusa, mia castroneria...
cia MAssimiliano


saluti
Marco Dell'Oca
D.M.Software