Visual Basic - Ayuda para mostrar datos de un campo

Life is soft - evento anual de software empresarial
 
Vista:

Ayuda para mostrar datos de un campo

Publicado por lissi (81 intervenciones) el 22/02/2005 16:24:25
Hola programadores

Tengo varias cajas de texto y datacombos que al presionar el boton AGREGAR se listan en un MSHFlexGrid.

Mi problema es que cuando le hago click en una fila quiero que los datos se muestren en las casillas de texto y en el datacombo para modificar datos .

Las casillas de texto me lista perfectamente , pero el datacombo aparece vacio no se como hacer para que el dato que corresponde al datacombo se liste ???

Les envio el codigo del Mshflexgrid en el evento click

Private Sub flex_Click()

click_flex = 1
'captura el numero de la unidad
click = flex.TextMatrix(flex.Row, 0)

'buscamos datos de la unidad para motrar en los text
If rsmos.State = adStateOpen Then rsmos.Close
rsmos.Open "select * from unidad where numunidad='" & click & "'and codigolibro='" & txtcod.Text & "'", cn, adOpenStatic, adLockOptimistic

menuni.Text = rsmos!numunidad
dtfecha.Value = rsmos!fecharegistro
mepag.Text = rsmos!numpaginas

Dim codresp As String
' Dim nomresp As String

codresp = rsmos!codigoresp
'nomresp = rsmos!

'Ver bien esto con calma
'If rsresp_cargo.State = adStateOpen Then rsresp_cargo.Close
' rsresp_cargo.Open "select responsables.* , appaterno + ' ' + apmaterno + ' ' + nombres as todonom from responsables where codigoresp='" & rsmos!codigoresp & "'", cn, adOpenStatic, adLockOptimistic
' Set dcresp.RowSource = rsresp
' dcresp.ListField = "appaterno"
' dcresp.BoundColumn = "codigoresp"
End Sub

Graxias lissi
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:Ayuda para mostrar datos de un campo

Publicado por Fernando Rios (47 intervenciones) el 23/02/2005 23:56:12
Lo que sucede es que un combo no funciona igual que un control monodato (es decir, que almacena un solo dato), ya que un combo por naturaleza un combo es una lista de valores.

'-*-*-*-*- AL INICIAR EL FORM
SQLStr = "SELECT IdProveedor, NombreProveedor FROM tblProveedores ORDER BY NombreProveedor"
set Rs = objConexion.Ejecutar SQLStr

Do While not Rs.EOF
combo1.AddItem Rs!NombreProveedor
combo1.ItemData ( combo1.NewIndex) = Rs!IdProveedor
loop

Lo que debes haces es llenar el combo solo una vez al cargar el formulario, y una vez hecho esto, debes iterar por todos los valores del combo hasta encontrar el valor que coincida con el campo:

'-*-*-*-*- AHORA, CUANDO VUELCAS UN REGISTRO A LOS CONTROLES DEL FORMULARIO:
For i = 0 to combo1.listCount-1
combo1.listindex = i 'Seleccionar el item
if combo1.text = rs!cargo then exit for
next i

Y ya con eso sales de la bronca. En lo personal no acostumbro usar controles orientados a datos como el DataCombo o DataList, ya que me ha pasado que me hacen batallar de mas porque esos controles tienen algunos pequeños errores. Si trabajas con los controles intrinsecos de VB tu programa es mas veloz y tienes que distribuir menos archivos cuando lo instales.

Espero te sirva, a mi me funciona sin problemas,
Saludos
At' Fer
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