Hola: Que te comentaba que lo de comenzar dos exposiciones iguales en diferentes sitios, lo unico que puede hacer es que nos lie un poco a los que leemos las News. Era solo eso. Sin más. Además saltar de un lenguaje a otro implica cambios en la estructura de los programas, adaptarse etc. Con lo cual en 'ese salto' del que hablas es normal que tengas estas dudas, como las tenemos todos. 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.