Tengo el siguiente problema,en una funcion access ejecuto 
la  sentencia siguiente:
DoCmd.RunSQL "SELECT CNTLCOMP.CODIGO,CNTLCOMP.FECHA_ACC FROM CNTLCOMP WHERE (((CNTLCOMP.CODIGO) =1));", -1

Mi problema es que quiero seguir trabajando utilizando el valor de el campo  CNTLCOMP.FECHA_ACC que me ha devuelto 
la ejecucion del SQL, y no me lo premite, me dice varible erronea.

Respuesta
=========

La instruccion "RunSQL", solo ejecuta una orden SQL.- No puedes recoger
ningun valor, ni trabajar con valores devueltos en la consulta.-
Para poder trabajar con valores devueltos en consultas, necesitas tener la
consulta "metida" en un RecordSet.- Prueba con esto:

Dim MyBD as database
Dim MyRS as RecordSet
Dim MyFecha as date


Set MyBd = CurrentDb

'Ahora definimos el RecordSet.
 Set MyRS = MyBd.OpenRecordset("SELECT CNTLCOMP.CODIGO,CNTLCOMP.FECHA_ACC
FROM CNTLCOMP WHERE (((CNTLCOMP.CODIGO)=1)")

MyFecha=MyRS("CNTLCOMP.FECHA_ACC")

(...)
Aqui ya puedes trabajar con el campo CNTLCOMP.FECHA_ACC o bien con la
variable MyFecha... como gustes.-

Un saludo.-
Gomzky


AMPLIACION DE LA RESPUESTA DEL bhuo
===================================

He preparado el siguiente ejemplo para mostrarte alguno de los metodos
que existen para localizar un registro dentro de una tabla.
Sin duda, la respuesta de Chea es la mejor para el proposito que pretendes.
No obstante expongo otras dos más, pues depende de la situacion y el
entorno donde desees buscar.

En concreto, en este ejemplo, estoy actuando sobre una tabla de Clientes
llamada CLIENTES que tiene dos campos
[NombreCliente] que es String
[Id] que es Autonumerico

Te lo meto en un fichero de texto y no directamente en la respuesta
pues siempre se cortan lineas etc y a veces se hace dificil ver el codigo
de una forma completa.

Primer caso:
Si deseamos saber el nombre de un cliente cuyo ID sea, por ejemplo 1

Private Sub Comando6_Click()
On Error GoTo Err_Comando6_Click
  'Utilizando la funcion expuesta por Chea

Dim MiVariable As String
If IsNull(DLookup("[NombreCliente]", "Clientes", "[ID]=1")) = False Then
 MiVariable = DLookup("[NombreCliente]", "Clientes", "[ID]=1")
 Msgbox MiVariable
Else
 Msgbox "Registro no encontrado segun su criterio"
End If
Exit_Comando6_Click:
    Exit Sub

Err_Comando6_Click:
    Msgbox Err.Description
    Resume Exit_Comando6_Click
    
End Sub

'Este ejemplo anterior, al ser independiente del Formulario o modulo Bas
'en que realizas la llamada, lo puedes poner donde quieras y llamar a la
'tabla que quieras.





'Otro ejemplo, identico al anterior, pero utilizando Recordset.
'Le puedes utilizar en cualquier parte del codigo.

Private Sub Comando8_Click()
On Error GoTo Err_Comando8_Click

Dim Rst As DAO.Recordset
Set Rst = CurrentDb.OpenRecordset("Select Nombrecliente FROM CLientes Where ID=3")
If Rst.NoMatch Then
 Msgbox "No hay Registros según criterio"
Else
 Msgbox "El nombre del cliente es: " & Rst("NombreCliente")
End If
Rst.Close
Set Rst = Nothing

Exit_Comando8_Click:
    Exit Sub

Err_Comando8_Click:
    Msgbox Err.Description
    Resume Exit_Comando8_Click
    
End Sub





'Este ejmplo sería ya un caso particular del anterior, cuando inmersos
'en una formulario concreto, deseamos localizar un registro de dicho
'formulario que cumpla unas especificaciones concretas.
'Por eso utilizo el RecordsetClone del propio Frm
'De ahí que en mi anterior exposicion te dijera que era fundamental
'saber desde que sitio y cual, deseabamos buscar
Private Sub Comando7_Click()
On Error GoTo Err_Comando7_Click

Dim MiRst As DAO.Recordset, QuedeseoBuscar As String
Set MiRst = Me.RecordsetClone
QuedeseoBuscar = "ID =2"
With MiRst
 .FindFirst QuedeseoBuscar
 If .NoMatch Then
  Msgbox "No se encontraron registros"
 Else
  Msgbox "El nombre del cliente es: " & MiRst("Nombrecliente")
 End If
End With
MiRst.Close
Set MiRst = Nothing

Exit_Comando7_Click:
    Exit Sub

Err_Comando7_Click:
    Msgbox Err.Description
    Resume Exit_Comando7_Click
    
End Sub

Los Sub les puedes poner tambien como funciones que devuelvan un String
Function DameNombre() As String
etc etc

Salvo error u omosión, creo que cualquiera de los tres metodos están bien
estructurados y pueden servirte para tus propositos. Habría que revisar un
poco los procedimientos para poderles optimizar un poco más.
Pero de forma resumida, pueden ilustrar bien lo que pretendes hacer.

    Source: geocities.com/es/ensolva/Descargas/Documentos

               ( geocities.com/es/ensolva/Descargas)                   ( geocities.com/es/ensolva)                   ( geocities.com/es)