Access - Problemas con Combobox

 
Vista:
sin imagen de perfil

Problemas con Combobox

Publicado por chmartinez (8 intervenciones) el 28/01/2015 23:26:39
Muy buenas.

Tengo una duda con los valores que me aparecen en los combobox de los formularios, que no sé si a alguien más le ha podido ocurrir.

Situación de mi BD:

- Tablas: TBLformapago, TBLclientes, TBLpresupuestos, TBLfacturas
- Formularios: FRMclientes, FRMpresupuestos, FRMfacturas (para rellenar sus tablas, lógicamente)

Proceso:

1. Doy de alta a un cliente, y relleno todos sus datos. Entre esos registros, un combobox me deja seleccionar la forma de pago de dicho cliente. Sin problema.

2. Emito un presupuesto a uno de los clientes, en cuyo formulario tengo un combobox que despliega a todos los clientes de mi BD, selecciono uno, y relleno el resto de datos. También sin pegas.

3. Emito una factura, que también tiene un combobox para seleccionar a qué cliente va dirigida, y otro para que aparezca en la factura el presupuesto correspondiente (en el que aparecen las unidades con precio que luego salen en la factura, como es normal; dicho de otro modo, para "refrescarle" la memoria al cliente, y mostrarle que si le cobro 250,00 € por un concepto en la factura, es porque previamente le había enviado un presupuesto con código el-que-sea, y en el que le expongo que el producto el-que-sea, vale 250,00 €)

Aquí me aparece el problema, porque yo quiero que en el combobox del presupuesto me aparezcan varias columnas (que me den más pistas de qué presupuesto puede ser, porque un cliente puede tener un montón de ellos, claro está), y en dichas columnas me aparecen números (los id de cada registro, en lugar de los valores). Concretamente, en el nombre del cliente (que estaba seleccionado en el presupuesto con otro combobox anteriormente).

No sé si el fallo radica precisamente en eso, que estoy haciendo una selección en un combobox de un valor que, a su vez, está sacado de otro combobox.

Y relacionado con el tema, también me pasa que en el formulario de la factura a emitir, cuando elijo a un cliente del combobox, quiero que automáticamente me aparezca su forma de pago en un textbox, pero también me aparece sólo un número (el id de la forma de pago, no su texto).

¿Algún experto en la materia podría decirme por qué puede ser?

Muchas gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Neckkito
Val: 529
Plata
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Problemas con Combobox

Publicado por Neckkito (1157 intervenciones) el 02/02/2015 13:12:33
Hola!

Lo cierto es que sin ver cómo tienes organizado el tema es difícil darte una respuesta. Sólo puedo darte unas indicaciones para que tú investigues por tu cuenta.

1.- Si, con el formulario en modo diseño, sacas las propiedades del combo -> Datos -> Origen de la fila, ahí verás una SQL. Si te pones sobre la misma te aparecerá un pequeño botón de puntos suspensivos. Si haces clic sobre el mismo sacarás la consulta subyacente. Ahí puedes añadir al grid todos los campos que necesites (y que estén disponibles, claro).

2.- En las propiedades del combo -> Pestaña Formato -> Número de columnas, tienes un número indicado. Si en el paso 1 anterior has llevado tres campos al grid de la consulta, por ejemplo, el valor de "Número de columnas" debería ser 3 si las quieres ver.

3.- En esa misma pestaña de formato -> Ancho de columnas, tienes las propiedades del ancho de las columnas del combo. Siguiendo con el ejemplo, si has seleccionado tres campos, para verlos deberían tener tamaño. Por ejemplo, podrías indicar:

2cm;2cm;2.5cm

Ten en cuenta que si indicas 0cm la columna sigue ahí, pero no la podrás ver.

4.- Finalmente, y con esto debes ir con mucho cuidado si los combos están relacionados, cuando seleccionas un valor en el combo se guarda siempre un único valor (para este caso, me refiero). Por ello, si en las propiedades del combo te vas a Datos -> Columna dependiente, si ahí tienes un 1 se guardará el valor de la primera columna. Si quieres que se guarde el valor de la segunda simplemente cambias el 1 por un 2.

Respecto al tema del textbox, te pongo un ejemplo:

Imaginemos que tu combo se llamba cboDatos (Propiedades -> Otras -> Nombre), y que tras las instrucciones anteriores tiene tres columnas, que son las que te muestra cuando las despliegas. Y supongamos que necesitas que el valor que se guarde sea el de la primera columna, que es el identificador. ¿Cómo pasas el valor de la segunda columna, por ejemplo, al textbox?

Pues es tan sencillo como, en el textbox, escribir la siguiente expresión:

=cboDatos.Column(1)

porque debes tener en cuenta que en la expresión las columnas son consideradas como una colección, y las colecciones empiezan por cero. De manera que la primera columna que ves sería la 0, la segunda sería la 1 y la tercera la 2 (y así sucesivamente).

A ver si con todo lo que te acabo de explicar puedes arreglártelas.

Saludos,
firmaMail
http://neckkito.siliconproject.com.ar
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
sin imagen de perfil

Problemas con Combobox

Publicado por chmartinez (8 intervenciones) el 02/02/2015 15:33:02
Muchas gracias, Neckkito.

Ya he logrado hacerlo. El problema radicaba en que no estaba seleccionando bien las tablas de las que debía de obtener los datos para rellenar los combos.

He empleado la línea de código:

cc2.RowSource = "SELECT tipo_titulacion.descripcion, tipo_titulacion.codigo FROM tipo_titulacion WHERE (((tipo_titulacion.codigo)=Formularios!nombredelformulario!cc1))"

Donde cc1 y cc2 son los combos 1 y 2, obviamente.

Lo de rellenar el textbox, aún no me he puesto, pero lo conseguiré.

Una vez más, muchas gracias por el interés.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar