Llenar textbox con adodc al seleccionar datacombo

Tengo la siguientes inquietude:
1) Hice un formulario en donde tengo que digitar valores en decimal (tres para ser exactos ej. 0.123) en unos textbox y cuando lo grabo solo me graba el valor entero, soy nuevo en visual basic y no se como hacer eso.
2) Tengo otro formulario donde selecciono un proveedor de un datacombo utilizando ADODC pero quisiera que al seleccionarlo se me llenen los textbox con los datos correspondientes. Ej.:
ComboBox Textbox1 Textbox2 Textbox3
Proveedor Direccion Telefono Contacto
P.D. Los textbox estan como un arreglo TEXT1(2), TEXT1(3), TEXT1(4).
Gracias anticipadas, cualquier cosa me puedes responder a mi mail
[email protected]

1 respuesta

Respuesta
1
Como andas
1) ¿Usas base de datos access?
Decís cuando lo grabas, me imagino que si, fíjate en la tabla en las propiedades del campo que tienes que asignarle la cantidad de decimales que quieres que tenga el campo.
2) Bueno, ¿usas recordset? ¿O usas consultas pre-armadas?
1) ¿Usas base de datos access?
Decís cuando lo grabas, me imagino que si, fíjate en la tabla en las
Propiedades del campo que tienes que asignarle la cantidad de decimales
Que quieres que tenga el campo

Si tenias razón había una parte en access donde me decía cuantos números tomaba hacia la derecha y tenia 0.
2) Bueno, ¿usas recordset? ¿O usas consultas pre-armadas?
Bueno, utilizo una conexión ADODC, directamente en el datacombo pero no se como hacer que se cambien los demás textbox conjuntamente cuando yo cambio lo que selecciono en datacombo. Para después agregar a esto a un datagrid, esto es un formulario para compra de materia prima. Este es el código que estoy utilizando.
Option Explicit
Enum CACCION
    AGREGAR_REGISTRO_Comp = 0
    MODIFICAR_REGISTRO_Comp = 1
End Enum
Public IdRegistroComp
Public ACCION As CACCION

'
Private Sub CmbProveedores_Change()
If CmbProveedores <> "" Then
   'AdoProvee.Refresh
If Not AdoProvee.Recordset.EOF Then
CnnComp.Execute "select direccion from proveedores where idproveedor = " & CmbProveedores.BoundColumn
'Text1(2) = AdoProvee.Recordset!Direccion
End If
End If
End Sub

'

Private Sub cmdGuardar_Click()
On Error GoTo ErrorSub
    ' Valida el Codigo de la Compra que no este vacio
    ''''''''''''''''''''''''''''''''
    If Trim(Text1(1)) = "" Then
        MsgBox "El registro no puede estar vacio", vbCritical, "Datos incompletos"
        Text1(1).SetFocus
        Exit Sub
    ' Valida el Estatus
    ''''''''''''''''''''''''''''''''
    ElseIf Trim(CmbEstatus.Text) = "" Then
        MsgBox "No se ha indicado el Estatus", vbCritical, "Datos incompletos"
        CmbEstatus.SetFocus
        Exit Sub
    End If
    'Agrega el registro
    '''''''''''''''''''''''''''''''
    Select Case ACCION
    Case MODIFICAR_REGISTRO_Comp
        CnnComp.Execute "UPDATE Compras   set Proveedor        = '" & CmbProveedores.ListIndex & _
                                          "', Direccion        = '" & Text1(2) & _
                                          "', TelefonoProvee   = '" & Text1(3) & _
                                          "', IdProducto       = '" & Text1(4) & _
                                          "', DescripcionProd  = '" & CmbProductos.ListIndex & _
                                          "', Cantidad         = '" & Text1(6) & _
                                          "', PrecioUnidad     = '" & Text1(7) & _
                                          "', Estatus          = '" & CmbEstatus.ListIndex & _
                                          "'  where IdCompra  =  " & IdRegistroComp & ""
    Case AGREGAR_REGISTRO_Comp
        CnnComp. Execute "INSERT INTO Compras " & "(FechaPedido,Proveedor,Direccion,TelefonoProvee,IdProducto,DescripcionProd,Cantidad,PrecioUnidad,Estatus) VALUES('" & _
                                 Format(Date, "dd/mm/yyyy") & "','" & _
                                 CmbProveedores.ListIndex & "','" & _
                                 Text1(2) & "','" & _
                                 Text1(3) & "','" & _
                                 Text1(4) & "','" & _
                                 CmbProductos.ListIndex & "','" & _
                                 Text1(6) & "','" & _
                                 Text1(7) & "','" & _
                                 CmbEstatus.ListIndex & "')"
    End Select
    RsComp.Requery 1
    Call CargarListViewComp(frmReg_Mant_Form.LVComp, RsComp)
    DoEvents
       Me.Hide
    Set frmEdit_Mant_Form = Nothing
Exit Sub
ErrorSub:
MsgBox Err.Description
End Sub
Private Sub cmdCancelar_Click()
    Me.Hide
End Sub
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
    If KeyCode = vbKeyEscape Then
       Me.Hide
    End If
End Sub

La parte que esta en negrita es donde he tratado de asignarle lo valores a los textbox. Quizás este usando el código mal pero intente ver si aprendía por mi cuenta
Saludos
Acá no veo complicaciones,
lo único es que esto lo pondría en el evento click y no en change, haber que pasa.
Private Sub CmbProveedores_Change()
If CmbProveedores <> "" Then
   'AdoProvee.Refresh
If Not AdoProvee.Recordset.EOF Then
CnnComp.Execute "select direccion from proveedores where idproveedor = " & CmbProveedores.BoundColumn
'Text1(2) = AdoProvee.Recordset!Direccion
End If
End If
End Sub
Hola Leandro
Lo cambie al evento on Click y solo me muestra el primer el valor del primer registro por ejemplo si en el datacombo tengo los proveedores JOSE ORTEGA, JOSE LUIS MUNOZ Y ALBERTO ACOSTA y sus teléfonos son 809-333-4444, 809-222-3333 y 809-111-2222
Al seleccionar por defecto esta de primero JOSE ORTEGA y me aparece el teléfono 809-333-4444 y si lo cambio me sigue apareciendo 809-333-4444, y yo quiero que al cambiar se cambie el dato también.
Saludos
El probkema es que estas diciéndole al comboproveedores en el select que el where sea siempre por el primero del combo
En cmbproveedores. Boundcolumn reemplazalo por cmbproveedores. List(cmbproveedores. Listindex)
Haber si funciona.
Leandro
Ya probé lo que me dijiste y no funciona me da un error, lo busque en la web y pasa por que estoy usando data combo y no un ComboBox con un combo box si funciona.
Si quieres para que veas el programa te lo mando a tu correo, para que así te sea más fácil entenderlo.
Espero tu respuesta.
No, esto laburando con 2 sistemas al mismo tiempo, me va a llevar una semana interpretar tu sistema por eso no puedo.
¿No lo podes cambiar a combobox?
¿Usas datacombo porque enlazaste los datos directamente no?
Fíjate por favor este link haber si te sirve esta data sino seguimos buscando
http://www.recursosvisualbasic.com.ar/htm/trucos-codigofuente-visual-basic/289-cargar-datalist-datacombo-de-dos-tablas.htm
leandro me estoy volviendo loco, y entiendo que es un disparate, el que al cambiar el valor de un combobox(ya lo cambie a combo1) me cambie los valores en dos textbox que tan difícil puede ser, por que lo he puesto de todas formas (hasta de cabeza) y nada, me he cansado de buscar ejemplos en la web y lo que me presentan son ejemplos con listfield y estos no se usan en textbox o arreglos. Si tienes un código que haga esta función
TE LO AGRADECERIA MUUUUUUCHOOOOO pa que no me dejen en donde el loquero.
Saludos
Estas usando comboboc entonces!
Es así
En el evento click del combo
en el combo tenes que tener un campoId de la tabla o algo
select campo1, campo2 where campoId = " & combo1.list(combo1.listindex) & ", asi si es numerico
select campo1, campo2 where campoId = '" & combo1.list(combo1.listindex) & "', asi si es texto
despues es consultar al recordset
text1 = rs!campo1
text2=rs!campo2
ahora si vos tenes el combo enlazado a la base directamente, nunca lo trabaje asi, porque es muy corto y dificil despues en su proyeccion, asi que yo hago todo por codigo con recordset.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas