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
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á.
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.
¿Una pregunta para saber el nombre que lo tengo en otra tabla que puedo hacer para que salga en el formulario?
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
- Compartir respuesta