Ayuda! Buscar registros de 2 tablas

Tengo que hacer un programa que cuando introduzca datos en un formulario de los campos que yo quiera y los otros queden en blanco, me busque todos los registros que cumplan esos campos, de 2 tablas y esos registros aparezcan en formularios

1 respuesta

Respuesta
1
A ver si entendí bien:
Tenés un formulario con algunos campos con datos (ej: ID_Cliente)
Tenés otros campos vacíos (ej: Texto1, Texto2)
Querés traer datos a esos campos vacíos de otras tablas (ej: tArticulos, tPaisClie)
Entonces en las Propiedades del último campo con datos, pestaña Evento, buscá Al perder el enfoque, ¿dejá Procedimiento?, clic en el botón de puntitos, y ya en el Editor escribirás lo siguiente:
Variable = DLookup("[campo buscado]", "nbre de la tabla", "[campo coincidente de esa tabla]=forms!NbreFormulario![campo coincidente del formulario]")
Los campos coincidentes podrán estar o no relacionados.
Ejemplo:
Private Sub ID_Cliente_LostFocus()
Dim artic As String
Dim pais As String
artic = DLookup("[articulo]", "tArticulos", "[if_art]=forms!Formulario3![ID_Cliente]")
Me.Texto1.Value = artic
pais = DLookup("[nbrepais]", "tPaisClie", "[id_paises]=forms!Formulario3![ID_Cliente]")
Me.Texto2.Value = pais
End Sub
Y así con todos los campos que busques.
Hola Elsa, a ver yo tengo un formulario con textos independientes en el cual quiero introducir campos para hacer una búsqueda de registros de otro formulario, algunos campos los rellenaré y otros los dejaré en blanco para hacer la búsqueda. Por ejemplo, tengo un formulario con nombre, apellidos, dirección, localidad... y solo relleno nombre y dirección, los demás campos los dejaré en blanco, y quiero que cuando le de a aceptar me salgan todos los formularios con registros con ese nombre y dirección. Muchas gracias
Disculpa la demora, pero nos agarró el fin de semana.
En tu formulario principal, debes agregar un botón de comando.
El asistente te guiará y las opciones son:
¿Operaciones con formularios? Abrir formulario
Seleccioná un formulario de los que tengas diseñados para mostrar los registros que cumplan con esos 2 campos que ingresaste
Datos que va a mostrar: optá por la primera (Abrir el form y buscar datos específicos)
Campos en común: puede ser uno par o los 2. Seleccioná primero un par (1 de cada col) y presioná el botón <> para que te aparezca la relación. Luego marcás el segundo par de coincidencia.
Aceptá.
Ahora, en las propiedades de ese botón, Eventos, al hacer clic, botón de puntitos y vas al Editor. Ahí verás la rutina para el primer formulario. Solo agregá tantas instrucciones como formularios quieras, copiando la instrucción que ya está y adaptándola para otros forms.
Para que te muestre todos los registros que encuentre para un mismo form, pasalo a Formulario Contimuo.
Aquí va un ejemplo:
Private Sub Comando11_Click()
On Error GoTo Err_Comando11_Click
Dim stDocName As String, stDocName2 As String ?todas las variables necesarias
Dim stLinkCriteria As String, stLinkCriteria2 As String
stDocName = "Formulario2"
stDocName2 = "Formulario3"
?agregar más formularios
stLinkCriteria = "[id-cod]=" & Me![Texto0]
stLinkCriteria2 = "[codigo]=" & Me![Texto0]
?agregar los criterios para el resto de los formularios
DoCmd.OpenForm stDocName, , , stLinkCriteria
DoCmd.OpenForm stDocName2, , , stLinkCriteria2
?abrir más formularios, con sus criterios.
Exit_Comando11_Click:
Exit Sub
Err_Comando11_Click:
MsgBox Err.Description
Resume Exit_Comando11_Click
End Sub
En el ejemplo solo busca un campo como coincidencia con el cuadro Texto0.
Para el caso de que deban coincidir 2 (Texto0 y Texto2) te quedará así:
stLinkCriteria = "[detalle]=" & "'" & Me![Texto2] & "'"
stLinkCriteria2 = "[textos]=" & "'" & Me![Texto2] & "'"
Espero que ahora sí logres tu objetivo, sino me volvés a contactar.

Añade tu respuesta

Haz clic para o
El autor de la pregunta ya no la sigue por lo que es posible que no reciba tu respuesta.

Más respuestas relacionadas