Búsqueda de registro en formulario

¿Podrías ayudarme?
Tengo un formulario para una Tabla POR, donde solicito un valor (campo clave) el cual debo buscarlo en otra tabla (Tabla Y) y verificar que el registro existe antes de continuar con el resto de la captura, para ello deberá desplegar algún dato adicional, tomado de la Tabal Y, y colocarlo en el formulario de la Tabla X.
No logro hacer que busque y encuentre el registro, aún cuando estoy segura de que está ahí.
Muchas gracias por tu ayuda

1 Respuesta

Respuesta
1
Lo que puedes hacer es usando código en visual basic para aplicaciones, hacer una consulta de la tabla Y, que devuelva el registro especificado desde X.
Si necesitas algo más especifico vuelve a preguntar y te pongo el código. También ayudaría si me dices que controles tienes en el formulario.
No sé VB, pero creo poder entender el código. Si pudieras ayudarme, te envío más datos sobre la BD.
La tabla base se llama OBRAS, que guarda datos generales de obras en desarrollo como nombre, ubicación, coordenadas, Nº de expediente, etc. (Su clave es Numero de obra - Texto).
La otra tabla se llama GESTIÓN y está relacionada por el campo Nº de expediente (Es la clave de. En esa tabla se registran diversos tramites que para cada obra deben realizarse.
El formulario solicita el Número de expediente en un cuadro de texto (del campo Nº de Expediente) y quiero que extraiga del Número de expediente, el número de obra (una subcadena) y con él busque en la Tabla OBRAS y proporcione otros datos, como su nombre y fecha de inicio.
Agradezco mucho tu ayuda.
Agradezco mucho la respuesta. Tendré que estudiarla y probarla.
Ya había logrado una solución, utilizando Dlookup, para encontrar el registro.
De todas formas, agradezco la gentileza de compartir una solución alterna.
Bien, lo primero seria poner en el evento change del campo NEXPEDIENTE del formulario de la tabla GESTIÓN.
Pones esto:
Dim cnn As Connection
Dim rsM As ADODB.Recordset
Dim SENTENCIA As String
Private Sub NEXPEDIENTE_Change()
SENTENCIA = "SELECT * FROM OBRAS WHERE NEXPEDIENTE_OBRAS = '" & NEXPEDIENTE & "'"
Set cnn = CurrentProject.Connection
cnn.CursorLocation = adUseClient
Set rsM = New ADODB.Recordset
RsM.Open SENTENCIA, cnn, adOpenKeyset, adLockOptimistic
IF rsm. Recorcount > 0 then 'Esto quiere decir que encontro una obra
NOMBRE_OBRA_GESTION = rsm!NOMBRE_OBRA_OBRAS
else
msgbox "No se ha encontrado ninguna obra con este codigo."
end if
End Sub
Y luego cambia el nombre de los campos por el de tu base de datos.
Un saludo. Y buena suerte.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas