Access 2007 - Condición WHERE en macro incrustada

Soy novato y lo poco que se es de enredar con el Access. Estoy realizando una Base de Datos de contactos en Access 2007.
Tengo realizado un Formulario "Subformulario Empresas - Tipos" que tira de la tabla "Empresas - Tipos" en la que tan solo tengo los campos "Id Empresa-Tipo" y "Empresa - Tipo" esto es para realizar una clasificación de los distintos tipos de empresas de la base de datos (Prensa, Constructoras, Bancos, etc. Por ejemplo)
Claro esta que tengo relacionada esa tabla con la tabla "Empresas" con uno a varios mediante "Id Empresa-Tipo" de la tabla "Empresas - Tipos" y  "Empresa - Tipo" de la tabla "Empresas", para ello en la tabla "Empresas" tengo el campo "Empresa - Tipo" con el tipo de datos Número pues hago una búsqueda de Cuadro combinado mediante una Tabla/Consulta con el origen: SELECT [Empresas - Tipos].[Id Empresa-Tipo], [Empresas - Tipos].[Empresa - Tipo] FROM [Empresas - Tipos];
Pues ese Formulario "Subformulario Empresas - Tipos" le tengo en Vista de Datos y he puesto al campo "Empresa - Tipo" una macro incrustada de modo que al hacer clic me abra un Formulario "Listado de Empresas" (con los campos de la tabla "Empresas") he leído en la ayuda que con la condición WHERE puedo restringir los registros que veré en el listado de empresas.
En la condición WHERE he puesto: [Empresa - Tipo]=[Formularios]![Listado de Empresas]![Empresa-Tipo]
Con esto persigo en función del dato sobre el que haga clic del "Subformulario Empresas - Tipos" haga una especie de filtro en el formulario "Listado de Empresas" así solo veo las empresas del tipo sobre el que hice clic.
Con lo que he hecho me aparece el formulario "Listado de Empresas" (Le tengo en vista de datos) pero vacío y en la columna "Empresa - Tipo" me aparece el símbolo del filtro aplicado., entiendo que hace el filtro pero no es del todo correcto, apareciendo el listado entonces vacío.
Si no pongo nada en la condición WHERE me aparece el "Listado de Empresas" pero completo.
Alguien puede decirme donde está el error, o como lo puedo realizar.
Invito incluso a una cañita si alguien puede ayudarme, je, je, je

1 respuesta

Respuesta
1
Para mi que falla la condición del where, puede ser:
select *
from empresas
where [!forms][!formularios][cuadrotextoempresatipodetuformulario]=[!forms][!formularios][tablaEmpresas][campotipos]
Debes relacionar el campo tipo de tu formulario con el campo tipo de tu tabla empresas.
Gracias nilharto, pero ...
No te he entendido muy bien o casi nada. De lenguaje estoy Out.
¿Eso he de ponerlo en el Panel de Exploración en la condición Where?.
Vale, yo lo que haría es hacer dos cuadros combinados, uno que te liste las empresas tipo de la tabla empresas tipo
y el otro que se base en el primer cuadro combinado para listar los nombres de la empresa que tienen ese id empresa tipo.
COmo hacer esto?? pues creas un cuadro combinado con el asistente, luego boton derecho en propiedades,y en origen de la fila
tienes que poner la sentencia sql que liste las empresas tipo. será SELECT [Empresas - Tipos].[Empresa - Tipo] FROM [Empresas - Tipos];
El segundo cuadro se hace igual, pero el origen de ela fila cambia, será: SELECT [Empresas].[Nombre - Empresa] FROM [Empresas]
WHERE [Empresas - Tipos].[Id -Empresa - Tipo]=[!Forms][!Subformulario Empresas - Tipos][cuadro combinado que sea]
Anoche estuve pegándome con ello y casi lo he conseguido.
Para no perderme cambie un par de nombres pues como has visto se repetía bastante el campo de tablas y nombre de campos, y creo que era un poco de lio.
Tengo una tabla "Empresas (Tipos)" con los campos:
  - "Id Empresa-Tipo"
  - "Nombre Tipo-Empresa"
Otra tabla "Empresas" con los campos típicos para tener todos los datso de una empresa, telefonso, fax, dirección etec. Y entre ellos:
  - "Id Empresa"
  - "Organización" para el nombre de la empresa
  - "Tipo de Empresa" que como te dije es del tipo de datos Número y que es un cuadro combinado para hacer una búsqueda con Origen de Fila: SELECT [Empresas (Tipos)].[Id Tipo-Empresa], [Empresas (Tipos)].[Tipo-Empresa] FROM [Empresas (Tipos)]. Columna dependiente 1, número de columnas 2 y ancho de columnas 0.
Esto último es para hacer la relación entre las tablas de uno a varios entre la Tabla Empresas (Tipos) "Id Empresa-Tipo" y la tabla Empresas "Tipo de Empresa".
He realizado un formulario "Listado de Empresas" con vista de Hoja de datos que me da todos los datos.
Y he conseguido en otro formulario "Empresas - Tipos" con vista de datos, solo se ve un listado de la tabla "Empresas (Tipos)"
  - "Id Empresa-Tipo"
  - "Nombre Tipo-Empresa"
He ido a Diseño del Formulario, y en este último "Nombre Tipo-Empresa" he ido a propiedades a la pestaña de eventos, y en la opción "Al hacer clic" he seleccionado una "Macro incrustada" en el panel de exploración que aparece he puesto una acción "Abrir formulario" en la parte inferior del panel de exploración he puesto:
- Nombre del formulario: Listado de Empresas
- Vista: Formulario
- Nombre del filtro: (vacío)
- Condición WHERE: [Tipo de Empresa]=Formularios![Empresas - Tipos]![Id Tipo-Empresa]
- Modo de datos: Sólo lectura
- Modo de la ventana: Normal
Y por fin con esto he conseguido que si pincho en el formulario "Empresas - Tipos" encima de cualquiera de los campos datos del campo "Nombre Tipo-Empresa" me abre el formulario "Listado de Empresas" filtrado a ese Nombre Tipo-Empresa.
BIEN eso conseguido.
Pero tengo un formulario "Inicio" donde arrastro el formulario "Empresas - Tipos" para desde ese Inicio, como veo todos los tipos de empresas, pinchar en el que quiero y que aparezca el Listado de Empresas filtrado.
Pues ahí falla (por decirlo de algún modo), cuando pincho me hace la siguiente pregunta: Formularios! Empresas - Tipos! Id Tipo-Empresa
No se si te he aclarado algo.
Si no no tengo problema en enviártelo apra que lo veas, te recuerdo que estoy trabajando en Office 2007.
Perdona mi torpeza y ser tan pesado, queizas em he pasado intentando explicarlo.
Venga mándamelo, que me estoy volviendo loco y te lo hago en 5 minutos
[email protected]
GRACIASSSSSSSSSSSSS nilharto, te lo envíe para que vieras que es lo que quería decir.
Aunque anoche lo he solucionado por otro modo, bueno he obtenido lo que quería haciendo un formulatio dentrio de otro, desde al asistente de formularios.
El resultado es el mismo que yo quería, aunque no lo quería así. Pero me es muy válido.
GRACIASSSSSSSSSSSS de nuevo y siento el gasto de aspirinas para entenderme.
Si pasas por Santander, la cañita esta pagada.
Voy a realizar otra pregunta para la misma base, ¿t equedan fuerzas?
Si claro, pregunta para eso estamos je je.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas