Como hacer una tabla o consulta dinámica en access 2010

Quiero hacer una tabla o consulta no se exactamente que es mejor, pero no se como hacerla. Tengo una tabla que se llama hoteles, donde hay diferentes campos con las características de los hoteles. Y me piden que haga una consulta o tabla donde una vez puesto los registros cuando un usuario vaya a preguntar a uno de mis trabajadores que quiere un hotel con algunas características, le salga los hoteles con esas características. ¿Cómo lo puedo hacer?

1 respuesta

Respuesta
2

Yo haría un formulario y le aplicaría un filtro múltiple, para que puedas escoger las características que te pidan. Y lo haría como explica Neckkito en este ejemplo: http://siliconproject.com.ar/neckkito/index.php/component/content/article/93-ejemplos-explicados/ejemplos-de-formularios/194-crear-un-filtro-multiple 

Saludos!


No lo entiendo muy bien. La tabla donde se muestran los registros filtrados. Como la pongo en el formulario?

Saludos

Haces el formulario sobre la tabla sin filtrar, y por medio de los cuadros combinados vas aplicando los filtros que quieras, tal como está explicado en el ejemplo

Vale lo estaba haciendo y mira más o menos he echo esto:

Y lo que me gustaria es que se vieran los registros de la forma que me mandaste:

Saludos

Por lo que veo no estás siguiendo los pasos adecuadamente, o lo haces sobre una consulta que no devuelve valores...

Haz un formulario directamente sobre la tabla (o una consulta si te hacen falta datos de varias tablas, pero sin ponerle criterios)

En el encabezado, pie o donde más te guste, añade los cuadros combinados o casillas de verificación (independientes, eso sí)

Programa el botón para crear el filtro, siguiendo la linea del ejemplo de Neckkito o la "ampliación" de Kike.

Y ya está.

Ok pero la ultima imagen es de la base de datos de kike. Y he echo directamente de la tabla.

Ya sé que la 2ª imagen es la de la BD de Kike, y por que que veo de la 1ª, el formulario lo haces sobre una consulta, que no tabla, y no devuelve ningún registro. Además, no veo que hayas puesto en el formulario los campos de la tabla (o consulta).

Insisto, has de seguirlos pasos indicados en los mensajes anterioes y en el ejemplo

Me lo he leído todo lo he seguido al pie de la letra lo único que lo que quiero hacer es:

Tengo una tabla que es restauración, y desde el formulario quiero buscar/filtrar algunos restaurantes que el usuario quiera. Por ejemplo quiero restaurantes que sean mejicanos, que puedan ir grupos y que tengan comida para celiacos. Donde mejicanos es un campo combinado ya que es un tipo de restaurante, grupos y celiacos sean un checking. Cuando le haya dado al botón buscar/filtrar me salga debajo todos los restaurantes con esos filtros. Eso es lo que quiero hacer.

Francesc, no es que no te quiera ayudar, pero ya no sé como explicarte que los pasos son los que te comenté en todos los mensajes anteriores...

1º/ Crea un formulario, usando el asistente, sobre la tabla restauración. Cuando te diga el tipo de distribución, elije "Tabular"

2º/ Una vez que tengas el formulario creado, lo abres en vista diseño, y en el encabezado (o pie) del formulario, añades un cuadro combinado independiente, que coja el tipo de restaurantes que tienes, y los checkbox que quieras (grupos...) también independientes.

3º/ Añades un botón, y lo programas siguiendo el código del ejemplo.

No hay otra forma de hacerlo, y es, además, la que viene explicada en el pdf del ejemplo.

¡Gracias! 

¿Una pregunta para saber el nombre que lo tengo en otra tabla que puedo hacer para que salga en el formulario?

Añade el campo a la consulta y luego al formulario, si interpreto bien tu pregunta.

A lo mejor no lo he preguntado bien. Pero primero tengo otro problema y es que siguiendo los pasos me sale lo siguiente al hacer el filtraje:

y despues de cinco de estos me sale lo siguiente

El mensaje que te pide el valor del parámetro es que tienes algo (un parámetro en la consulta en que se basa el formulario, algún origen de control con ese nombre que no existe en la tabla/consulta origen del formulario, un filtro o criterio por ese campo...) que no existe y por eso te lo pregunta. Has de revisar el diseño para ver qué es.

Lo segundo es probable que sea algún error de sintaxis en el código.

Pongo lo siguiente:

Private Sub filtre_Click()
    Dim vTipologia As String
    Dim vGrups As Variant
    Dim vCultura As Variant
    Dim vGolf As Variant
    Dim vNatura As Variant
    Dim vConven As Variant
    Dim vCruise As Variant
    Dim vEno As Variant
    Dim vEsport As Variant
    Dim vFamiliar As Variant
    Dim vCeliac As Variant
    Dim vLargo As Integer
    Dim miFiltro As String
        'Cogemos los valores que hayamos seleccionado como filtro
    vTipologia = Nz(Me.cbotipologia.Value, "")
    vGrups = Nz(Me.chkGrups.Value, "")
    vCultura = Nz(Me.chkCultura.Value, "")
    vGolf = Nz(Me.chkGolf.Value, "")
    vNatura = Nz(Me.chkNatura.Value, "")
    vConven = Nz(Me.chkConven.Value, "")
    vCruise = Nz(Me.chkCruise.Value, "")
    vEno = Nz(Me.ChkEno.Value, "")
    vEsport = Nz(Me.chkEsport.Value, "")
    vFamiliar = Nz(Me.chkFamiliar.Value, "")
    vCeliac = Nz(Me.chkCeliac.Value, "")
        'Inicilizamos el filtro
    miFiltro = ""
        'Creamos la primera parte del filtro
    If vTipologia <> "" Then
        miFiltro = "AND [Tipologia]='" & vTipologia & "'"
    End If
        'Creamos la segunda parte del filtro
    If vGrups <> "" Then
        miFiltro = miFiltro & " AND [Grups]=" & vGrups
    End If
        'Creamos la tercera parte del filtro
    If vCultura <> "" Then
        miFiltro = miFiltro & " AND [Cultura]=" & vCultura
    End If
        'Creamos la cuarta parte del filtro
    If vGolf <> "" Then
        miFiltro = miFiltro & " AND [Golf]='" & vGolf & "'"
    End If
        'Creamos la quinta parte del filtro
   If vNatura <> "" Then
        miFiltro = miFiltro & " AND [Natura]='" & vNatura & "'"
    End If
    If vConven <> "" Then
        miFiltro = miFiltro & " AND [Conven]='" & vConven & "'"
    End If
    If vCruise <> "" Then
        miFiltro = miFiltro & " AND [Cruise]='" & vCruise & "'"
    End If
    If vEno <> "" Then
        miFiltro = miFiltro & " AND [Eno]='" & vEno & "'"
    End If
    If vEsport <> "" Then
        miFiltro = miFiltro & " AND [Esport]='" & vEsport & "'"
    End If
    If vFamiliar <> "" Then
        miFiltro = miFiltro & " AND [Familia]='" & vFamilia & "'"
    End If
    If vCeliac <> "" Then
        miFiltro = miFiltro & " AND [Celiac]='" & vCeliac & "'"
    End If
        'Ahora cogemos la longitud del filtro
    vLargo = Len(miFiltro)
        'Recomponemos el filtro eliminando el primer 'AND '
    If vLargo > 0 Then
        miFiltro = Right(miFiltro, vLargo - 4)
    End If
        'Aplicamos el filtro al formulario
    Me.Filter = miFiltro
    Me.FilterOn = True
End Sub

Lo primero, ¿por qué declaras las variables como Variant?

Lo segundo, has de tener en cuenta el tipo de dato que contienen para crear los filtros. Los campos de tipo Sí/NO (los checkBox) no son datos de tipo texto y tu en la construcción del filtro lo haces como si lo fuera. Es decir, te sobran las comillas simples.

El primer filtro (Tipología), no sé de qué tipo de datos se trata, pero sirve lo dicho, si no es texto, sobran las comillas simples

Según el ejemplo casado que es un CheckBox lo de clara como variant, por eso las variables que son checkBox las he puesto como variant. Y las comillas también salen en el checkbox del ejemplo. El filtro tipología es de tipo texto

En el ejemplo, para el check:

If vCasado <> "" Then
 miFiltro = miFiltro & " AND [Casado]=" & vCasado
 End If

no hay comillas simples en ningún lado...

Lo que tu tienes para un check:

 If vFamiliar <> "" Then
        miFiltro = miFiltro & " AND [Familia]='" & vFamilia & "'"
    End If

No es lo mismo

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas