DBList

Como hago en VB que al escoger un item del dblist salgan los datos de una tabla que corresponde al dato que escogí.
Ej:
TEngo una tabla A (maestro de empresas), y otra tabla B (movimiento de pagos de la empresas). Cuando escoja una empresa de la tabla A en un DBList, debe aparecer todos los movimientos que hizo dicha empresa de la tabla B

1 respuesta

Respuesta
1
Bueno para hacer este ejemplo utilice la base de datos de ejemplo que viene
en Visual basic 6.0, la base de datos se llama Nwind.mdb
el ejemplo es parecido a lo que tu planteas, el programa selecciona todos los productos que
pertenecen a la misma categoría
Se utilizan las tablas Categorías y Productos.
1. Agrego Un Dblist, y un control Data, en las propiedades del control data, establezco Databasename =
C:\Archivos de programa\Microsoft Visual Studio\VB98\Nwind.mdb
es obvio que este Path puede ser distinto para ti.
2. En la propiedad RecordSource del Data establezco el nombre de la tabla categorías (Categories)
3. En el control Dblist, establezco las siguientes propiedades:
Rowsource = al nombre del Data
ListField = el nombre del campo CategoryName(Nombredecategoria) o como se llame
BoundColumn = CategoryID (O su nombre en español)
4. En el evento click del control Dblist escribe el siguiente codigo.
Private Sub DBList1_Click()
Dim ssql As String
Dim rsproductos As Recordset
Dim qdfproductos As QueryDef
ssql = "PARAMETERS Idcateg Long;" _
& " SELECT Products.* " _
& " From Products " _
& " WHERE (((Products.CategoryID)=[Idcateg])); "
Set qdfproductos = Data1.Database.CreateQueryDef("", ssql)
qdfproductos.Parameters!Idcateg = Val(DBList1.BoundText)
Set rsproductos = qdfproductos.OpenRecordset()
rsproductos.MoveFirst
Do Until rsproductos.EOF
Debug. Print Str(rsproductos! ProductID)
Debug. Print rsproductos! ProductName
Debug. Print Str(rsproductos! SupplierID)
Debug. Print rsproductos! QuantityPerUnit
Rsproductos. MoveNext
Loop
End Sub
Si observas se utiliza una consulta en sql, que recibe un valor o parámetro.
La variable qdfproductos es un objeto de consulta que se utiliza para crear una consulta
temporal en la base de datos, la consulta se crea con la instrucción: Data1. Database. CreateQueryDef("", ssql)
se le pasa el parametro a la consulta : qdfproductos.Parameters!Idcateg = Val(DBList1.BoundText)
La propiedad BoundText contiene el Idcateg que se obtiene al seleccionarse el nombre de la categoría de la lista
se abre un conjunto de registro (Set rsproductos = qdfproductos.OpenRecordset())y se le asigna a la variable de objeto rsproductos. estos son todos los productos
que pertenecen a la categoria seleccionada
se visualizan algunos de los campos de cada registro , en la ventana de depuracion.
Do Until rsproductos.EOF
Debug. Print Str(rsproductos! ProductID)
Debug. Print rsproductos! ProductName
Debug. Print Str(rsproductos! SupplierID)
Debug. Print rsproductos! QuantityPerUnit
Rsproductos. MoveNext
Loop
Creo que esto te puede servir.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas