Hola!
Hazlo con un recordset como te dice
Asbraha, pero no declares las variables como Variant, decláralas con su tipo correspondiente para ganar en rendimiento y prevenir errores (usa Variant única y exclusivamente cuando no puedas declararlas con otro tipo):
Código:
Dim CON As New ADODB.Connection ' Así, además, te ahorras tener que llamar a CreateObject
Dim RS As ADODB.Recordset
El recordset tiene la propiedad
Fields, que es una colección de los campos que devuelve la consulta. En el ejemplo que ha puesto nuestro colega, RS.Fields(0) equivale a los datos del primer campo que devuelva la consulta. Si sabes los nombres de los campos, también puedes invocarlo con
RS.Fields("<nombre del campo>").
Puedes obtener información sobre el campo con las propiedades del objeto
Field, y las que más te pueden ayudar son (hay más, échales un ojo a ver qué encuentras interesante

):
-
Name(para el nombre del campo, o el alias, si especificas uno en la SELECT)
-
Value(para ver el valor del campo en la fila actual)
-
Type(para ver el tipo de datos con el que se ha declarado esa columna
Si lo que quieres es llamar a los campos más rápidamente,
RS!<nombrecampo> es lo mismo que
RS.Fields("<nombrecampo>") o
RS.Fields("<nombrecampo>").Value.Más aún, si vas a trabajar exclusivamente dentro de Access (no utilizas un programa en VB para acceder a los datos), puedes ahorrarte todas las declaraciones si usas estas dos líneas (en este caso se usa acceso por DAO, no ADO, como sugiere
Asbraha):
Código:
Dim RS As Recordset
Set RS = CurrentDb.OpenRecordset("<instrucción SELECT>")
Y ya puedes utilizar el recordset como te indicamos arriba.