Visual Basic - Problemon

Life is soft - evento anual de software empresarial
 
Vista:

Problemon

Publicado por charlie (59 intervenciones) el 27/12/2004 16:16:46
Hola que tal amigos,les comento mi problemilla es asi: yo tengo por ejemplo ciertos proveedores asociados a partes, entonces yo he realizado una consulta en donde el ususario selecciona el proveedor y automaticamente veria los productos de ese proveedor en un datagrid, el tema es que no se como hacer que una vez que se selecciona el proveedor se muestren solamente los productos de ese proveedor.(el diseño de la base de datos lo permite pero no se como hacerlo en visual)

Muchas gracias por su ayuda

charlie
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

RE:Problemon

Publicado por shakaio (42 intervenciones) el 27/12/2004 16:58:34
lo primero es saber en donde se despliegan los nombre de los proveedores, si es que esta en un combo box, solo tienes que escoger el indicado y en la consuta sql mandas como paramtro ese valor, es decir el combobox.text.. Si es que no es asi por favor indicame como.

Y en la consulta lo comparas así:
select * from a.productos, b.proveedor where a.cod_pro=b.cod_pro and a.proveedor=combobox.text, claro ajustando a los datos de tus tablas, pero la idea es que filtra toda la información relacionada con ese proveedor. Si es que es con codigos pues compara los codigos, todo dependera de la estructura de tus tablas.

el resultado de ese sql lo pones en el data grid, todo esto lo puedes hacer en el evento change o click, mejor en el click por que en el change me dado un poco de problemas, del comobobox.
Si desea mas especificaciones sobre esto por favor escrinbeme.
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

RE:Problemon

Publicado por charlie (59 intervenciones) el 28/12/2004 00:13:57
muchisimas gracias por tu respuesta shakaio te comento que el id de proveedor esta en un combobox que se llama id_proveedor, y me gustaria que me mandaras un ejemplo aunque no sea el mismo caso de como realizas este tipo de consulta sql (base de datos access) y de como poner los productos asociados a este proveedor(id_proveedor) en el datagrid1

charlie
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

RE:Problemon respondanme please!!

Publicado por charlie (59 intervenciones) el 28/12/2004 13:56:14
Por favor respondeme que estoy trabadisimo y tengo fecha de entrega de este modulo el 2 de enero, estoy en el horno!!

charlie
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

RE:Problemon respondanme please!!

Publicado por ismael (28 intervenciones) el 28/12/2004 14:10:29
que tipo de grid utlizas?
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

RE:Problemon respondanme please!!

Publicado por charlie (59 intervenciones) el 28/12/2004 14:35:38
utilizo un datagrid, lo ultimo que he hecho es asociar un adodc al datagrid , y tomar como parametro el id_proveedor, en recordsource pero tampoco he tenido suerte
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

Aqui esta la respuesta

Publicado por shakaio (42 intervenciones) el 28/12/2004 15:33:13
' por ejemplo tengo dos tabalas que estáan relaciondas, la una es pais y la otra cuidad
' estan relacionadas por un cod_pais en cada tabla. Ahora quiero que me despligue en el combo todos
' los paises y cuando escoja uno en datagrid me aparece todos las cuidades de ese pais asi
'Como ya tienes lo paises en el combo tevas al evento click y pones lo siguiente, ya debes tener la conexiones y todo lo demas asi que
'voya saltar eso.
Dim sql As String

sql = "select a.cod_pais,b.cod_pais,b.cuidad from cuidad a, pais b where a.cod_pais=b.cod_pais and a.cod_pais =" + Combo1.Text
' entonces lo que tiene el combo se pasara a la tabla y filtrara.
recado.Recordset.Open sql, recado.ConnectionString, adOpenDynamic, adLockOptimistic
' esto quiere decir que se cargaran en el record todos los registros que saque

' como es un data grid solo tendras que asignar el recordset al mismo
DataGrid1.DataSource = recado.Recordset
recado.Recordset.Close

si tienes algun error en el codigo escirbeme e idicame donde te sale el error, lo que pasa es que no tengo donde probar en este momento, pero asi debe funcionar.
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

RE:Aqui esta la respuesta

Publicado por charlie (59 intervenciones) el 28/12/2004 17:06:59
Muchismas gracias ahora lo pruebo

charlie
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

RE:Aqui esta la respuesta

Publicado por charlie (59 intervenciones) el 29/12/2004 12:28:50
lo estuve probando pero me da un error, pienso talvez que sea por recado, ya que no se que tipo de objeto es, yo en su lugar utilice un adodc

muchas gracias

charlie
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

RE:Aqui esta la respuesta

Publicado por shakaio (42 intervenciones) el 29/12/2004 15:07:39
Hola, lo que pasa es que todo lo que yo hago es via codigo y tu seguramente estas haciendolo insertando el control adodc en tu forma, pero es lo mismo el recado es el recorset el que contiene todas los registos que saca de la consulta, si mal no recuerdo puse algo asi:

Public recado As Adodc
recado.Recordset.Open sql, "conexión" , recado es un objeto de tipo adodc y con el puedes utilizar las propiedades que este tiene como el conexion string y el recordset, lo que hago en esta linea de codigo es abrir el recordset y poner ahi lo que hace la consulta sql.

Hagamos una cosa para ayudarte , enviame el código que me imgaino le modificaste y yo aqui le arreglo, por favor comenta cada linea para saber que tablas son y como se relacionan.
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

RE:Aqui esta la respuesta

Publicado por shakaio (1 intervención) el 29/12/2004 16:41:17
Te envie un ejemplo a tu mail tienes que crear un odbc que se llame odbcacc y direccionar a donde esta la base db1.mdb, pruebale !si funciona! y asi es como debes hecerlo con tu proyecto.
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

Puede ser así

Publicado por ale (7 intervenciones) el 29/12/2004 13:31:39
primero tenés que guradar los nombres en un combo y los id de provedor en itemdata del combo mientras los vas guardando.
luego creas un string ej:
dim sql as string
dim Rp as new adodb.recorset
sql = "select * from provedor where idprov = " & combo1.itemdata(combo1.listindex)
rp.open sql, cn, adopenstatic (cn es el objeto conection)
luego enlazas el recorset al datagrid y listo
puedes creaar un procedimiento que se llame cada vez que se hace click en el combo.
Para guardar en el combo los id de prov haces igual ej:
dim sql as string
dim Rp as new adodb.recorset

sql = "select idprov, nomprov from proveedor"
' Si el nombre está en otra tabla solo joineala y escribe el strning en sql
if rp.state <> adstateclosed then
rp.close
set rp = nothing
end if
rp.open sql,cn,adopenstatic
do while not rp.eof
combo1.additem rp!nomprov
combo1.itemdata(combo1.newindex) = rp!idprov
rp.movenext
loop
recuerda siempre insertar la referencias "activeX adodb 9.0"(creo no recuerdo bien)
El tema es muy amplio y se puede hacer de distintas formas espero te sirva.
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