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.
               (
geocities.com/es/ensolva/Descargas)                   (
geocities.com/es/ensolva)                   (
geocities.com/es)