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

Access

Estas en el tema de Access en el foro de Bases de Datos General en Foros del Web. Hola a todos, Tengo tres campos de un formulario cuyos valores los extraigo a través de un cuadro combinado de tres tablas. Estas tablas, en ...
  #1 (permalink)  
Antiguo 09/11/2010, 00:27
 
Fecha de Ingreso: febrero-2004
Mensajes: 7
Antigüedad: 20 años, 2 meses
Puntos: 0
Access

Hola a todos,

Tengo tres campos de un formulario cuyos valores los extraigo a través de un cuadro combinado de tres tablas. Estas tablas, en su tercera columna, tienen un valor numérico. Me gustaría que en el formulario, me apareciera el producto de los valores asociados a las selecciones que he hecho.

Soy muy nuevo, así que puede que sea sencillo pero no tengo ni idea de como hacerlo.

¿Alquien puede ayudarme?.

Gracias.
  #2 (permalink)  
Antiguo 09/11/2010, 05:20
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Access

Se puede hacer pero necesitas un poco de programacion vb.

Primero los cuadros combinados tienen que tener esa tercera columna, la puedes poner con ancho 0cm y no se va a ver, luego con el metodo .column(X) del cuadro combinado puedes optener el valor de esa columna y hacer con el lo que quieras...

(Donde X es el numero de columna empezando des de cero)

Quim
  #3 (permalink)  
Antiguo 09/11/2010, 12:30
 
Fecha de Ingreso: febrero-2004
Mensajes: 7
Antigüedad: 20 años, 2 meses
Puntos: 0
Respuesta: Access

Ante todo darte las gracias por la respuesta.

Soy muy nuevo en esto, así que muchas cosas me suenan a chino, por lo que te pediría un poco de detalle.

Te cuento más exactamente mi caso:

Menú A: Rojo 2
Verde 3
Menú B: Brillo 0.5
Mate 1
Menú C: Propio 5
Ajeno 10

Resultado: Menú A*Menú B* Menú C

Los menús A, b y C los genero con cuadros combinados que me posibilitan seleccionar una opción. ¿Como consigo extraer la columna del valor y multiplicarlas entre sí?.

Si he entendido tu respuesta, en el combo he de mostrar todas las columnas pero si le pongo anchura 0, no me mostrará la selección...
Gracias de antemano.
  #4 (permalink)  
Antiguo 10/11/2010, 02:44
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Access

Debes poner anchura cero a la columna que quieras ocultar no al combo

Propiedades > Formato > Ancho de las columnas (p.e. 2,54cm;0cm)


Supongamos que tienes los siguientes objetos


Menu1 (combo con dos columnas la segunda es la que se multiplicará)
Menu2 (combo idem)
Menu3 (combo idem)
Producto (cuadro de texto)

En Propiedades > Otras > Nombre de cada uno de ellos estan esos nombres.

Para hacer lo que quieres debes hacer que despues de actualizar el combo te calcule el producto, para ello

En el primer combo

Propiedades > Eventos > Despues de actualizar > [Procedimiento de evento]

Luego le das a ...

Te aparecera el editor de módulos con el módulo del formulario cargado con este texto

Código vb:
Ver original
  1. Private Sub Menu1_AfterUpdate()
  2.  
  3. End Sub

repites este paso para cada combo, entre esas dos lineas debes programar tu producto....

Vamos a hacerlo, debajo del ultimo End Sub creamos una funcion para no tener que repetir codigo

Código vb:
Ver original
  1. Private Sub Menu1_AfterUpdate()
  2. fproducto
  3. End Sub
  4. Private Sub Menu2_AfterUpdate()
  5. fproducto
  6. End Sub
  7. Private Sub Menu3_AfterUpdate()
  8. fproducto
  9. End Sub
  10.  
  11. Function fproducto()
  12. Me.producto = Me.Menu1.Column(1) * Me.menu2.Column(1) * Me.menu3.Column(1)
  13. End Function

finalmente como puedes ver llamamos la función en el AfterUpdate de cada combo.

Recuerda darle a grabar del editor de módulos.

No mostrará ningun valor hasta que los tres combos tengan una selección.

Lo de usar una función en este caso parece poco justificado, pero si la sofisticas es aconsejable no tener codigo repetido....

Quim
  #5 (permalink)  
Antiguo 10/11/2010, 10:14
 
Fecha de Ingreso: febrero-2004
Mensajes: 7
Antigüedad: 20 años, 2 meses
Puntos: 0
Respuesta: Access

Definitivamente debo de ser un poco torpe...

El módulo queda al final así:

Private Sub Id_consecuencias_AfterUpdate()
fproducto
End Sub

Private Sub Id_exp_AfterUpdate()
fprofucto
End Sub

Private Sub Id_prob_AfterUpdate()
fproducto
End Sub

Function fproducto()
Me.Grado_Peligrosidad = Me.Id_consecuencias(1) * Me.Id_exp(1) * Me.Id_prob(1)
End Function

Cuando ejecuto el formulario me sale el siguiente error...
No coindicen tipos
  #6 (permalink)  
Antiguo 11/11/2010, 01:51
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Access

Te falta .Column y claro el valor de esa columna debe ser numérico.

Quim
  #7 (permalink)  
Antiguo 11/11/2010, 16:24
 
Fecha de Ingreso: febrero-2004
Mensajes: 7
Antigüedad: 20 años, 2 meses
Puntos: 0
Respuesta: Access

La verdad es que si es un perro, me muerde. Muchas gracias por tu ayuda. Mucho me temo que necesitaré más asesoriamiento a medida que vaya avanzando en la base. Espero contar con tu ayuda.

Gracias!
  #8 (permalink)  
Antiguo 15/11/2010, 05:27
 
Fecha de Ingreso: febrero-2004
Mensajes: 7
Antigüedad: 20 años, 2 meses
Puntos: 0
Respuesta: Access

NUEVO PROBLEMA

Genero un menú B cuyas opciones dependen del menú A.

Selecciono A y a partír de él, B me muestra unas opciones. El problema viene cuando trato de cambiar la opción del A ya que, haga lo que haga, B sigue mostrándome lo mismo.

Indicar que B lo completo con un cuadro combinado, Tabla/consulta con un filtrado a partir del valor de A.

Gracias.
  #9 (permalink)  
Antiguo 19/11/2010, 00:06
 
Fecha de Ingreso: noviembre-2010
Mensajes: 6
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: Access

Una consultal, Srs.
Tengo una Tabla Insumos y una tabla Maestro_DT en la tabla Maestro_DT se graban los codigos de los insumos que se mueven diariamente, y cuando quiero llamar datos hago una consulta entre INSUMOS Y MAESTRO_DT pero por error borraron Item de la tabla INSUMOS y ahora en la consulta no salen eso movimientos. me doy cuenta porque en mi tabla maestro tengo 11500 registros y mi consulta solo salen 11200, eso quiere decir q hay registros en el aire q estan en la tabla MAESTRO_DT pero no salen en la consulta pq fueron eliminados de INSUMOS....

LA PREGUNTA Y ESPERO ALGUIEN ME PUEDA AYUDAR,

COMO HAGO PARA SABER CUALES SON LOS INSUMOS Q FUERON BORRADOS SI TENGO LOS CODIGOS EN LA TABLA MAESTRO_DT...ALGUNO DE USTEDES SABEN COMO HACERLO...
GRACIAS.

Etiquetas: access
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 11:03.