Tablas con cuadros combinados

08/11/2007 - 18:45 por Santi | Informe spam
Hola!
¿Cómo se puede hacer con SQL Server 2005 que un RECORDSET que apuna a una
tabla, algunos de sus campos/columnas sean cuadros combinados al
representarlo en un DATAGRID?

Me Explico mejor:

Tengo una tabla de Productos que tiene los siguientes campos:
-
-IdProducto bigint (autonumérico)
-IdCliente bigint (almacena el ID de una entrada a la tabla de clientes,
relación 1 a infinitos)
-IdTipo bigint (almacena el ID de una entrada a la tabla de Tipos de
Productos, relación 1 a infinitos)
-Descripcion varchar(100)

Tabla de Clientes:

-IdCliente bigint (autonumérico) (relacion 1 a infinitos)
-Nombre varchar(50)

IdCliente | Nombre
1 | Pepe
2 | Juan

Tabla de Tipos:

-IdTipos bigint (autonumérico) (relacion 1 a infinitos)
-Tipo varchar(50)

IdTipos | Tipo
|-
1 | Jamon
2 | Pate


Uso un formulario con un DATAGRID al que le asocio como origen de datos un
RECORDSET que he configurado sin asistente cargando los datos de la tabla de
Productos (he omitido en el SELECT el IdProducto) (usando el data adapter los
comandos SELECT, UPDATE, DELETE e INSERT). Al abrirlo muestra algo así como:

IdCliente | IdTipo | Descripcion
1 | 1 | campo 1
1 | 2 | campo 2

Pero yo lo que quiero es que en vez de mostrar los ID de los campos a los
que apunta (que es lo que realmente almacena la tabla de productos), muestre
uno de los campos con texto al que apunta cada ID. Además de poder modificar
o añadir más campos usando un combo desplegable con los valores de la tabla
al que está vinculado. Algo así:

dCliente | IdTipo | Descripcion
-| |
Pepe | Jamon | campo 1
Pepe | Pate | campo 2

Esto en ACCESS es muy sencillo sin más que asociar al campo en cuestión un
control "Cuadro combinado", Origen de la fila="Tabla/Consulta" y el origen de
la fila algo así como: "SELECT Clientes ORDER BY Clientes.Nombre" y luego
mostrar solo la columna deseada cambiando los tamaños: 0cm;1cm.

Gracias por leer hasta aquí y gracias por ayudarme!

Saludos!
 

Leer las respuestas

#1 Carlos Sancho
08/11/2007 - 19:02 | Informe spam
Hola, Santi

Mira las propiedades de las columnas del DataGridView. Puedes seleccionar el
tipo de columna: textbox (la tipica), combobox, etc.. Pero esto pertenece al
Visual Studio o a algun otro entorno de programacion que integre SQL server
y no al propio SQL Server.

Espero te ayude

Saludos

"Santi" escribió en el mensaje
news:
Hola!
¿Cómo se puede hacer con SQL Server 2005 que un RECORDSET que apuna a una
tabla, algunos de sus campos/columnas sean cuadros combinados al
representarlo en un DATAGRID?

Me Explico mejor:

Tengo una tabla de Productos que tiene los siguientes campos:
-
-IdProducto bigint (autonumérico)
-IdCliente bigint (almacena el ID de una entrada a la tabla de clientes,
relación 1 a infinitos)
-IdTipo bigint (almacena el ID de una entrada a la tabla de Tipos de
Productos, relación 1 a infinitos)
-Descripcion varchar(100)

Tabla de Clientes:

-IdCliente bigint (autonumérico) (relacion 1 a infinitos)
-Nombre varchar(50)

IdCliente | Nombre
1 | Pepe
2 | Juan

Tabla de Tipos:

-IdTipos bigint (autonumérico) (relacion 1 a infinitos)
-Tipo varchar(50)

IdTipos | Tipo
|-
1 | Jamon
2 | Pate


Uso un formulario con un DATAGRID al que le asocio como origen de datos un
RECORDSET que he configurado sin asistente cargando los datos de la tabla
de
Productos (he omitido en el SELECT el IdProducto) (usando el data adapter
los
comandos SELECT, UPDATE, DELETE e INSERT). Al abrirlo muestra algo así
como:

IdCliente | IdTipo | Descripcion
1 | 1 | campo 1
1 | 2 | campo 2

Pero yo lo que quiero es que en vez de mostrar los ID de los campos a los
que apunta (que es lo que realmente almacena la tabla de productos),
muestre
uno de los campos con texto al que apunta cada ID. Además de poder
modificar
o añadir más campos usando un combo desplegable con los valores de la
tabla
al que está vinculado. Algo así:

dCliente | IdTipo | Descripcion
-| |
Pepe | Jamon | campo 1
Pepe | Pate | campo 2

Esto en ACCESS es muy sencillo sin más que asociar al campo en cuestión un
control "Cuadro combinado", Origen de la fila="Tabla/Consulta" y el origen
de
la fila algo así como: "SELECT Clientes ORDER BY Clientes.Nombre" y luego
mostrar solo la columna deseada cambiando los tamaños: 0cm;1cm.

Gracias por leer hasta aquí y gracias por ayudarme!

Saludos!

Preguntas similares