Ver información del campo y no el ID al que hace referencia Access 2013

Estoy haciendo una BD de inventario de equipos de cómputo. Tengo 3 tablas principales: General, Detalles, Compra. Además tengo otras tablas que se relacionan con algunas de las principales: Marca, Sistema Operativo, Versión de Office...

Quiero hacer un informe que me muestre todas las características de mis tres tablas principales; el detalle es que cuando me muestra la información, en los campos me pone los ID's de las otras tablas, en lugar de los nombres que corresponden.

Este informe se basa en una consulta:

SELECT DM_Inventario_General.Nombre, DM_Inventario_General.Marca, DM_Inventario_General.Modelo, DM_Inventario_General.[Fecha de revisión], DM_Inventario_Detalles.SOS, DM_Inventario_Detalles.Office, DM_Inventario_Detalles.RAM, DM_Inventario_Detalles.Procesador, DM_Inventario_Detalles.DD, Compra.Proveedor, Compra.Precio, Compra.FechaCompra
FROM (DM_Marca RIGHT JOIN DM_Inventario_General ON DM_Marca.Marca = DM_Inventario_General.Marca) INNER JOIN (DM_Inventario_Detalles LEFT JOIN Compra ON DM_Inventario_Detalles.Nombre = Compra.Nombre) ON DM_Inventario_General.Nombre = DM_Inventario_Detalles.Nombre
WHERE (((DM_Inventario_General.Nombre)=[Equipo:]));

¿Cómo puedo hacer para lograr ver la descripción de la marca y no el ID? (Quisiera aplicar esto mismo en varios campos del informe) 

1 respuesta

Respuesta
2

En la consulta fíjate de coger los campos con los nombres y no con los IDs. Igual te es necesario añadir más tablas a tu consulta para hacerlo.

Por ejemplo si DM_Inventario_General. Nombre te devuelve un ID, porque tienes una tabla Productos, con los campos IDProd, NombreProducto, y relacionas IDProd con Nombre, en tu consulta quita ese campo, añade la tabla productos y selecciona NombreProducto en su lugar.

Saludos!


Un nuevo espacio dedicado a Access, visítanos: http://nksvaccessolutions.com/ 

Gracias! La relación que uso entre estas tablas GENERAL. Marca y MARCA es marca, justo el texto: MARCA.Descripción y no MARCA.Id...

Eso era un ejemplo, la idea es justamente esa.

Con sólo la sql es imposible decir que campo es id y cual es el campo que quieres. Indica la estructura de tus tablas o sube una imagen del diseño de la consulta (en la que se vean las tablas)

Muchas gracias! Mira, te pego la imagen: 

Lo que me arroja es: 

(Perdón por el pulso... ) ¿Con esto me puedes ayudar? Muchas gracias!! 

Lo que te decía en mi primer mensaje:

El campo marca, cógelo de la tabla DM_Marca en vez de la tabla DM_Inventario_General

El campo SOS cógelo de DM_SOS

El campo Office lo borras y en su lugar coges el campo Versión Office de DM_Office

Y así con todos los que te salgan el id...

Esto es lo que me aparece, los campos salen vacíos... :( 

Pues no debiera, porque es la forma de hacerlo...

Las relaciones, ¿están bien? 

¿Alguien más tiene alguna idea? ¿Podría usar alguna especie de IF? (que intenté, pero no me salió con la función SiInm...

En mi opinión, las relaciones no están bien, pero tampoco lo está la estructura de las tablas, que es lo principal para que todo funcione correctamente.

Para empezar, los campos claves deberían ser los campos Id de las tablas, y las relaciones hacerse por medio de esos campos. Por ejemplo: el Id de DM_Marca se relacionaría con Marca de DM_Inventario_General, campo que sería numérico (igual que el ID).

Si lo hubieras hecho así, tendría sentido el resultado que te muestra tu informe y el pantallazo de la consulta que pones en primer lugar, pues al coger Marca de DM_Inventario_General te muestra un número (el Id de DM_Marca)

Y si haces como te digo (campo Marca de DM_Marca), tanto en la consulta como en el informe te mostrará el nombre de la marca.

Haré un nuevo informe basándome en la consulta añadiendo los campos como dices y te cuento... Pero si la consulta, de entrada, no me da los valores que Quiero, el informe tampoco lo hará... 

Un problema en la estructura ya no tiene arreglo, vd? La idea era ver el texto siempre, no los IDs...

Se puede poner el campo de texto como campo llave?

Soy principiante en esto, como ves... 

Gracias por tu respuesta!

Poder puedes poner como clave el campo texto, pero no es lo recomendable. Mira este enlace, para saber cómo estructurar adecuadamente una BD:

http://siliconproject.com.ar/neckkito/index.php/algunas-cosillas-teoricas/cosas-que-es-bueno-saber/estructurar-y-relacionar-una-bd 

Arreglo puede tener, pero si ya tienes muchos datos, puede ser complicado.

Obviamente, si la consulta no te da los valores, el informe tampoco.

Antes preguntabas si con un condicional podrías arreglarlo. Inténtalo con la función DLookUp (o DBúsq en castellano) para buscar el texto correspondiente a esos ids. La idea sería ésta, por ejemplo para el nombre de la Marca:

Añades un nuevo campo a tu consulta, con esta expresión: DLookUp("Marca","DM_Marca",""Id=" & [Marca])

Es decir, búscame el campo Marca de la tabla DM_Marca cuyo id es igual al campo Marca (de la tabla DM_Inventario_General)

Y así con el resto. Si no te funciona con comas, separa con punto y coma.

¡Gracias! Hasta ahora pude probar... 

Funcionó correctamente sólo que tardé en lograr colocarla correctamente en la vista de Diseño! 

Expr1: DBúsq("Marca";"DM_Marca";"Id=" & [DM_Inventario_General].[Marca])

Tengo descargado el PDF que me comentaste y woow... ¡eres todo un profesional!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas