Questa non è una domanda su quale sia meglio, ma piuttosto una domanda sul perché differiscono dal punto di vista funzionale. Il problema che stavo incontrando è stato gestito, ma sono curioso di sapere perché questo comportamento sta accadendo.Differenza tra ADO e DAO
Sfondo: utilizzo di Excel vba per estrarre i dati da un database di Access. Quando l'utente fa clic su un pulsante, viene richiamato un recordset da Access e compila vari dati nel foglio di calcolo. Quindi, un altro recordset viene estratto da una query diversa per popolare un'altra parte del foglio di calcolo.
Cosa ADO - ADO funziona alla grande per il mio primo set di record. Tuttavia, il mio secondo set di record va alla query in Access, viene eseguito e non restituisce alcuna riga. Se eseguo questa query in Access, si apre (dopo circa 3 o 4 secondi). Questa query ha più join, elementi calcolati, limiti e possibilmente query dell'Unione (l'ho provato in molti modi diversi, con/senza unione, ecc.). Ho provato a chiudere e riaprire la connessione ado. Ho provato a cambiare i valori di timeout e ho persino provato a utilizzare un comando ADO per eseguire le query di tabella Crea per questi dati e quindi estrarre dalla tabella (ciò ha funzionato a proposito, ma non è il caso migliore, poiché i dati cambiano continuamente e non voglio dover eseguire la query table make ogni volta che qualcuno usa questo strumento).
Così, ho cambiato il secondo tiro dati DAO, ed ecco, funziona. Il primo pull di dati è ancora ADO (che generalmente preferisco usare), ma ora sto considerando di cambiarlo in DAO, perché preferirei avere un metodo di accesso ai dati nel codice.
Quindi qualcuno può spiegarmi perché ADO non estrarrà i dati in un caso, ma DAO lo farà? Ancora una volta, questo è puramente a scopo informativo.
È difficile commentare senza visualizzare il codice, ma potrebbe essere un tipo di tipo cusrsor/tipo recordset. Stai facendo affidamento sulle impostazioni predefinite del tuo codice?Se si lavora solo con Access, DAO è una scelta migliore in quanto è nativo per Access e offre un maggiore controllo rispetto a ADO – SWa
Dove si utilizzano i caratteri jolly? Questo è un problema comune, per ADO il carattere jolly è%, mentre DAO è (di solito) *. – Fionnuala
@Remou, ho familiarità con la differenza di caratteri jolly tra i due, ma sfortunatamente non li uso nelle query. – APrough