Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Problemilla con access

Estas en el tema de Problemilla con access en el foro de Bases de Datos General en Foros del Web. Hola, trabajo con Access XP, y tengo varias dudas creo que bastante sencillas: 1) Tengo una tabla con datos de clientes y me gustaría que ...
  #1 (permalink)  
Antiguo 27/05/2009, 05:15
 
Fecha de Ingreso: mayo-2009
Mensajes: 16
Antigüedad: 15 años
Puntos: 0
Problemilla con access

Hola, trabajo con Access XP, y tengo varias dudas creo que bastante sencillas:

1) Tengo una tabla con datos de clientes y me gustaría que visualizando la ficha del cliente en un formulario, al pulsar un botón, me copiara el registro en el que estoy posicionado a otra tabla. En un principio la tabla que recibe la copia no tiene los mismos campos que la tabla origen, aunque en un momento dado podría modificar una de las dos para que coincidan en la totalidad de campos.

¿Como podría hacerlo?

2) También me gustaría saber si en un formulario puedo introducir las fechas desde el calendario en vez de introducirlas manualmente. En caso de que sea posible, ¿como se haría?

3) Tengo varias tablas: Destino = (ID)Ciudad, Pais ;
Clientes = (ID) DNI, Nombre,.....,...., Destino, alojamiento ; Alojamiento = (ID) Codigo, Destino, Nombre

Mi pregunta es: Como puedo hacer para que al seleccionar la ciudad de destino (q la saca de la tabla Destino), en el campo "alojamiento" solo me deje seleccionar los de los alojamientos de dicha ciudad.

Gracias por las respuestas anticipadas
  #2 (permalink)  
Antiguo 27/05/2009, 05:28
 
Fecha de Ingreso: marzo-2009
Mensajes: 19
Antigüedad: 15 años, 1 mes
Puntos: 1
Respuesta: Problemilla con access

Hace mucho tiempo que no trabajo con Access pero de algo todavia me acuerdo. Intentaré responderte a lo que sé:

1) Tú a un boton de un formulario de access puedes asociarle una acción.

En este caso la acción sería ejecutar consulta.

Debes crearte una consuta de insercción que haga un insert de los datos de la tabla de origen (la asociada al formulario) en la tabla de destino.

Al pulsar el boton se grabaran los datos de una tabla a otra.


2) Access tiene asistentes que te permiten trabajar con listas desplegables combinadas.

Prueba a insertar una lista desplegable con las ciudades de destino, de tal manera que al seleccionar una de las ciudades automaticamente cambie la consulta subyacente de la lista de alojamientos de tal manera que solo te aparezcan los alojamientos asociados a la ciudad seleccionada.

Espero haberte sido de ayuda.

Un saludo,
  #3 (permalink)  
Antiguo 29/05/2009, 01:50
Avatar de Taribo007  
Fecha de Ingreso: agosto-2007
Mensajes: 1.338
Antigüedad: 16 años, 9 meses
Puntos: 18
Respuesta: Problemilla con access

Intento contestarte por partes:

1) podrias usar una consulta de inserccion, algo asi:

CurrentDb.Execute "INSERT INTO Tabla(CampoNumerico,CampoTexto,CampoFecha) VALUES (" & me.ControlCampoNumerico & ",'" & ControlCampoTexto & "',#" & format(ControlCampofecha,"mm/dd/yyyy") & "#)"

Te he puesto los 3 tipos d ecampo mas tipicos con sus correspondientes caracteres de inserccion, es decir, ninguno para un campo numerico, comillas simples (en rojo) para una campo texto, y almohadilla (en azul) para campos tipo fecha. Ademas, a la fecha le damos formato americano (con el que access trabaja internamente, aunque esta afirmacion no es del todo exacta, evitaras errores)

2)Si usas access 2007, tienes la opcion de poner el control de tipo fecha, y parece ser que al poner el raton sobre el control te sale un calendario. es (segun he leido) una nueva funcionalidad de esta version. De no ser asi, tienes varias opciones de calendarios emergentes, por ejemplo esta del amigo marciano: ejemplo. tambien puedes introducir tu propio control calendario, hacerlo visible o invisible, mostrarlo a traves de un form modal....

3) Para tu tercera pregunta necesitas combos en cascada (eso me parecio entender). Aqui tienes una estupenda explicacion del amigo Xavi de como hacerlo:

COPIO********************************************* **********************
Aunque no se trata de una funcion propiamente dicha, es un tema recurrente en el foro. Deciros que existe un ejemplo en la Web de Chea http://jbengoechea.com/RptCp.htm#combos

Imaginemos que desarrollamos una aplicacion para un taller de vehiculos. Los vehiculos pertenecen a una marca, que tiene diferentes modelos que, a su vez, tienen diferentes versiones.

En nuestro formulario continuo vemos, al principio, todos los vehiculos que han pasado por el taller, y en el encabezado del formulario hemos puesto 3 combos para poder filtrar los datos. El formulario esta basado en una consulta a la tabla Vehiculos: SELECT * FROM Vehiculos ORDER BY Matricula;

El primer combo se llama Marcas y esta basado en una consulta a la tabla del mismo nombre. SELECT IdMarca, NombreMarca FROM Marcas; 2 columnas, la primera dependiente y anchos 0cm;4cm

El segundo combo (Modelos) esta basado en una consulta a la tabla Modelos (esa tabla contiene un campo IdMarca que los relaciona con la tabla Marcas). SELECT IdModelo, IdMarca, NombreModelo FROM Modelos; 3 columnas, la primera dependiente y anchos 0cm;0cm;4cm

El tercer combo (Versiones) basado en una consulta a la tabla Versiones (que contiene un campo IdModelo que lo relaciona con la tabla Modelos). SELECT IdVersion, IdModelo, NombreVersion FROM Versiones; 3 columnas, la primera dependiente y anchos 0cm;0cm;4cm

Cuando abrimos el formulario, el primer combo nos muestra todas las marcas. Al seleccionar una de ellas se produce el evento AfterUpdate. Aqui es donde decidimos que el contenido del combo Modelos debe variar para mostrar solo los de esa marca.

Me!Modelos.RowSource = "SELECT IdModelo, IdMarca, NombreModelo FROM Modelos WHERE IdMarca=" & Me!Marcas & ";"

A continuacion cambiamos el RecordSource del formulario para mostrar los vehiculos que coinciden con esa Marca:

Me.RecordSource = "SELECT * FROM Vehiculos WHERE IdMarca = " & Me!Marcas & " ORDER BY Matricula;"

Ahora el combo Modelos solo muestra los de la marca escogida en el combo Marcas.

Al seleccionar un modelo, tambien en el AfterUpdate, debemos cambiar el contenido del combo Versiones:

Me!Versiones.RowSource = "SELECT IdVersion, IdModelo, NombreVersion FROM Versiones WHERE IdModelo=" & Me!Modelos & ";"

Y actualizar el RecordSource del formulario:

Me.RecordSource = "SELECT * FROM Vehiculos WHERE IdMarca = " & Me!Marcas & " And IdModelo = " & Me!Modelos & " ORDER BY Matricula;"

Al seleccionar una version, tambien en el AfterUpdate, actualizamos el RecordSource del formulario:

Me.RecordSource = "SELECT * FROM Vehiculos WHERE IdMarca = " & Me!Marcas & " And IdModelo = " & Me!Modelos & " And IdVersion = " & Me!Versiones & " ORDER BY Matricula;"

Ahora queremos restaurar esos combos para que nos muestren todos los registros. Ponemos un boton Restaurar que nos debe devolver los RowSources originales y dejar los combos en blanco. Tambien cambiamos el RecordSource para devolverlo a su estado original.

Private Sub restaurar_Click()
Me!Marcas = Null
Me!Modelos.RowSource = "SELECT IdModelo, IdMarca, NombreModelo FROM Modelos;"
Me!Modelos = Null
Me!Versiones.RowSource = "SELECT IdVersion, IdModelo, NombreVersion FROM Versiones;"
Me!Versiones = Null
Me.RecordSource = "SELECT * FROM Vehiculos ORDER BY Matricula;"
End Sub

Espero os sirva.

FIN COPIA********************************************* *********************


un saludo
  #4 (permalink)  
Antiguo 29/05/2009, 02:00
 
Fecha de Ingreso: mayo-2009
Mensajes: 16
Antigüedad: 15 años
Puntos: 0
Respuesta: Problemilla con access

Muchisimas gracias por todo :)
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:13.