Veramente dell'ADODC se ne può, e se ne dovrebbe fare a meno: è un OCX inutile, con bug, e mai più aggiornato da Microsoft.
Dato che è puramente un banale 'wrapper' (fatto male) per ADODB, è raccomandato l'uso diretto di ADODB che rende l'applicazione più veloce, senza bug e più semplice da gestire.
Riguardo alle dichiarazioni di ADODB, l'uso di questa sintassi:
codice:
Dim rsAdo As New ADODB.Recordset
non va bene, perchè provoca un'istanziazione implicita che, per vari motivi (errori, uscite premature dalle routine, ecc.) potrebbe restare 'appesa', in secondo luogo perchè alcune proprietà dell'oggetto vengono instanziate in modo errato (ma questo dipende anche dalla versione di ADODB utilizzata).
Purtroppo questa sintassi è diffusissima nel web (e pure su qualche libro) ed è un retaggio della sintassi del fratello minore DAO (che 'forse' non soffriva di questi problemi).
Fatto sta che la sintassi corretta per dichiarare le variabili oggetto di qualsiasi membro di ADODB ha questa forma:
codice:
Dim VarObj As Tipo
Set VarObj = New Tipo
esempio:
codice:
Dim CN As ADODB.Connection
Dim rs As ADODB.Recordset
Dim cmd As ADODB.Command
poi si crea l'istanza solo quando serve:
codice:
Set CN = New ADODB.Connection
Set rs = New ADODB.Recordset
Set cmd = New ADODB.Command