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
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.
- Anónimoahora mismo
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.