Como puedo ver registros desde un combobox
Saludos al Foro, Lo que quiero es que desde un combobox pueda selccionar un campo y que me muestre los campos de ese registro en un DataGrid o en unos text ( claro serian varios text con el mismo numero de campos)
Espero alguien me pueda decir como de antemano Gracias
Espero alguien me pueda decir como de antemano Gracias
Espero que esto te ayude
Private Sub cmb_Categorias_Click()
llenarGrid cmb_Categorias.ItemData(cmb_Categorias.ListIndex)
End Sub
Private Sub llenarGrid(cod_Cat As Integer)
'Grid es la rejilla
Dim Cadena As String
Dim rsPro As New ADODB.Recordset
Dim suma As Single
Dim i As Integer
Cadena = "Select ProductId,ProductName,CompanyName,UnitPrice,UnitsinStock,UnitPrice * UnitsinStock as SubTotal "
Cadena = Cadena & "from Products p, Suppliers s"
Cadena = Cadena & " where p.supplierid = s.supplierid and CategoryID = " & cod_Cat
rsPro.Open Cadena, conexion
'configurar las colummnas
'flex grid cols = al numero de columnas
'grid.ColWidth(I)indica el ancho de la columna
MSFProducto.Cols = 6
'MSFProducto.Cols = rsPro.Fields.Count devuelve el numero de columnas del select
MSFProducto.ColWidth(0) = 1000
MSFProducto.ColWidth(1) = 900
MSFProducto.ColWidth(2) = 950
MSFProducto.ColWidth(3) = 900
MSFProducto.ColWidth(4) = 900
'Coloca los titulos de la columna
MSFProducto.TextMatrix(0, 0) = "Codigo"
MSFProducto.TextMatrix(0, 1) = "Nombre"
MSFProducto.TextMatrix(0, 2) = "Proveedor"
MSFProducto.TextMatrix(0, 3) = "precio"
MSFProducto.TextMatrix(0, 4) = "Stock"
'MSFProducto.TextMatrix(0, 4) = rsPro.fields.name da el nombre del select
MSFProducto.TextMatrix(0, 5) = "Sub-Total"
suma = 0
i = 1
While Not rsPro.EOF
i = i + 1
MSFProducto.Rows = i
MSFProducto.TextMatrix(i - 1, 0) = rsPro(0)
MSFProducto.TextMatrix(i - 1, 1) = rsPro(1)
MSFProducto.TextMatrix(i - 1, 2) = rsPro(2)
MSFProducto.TextMatrix(i - 1, 3) = rsPro(3)
MSFProducto.TextMatrix(i - 1, 4) = rsPro(4)
MSFProducto.TextMatrix(i - 1, 5) = rsPro(5)
'FORMAT da formato a las celdas.
suma = suma + rsPro(5)
lbltotal.Caption = suma
rsPro.MoveNext 'aumenta el contador
Wend
lbltotal.Caption = suma
End Sub
Private Sub Form_Load()
llenarcategorias cmb_Categorias
'llenarcategorias cmb_cat
End Sub
Private Sub llenarcategorias(lista As ComboBox)
Dim cmdSql As String
Dim rsCat As New ADODB.Recordset
Dim i As Integer
lista.Clear
cmdSql = "select CategoryId, CategoryName from Categories"
rsCat.Open cmdSql, conexion
While Not rsCat.EOF
lista.AddItem (rsCat(1))
lista.ItemData(lista.NewIndex) = rsCat(0)
rsCat.MoveNext
Wend
End Sub
Saludos
Private Sub cmb_Categorias_Click()
llenarGrid cmb_Categorias.ItemData(cmb_Categorias.ListIndex)
End Sub
Private Sub llenarGrid(cod_Cat As Integer)
'Grid es la rejilla
Dim Cadena As String
Dim rsPro As New ADODB.Recordset
Dim suma As Single
Dim i As Integer
Cadena = "Select ProductId,ProductName,CompanyName,UnitPrice,UnitsinStock,UnitPrice * UnitsinStock as SubTotal "
Cadena = Cadena & "from Products p, Suppliers s"
Cadena = Cadena & " where p.supplierid = s.supplierid and CategoryID = " & cod_Cat
rsPro.Open Cadena, conexion
'configurar las colummnas
'flex grid cols = al numero de columnas
'grid.ColWidth(I)indica el ancho de la columna
MSFProducto.Cols = 6
'MSFProducto.Cols = rsPro.Fields.Count devuelve el numero de columnas del select
MSFProducto.ColWidth(0) = 1000
MSFProducto.ColWidth(1) = 900
MSFProducto.ColWidth(2) = 950
MSFProducto.ColWidth(3) = 900
MSFProducto.ColWidth(4) = 900
'Coloca los titulos de la columna
MSFProducto.TextMatrix(0, 0) = "Codigo"
MSFProducto.TextMatrix(0, 1) = "Nombre"
MSFProducto.TextMatrix(0, 2) = "Proveedor"
MSFProducto.TextMatrix(0, 3) = "precio"
MSFProducto.TextMatrix(0, 4) = "Stock"
'MSFProducto.TextMatrix(0, 4) = rsPro.fields.name da el nombre del select
MSFProducto.TextMatrix(0, 5) = "Sub-Total"
suma = 0
i = 1
While Not rsPro.EOF
i = i + 1
MSFProducto.Rows = i
MSFProducto.TextMatrix(i - 1, 0) = rsPro(0)
MSFProducto.TextMatrix(i - 1, 1) = rsPro(1)
MSFProducto.TextMatrix(i - 1, 2) = rsPro(2)
MSFProducto.TextMatrix(i - 1, 3) = rsPro(3)
MSFProducto.TextMatrix(i - 1, 4) = rsPro(4)
MSFProducto.TextMatrix(i - 1, 5) = rsPro(5)
'FORMAT da formato a las celdas.
suma = suma + rsPro(5)
lbltotal.Caption = suma
rsPro.MoveNext 'aumenta el contador
Wend
lbltotal.Caption = suma
End Sub
Private Sub Form_Load()
llenarcategorias cmb_Categorias
'llenarcategorias cmb_cat
End Sub
Private Sub llenarcategorias(lista As ComboBox)
Dim cmdSql As String
Dim rsCat As New ADODB.Recordset
Dim i As Integer
lista.Clear
cmdSql = "select CategoryId, CategoryName from Categories"
rsCat.Open cmdSql, conexion
While Not rsCat.EOF
lista.AddItem (rsCat(1))
lista.ItemData(lista.NewIndex) = rsCat(0)
rsCat.MoveNext
Wend
End Sub
Saludos
Yo se que es extendo pido disculpas si es dificil de entender pero era un ejemploq eu lo tenia a mano
Disculpas , espero de verdad que los ayude el ejemplo
Saludos
Disculpas , espero de verdad que los ayude el ejemplo
Saludos
No te preocupes te agradezco de todas Maneras que estes bien, Muchas Gracias.
Sabes que... viendolo bien si esta complejo tu programa no me podrias pasar el ejemplo sencillito o alguien del foro me podria decir, porfa se los agradeceria mucho Gracias.
Ok espera es algo asi
**********************************
a lo que carga el form
Private Sub Form_Load()
llenarcategorias cmb_Categorias
End Sub
' este es codigo del proceso
lenar categorias
Private Sub llenarcategorias(lista As ComboBox)
Dim cmdSql As String
Dim rsCat As New ADODB.Recordset
Dim i As Integer
lista.Clear
cmdSql = "select CategoryId, CategoryName from Categories"
rsCat.Open cmdSql, conexion
While Not rsCat.EOF
lista.AddItem (rsCat(1))
lista.ItemData(lista.NewIndex) = rsCat(0)
rsCat.MoveNext
Wend
End Sub
*Loq eu haces es seleccionar dos campos de la tabla y Uno de ellos el nombre lo colocas en el campo el otro lo tienes para que al dar click en el combo te llene un flex con ese nombre pero lo sacas por la id
luego loq eu haces teniendo la ID del campo
creas otro que llene la grilla
select * from tabla where llave = ' combo.listindex
el rs lo envias a la grilla
Espero que te ayude no tengo uno mas pequeño en codigo pero espero que te ayude
Saludos
**********************************
a lo que carga el form
Private Sub Form_Load()
llenarcategorias cmb_Categorias
End Sub
' este es codigo del proceso
lenar categorias
Private Sub llenarcategorias(lista As ComboBox)
Dim cmdSql As String
Dim rsCat As New ADODB.Recordset
Dim i As Integer
lista.Clear
cmdSql = "select CategoryId, CategoryName from Categories"
rsCat.Open cmdSql, conexion
While Not rsCat.EOF
lista.AddItem (rsCat(1))
lista.ItemData(lista.NewIndex) = rsCat(0)
rsCat.MoveNext
Wend
End Sub
*Loq eu haces es seleccionar dos campos de la tabla y Uno de ellos el nombre lo colocas en el campo el otro lo tienes para que al dar click en el combo te llene un flex con ese nombre pero lo sacas por la id
luego loq eu haces teniendo la ID del campo
creas otro que llene la grilla
select * from tabla where llave = ' combo.listindex
el rs lo envias a la grilla
Espero que te ayude no tengo uno mas pequeño en codigo pero espero que te ayude
Saludos
