Una forma para hacerlo serís esta:
Añades un cuadro combinado a tu formulario, lo llamas cboCampo (Pestaña Otras->Nombre), le pones en origen de datos Lista de valores, y en Origen de la fila, le pones: "Ingredientes";"Recetas"
Añades un cuadro de texto y lo llamas txtBusca.
Añades un Botón que llamarás cmdBuscar, y con Etiqueta "Buscar", y le generas este código:
Private Sub cmdBuscar_Click()'Definimos las variablesDim vCamp As String, vText As StringDim miFiltro As String'Cogemos los valores seleccionadosvCamp = Nz(Me.cboCampo.Value, "")vText = Nz(Me.txtBusca.Value, "")'Si no hay valor en el combo o en el textbox sale del procesoIf vCamp = "" Or vText = "" Then Exit SubmiFiltro = "[" & vCamp & "] LIKE '* " & vText & " *' OR"miFiltro = miFiltro & "[" & vCamp & "] LIKE '" & vText & "*' OR "miFiltro = miFiltro & "[" & vCamp & "] LIKE '* " & vText & "*' OR "miFiltro = miFiltro & "[" & vCamp & "] LIKE '" & vText & "*' OR "miFiltro = miFiltro & "[" & vCamp & "] LIKE '* " & vText & "' OR "miFiltro = miFiltro & "[" & vCamp & "]= '" & vText & "'"End If'Aplicamos el filtro al formularioMe.Filter = miFiltro'Activamos el filtroMe.FilterOn = TrueEnd Sub
Y para acabar, añades un Botón que llamarás cmdLimpiar, y con Etiqueta "Quitar Filtro" (o la que quieras), y le generas este código:
Private Sub cmdLimpiar_Click()
With Me.cboCampo.Value = Null.txtBusca.Value = Null.FilterOn = FalseEnd With
End Sub
Un par de comentarios a este código:
1º/ Tal y como está, te servirá si el formulario lo basas en una consulta que te recoja los datos de las dos tablas (que sería lo normal para poder buscar por los dos campos). Si no fuera este el caso, tendrás que modificar la parte del filtro del código para que te busque el campo en la tabla correspondiente)
2º/ Para que quede más "bonito", coloca el cuadro combinado, el cuadro de texto y los dos botones en el encabezado o pie del formulario, pon todos los controles del Detalle del formulario ocultos (Propiedades, Pestaña Formato, Visible: No), y añades en el código de cmdBuscar, después de "Me.FilterOn = True" , tantas lineas como esta necesites, cambiando lo que está en negrita por los nombres que tengan tus controles): Me.NombreControl.Visible=True, y en el código de cmdLimpiar, después de .FilterOn=False, añades tantas veces como necesites: .NombreControl.Visible=False