¿Cómo crear una consulta y un formulario con Access?

Ya ves que pronto he vuelto a preguntar. Como te comente antes no tengo ni idea de access.
¿Cómo creo la clave foránea? Creo que lo he hecho mal
¿Cómo creo la consulta y el formulario?
Vamos que me vas a manda al garete porque soy un desastre.

1 respuesta

Respuesta
1
Clave Foránea en una tabla ES un campo con datos repetibles
y que son relacionables con otro campo de otra tabla en el cual
este campo es Clave Principal, con datos irrepetibles.
Personalmente y para no crear confusiones en la BD...
... las Claves principales y sus Claves foráneas (campos)las
denomino en ambas tablas del mismo modo y precediendole de las letras "Id".
Ejemplo:
Tabla Clientes: Campos: IdCliente (clave principal), Nombre, Apellido1, Apellido2, etc etc...
Tabla Facturas:Campos:IdFactura(clave principal), IdCliente(clave foránea y campo repetible),
IdArticulo(clave foránea y campo repetible) Cantidad, Descripción, Precio, DtoComercial
Ojo,
La clave principal hay que definirla en access como tal, la foránea no.
Clave principal y clave foránea deben ser el mismo tipo de datos... texto, numero, etc.
Siendo así cuando usemos en una consulta dos tablas que contengan el mismo nombre de campo y sean precedidos de "Id" tendremos la precaución de relacionarlas.
Lo mismo ocurre en relaciones de BD.
Cierro por ahora, después sigo, dime si con esto la cosa va yendo mejor
saludos
Bueno, parece que ma va quedando más claro. Espero que sigas como agua de mayoo. Pero porque creamos un campo IdTarifa y no directamente podemos relacionar el precio eurotonelada con un campo IdEuroTonelada por ejemplo.
Un saludo
Ver si puedes ayudar a este pobre inútil.
En mi empresa de transporte trabajo con una base de datos Access donde vamos metiendo todos los viajes que hacemos. La base tiene una tabla DATOS con los siguientes campos, entre otros: Clientes, Recorrido, Toneladas, Euro/Tonelada, Precio, KM, etc. Según se van dando los viajes se van metiendo los registros, todo manualmente. Quisiera, si es posible, que al ir metiendo los registros, cuando meta el cliente y el recorrido, automáticamente en el campo Euro/Tonelada aparezca el precio euro por tonelada que corresponde a este cliente. Y que el campo Precio multiplique automáticamente los campos Euro/Tonelada por Toneladas. Me imagino que tenga que crea otra tabla donde meta todos los clientes con sus recorridos y sus precios Euro/tonelada que les corresponden. Y después crear una consulta que relacione las dos tablas.
No se si me he explicado, espero que pueda hacerse y que puedas ayudarme para empezar el año con una base de datos un poco más decente.
Muchas gracias y un saludo
14/01/2009
Experto Hola.
¿Qué te parecería crear una nueva Tabla "Tarifas" con los campos "IdTarifa" y "PrecioEuroTonelada"?
En la tabla Datos incluir entonces la calve foránea "IdTarifa" en lugar del campo
"Euro/Tonelada"
¿Por qué así?
Porque de esta forma los precios se modifican modificando solo
"PrecioEuroTonelada" de la tabla Tarifas
sin tener que ir cliente por cliente a cambiarlo.
¿Qué te parece?
Seguidamente deberás crear un formulario basado en una consulta
que incluirá la tabla Datos Y Tarifas relacionando por campo IdTarifa
ya que con ello el valor que pides PrecioEuroTonelada ya te saldrá solo.
Para que el campo Precio calcule Precio EuroTonelada xToneladas
puedes hacerlo con una consulta de actualización que lo haga para los valores que tengas hasta ahora
y para los que des de alta posteriormente puedes hacer en el formulario un campo calculado que...
Private Sub CajaTextoToneladas After_Update()
Precio= PrecioEuroTonelada * Toneladas
End Sub
o bien en propiedades de la CajadeTexto Precio /Datos/Origen del control poner
= PrecioEuroTonelada * Toneladas
(Lo vuelvo a copiar para que no tenga la cosas separadas y sin sentido)
sigue...)
En una misma tabla pueden existir diversas claves principales y la clave
resultante consiste que no se repita un mismo valor en ambas claves
(¿Un poco de lio no?... ni yo me entiendo)
Por ejemplo. Supongamos que introducimos registros en el siguiente orden
en una tabla con dos claves numéricas:
11 permitido
12 permitido, repite el 1 pero este registro es distinto al anterior
13 permitido, repite el 1 pero este registro es distinto al anterior
11 no permitido, se repiten ambas claves.
En respuesta a tu pregunta... Quizás un ejemplo en el que puedas
estudiarlo y practicar sera lo mejor para que lo veas.
Te propongo:
(cp)=clave principal
(cf)=clave foranea
Tabla Clientes: Campos: IdCliente(cp), IdTarifa(cf), Nombre, Apellido1, Apellido2,
Direccion, Localidad, etc
Tabla Facturas:Campos:IdFactura(cp), IdLinea(cp)IdCliente(cf), Recorrido, Toneladas, EurosTonelada, Precio
Tabla Tarifa:Campos:IdTarifa(cp), IdRecorrido(cp), EurosTonelada
a ver que te parece

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas