La creación de una base de datos en Microsoft Access que se pueden buscar sólo por ciertos campos

StackOverflow https://stackoverflow.com/questions/72528

  •  09-06-2019
  •  | 
  •  

Pregunta

¿Cómo crear una base de datos en Microsoft Access que se pueden buscar sólo por ciertos campos y controlado por unos pocos (necesario) cuadros de texto y casillas de verificación en un formulario es fácil de usar - no difícil consultas?

Ejemplo:Usted tiene varios cuadros de texto y varias casillas de verificación correspondientes en un formulario, y cuando la casilla de verificación situada junto al cuadro de texto está seleccionada, el cuadro de texto está activado y luego usted puede buscar por lo que se introduce en dicho cuadro de texto

(En realidad, yo ya lo saben, jugando stackoverflow peligro, donde puedo hacer una pregunta yo sé la respuesta sólo para aumentar el mundo del conocimiento de codificación!la respuesta viene en alrededor de 5 minutos)

¿Fue útil?

Solución

Esto es realmente un muy gran tema, y lleno de todo tipo de problemas potenciales.La mayoría de intermedio a avanzado de libros en Acceso tendrá algún tipo de sección de la discusión de "Formulario de Consulta", donde un formulario independiente que permite al usuario elegir ciertos criterios, y que cuando se ejecuta, escribe sobre la marcha de SQL para devolver los datos coincidentes.

En cualquier cosa, pero un piso de una sola tabla de estructura de datos, esta no es una tarea trivial, porque la cláusula FROM de la SQL es dependiente de la consulta de tablas en la cláusula where.

Un par de ejemplos de algunos de QBF formas de apps que he creado para los clientes:

  1. A consultar 4 tablas subyacentes
  2. Consultar un plano único de la tabla
  3. Consulta de 3 tablas subyacentes
  4. Consulta 6 tablas subyacentes
  5. A consultar 2 tablas subyacentes

El primero está dirigido por un módulo de clase que tiene propiedades que reflejan los criterios seleccionados en este formulario, y que tiene métodos que escribir las cláusulas FROM y where.Esto hace que sea muy fácil de añadir otros campos (como la medida en que dichos campos no provienen de las tablas que no sean los que ya incluido).

La parte más compleja del proceso de escritura de la cláusula FROM, como usted tiene que tener adecuada tipos de combinación y sólo incluyen las tablas que se encuentran en la cláusula SELECT o en la cláusula where.Si se incluye cualquier otra cosa, usted va a ralentizar su consulta mucho (especialmente si usted tiene cualquier outer joins).

Pero este es un gran tema, y no hay una varita mágica solución, en lugar, algo como esto tiene que ser creado para cada aplicación en particular.También es importante que usted la prueba a fondo con los usuarios, ya que lo que es completamente claro y comprensible para usted, el programador, es a menudo bastante darned desconcertante para los usuarios finales.

Pero eso es un principio que no sólo se aplica a QBF!

Otros consejos

Mi propia solución es agregar un "filtro" de control en la parte de encabezado del formulario para cada una de las columnas que quiero ser capaz de filtrar (por lo general todos ...).Cada vez que un "filtro" de control se actualiza, un procedimiento que se va a ejecutar para actualizar el filtro activo del formulario, utilizando el "BuildCriteria" la función disponible en Access VBA.

Por lo tanto, Cuando escribo "*cable*"en el "filtro" en la parte superior de la Orden de Compra Descripción columna, el "DONDE PODescription ES COMO "*cable*"se añade automáticamente a la Miformulario.filtro de propiedad ....

Algunos podrían objetar que el filtrado de la fuente de grabación hecha de múltiples tablas subyacentes pueden llegar a ser muy complicado.Eso es correcto.Así que la mejor solución es según yo para siempre (lo digo en serio!) el uso de una tv de tabla o una vista ("SELECCIONAR" consulta en Access) como un origen de registros de un formulario.Esto le hará la vida mucho más fácil!

Una vez que usted está convencido de esto, incluso se puede pensar de un pequeño módulo que permitirá automatizar la adición de "filtro" de los controles y procedimientos relacionados a los formularios.Usted estará en el camino correcto para un usuario real de cliente fácil de usar interfaz.

En el inicio, usted necesita para mostrar un formulario y desactivar otros menús, etc.De esa manera que el usuario sólo ve su funcionalidad limitada y no puede abrir directamente las tablas, etc.

Este extracto del libro, Mundo Real de la Base de datos Microsoft Access Protección y Seguridad, debe ser esclarecedor.

Para una pregunta que vaga, todo lo que puedo responder es abrir MS Access y haga clic en el ratón un par de veces.

En el segundo pensamiento:
El uso de la "WhereCondition" argumento de la "OpenForm" método

Si la funcionalidad es muy limitada y/o especializados, a continuación, una base de datos SQL es, probablemente, va a ser una exageración de todos modos por ejemplo,la caché de todas las combinaciones de los datos de forma local, en la memoria, y mostrar uno de acuerdo a las casillas de verificación en el formulario.Anteriormente se podía haber revocado los permisos de la mesa y les concedió sólo en las Vistas y Procedimientos que consulta los datos en la forma prescrita, sin embargo, la seguridad ha sido eliminado de MS Access 2007 así que puede que ahora realmente se detienen a los usuarios omitir su aplicación sencilla usando, por ejemplo, Excel y consultar los datos de la manera que quieran ...pero entonces, ¿ese no es el punto de una base de datos empresarial?;-)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top