Cargar registro access desde listbox en excel

Estoy trabajando con un formulario desde excel donde en un listbox cargo información de una base de datos Access. Me gustaría que al seleccionar una fila en el listbox se carguen los datos en diferentes textbox pero tomando la información desde la base de datos.

Esto porque si cargo la información de los textbox desde el listbox me da error al intentar actualizar la información de la base de datos o como hago para que el registro específico de la base de datos se actualice en base a un campo específico en mi caso "Codigo" del formulario de excel.

1 respuesta

Respuesta
3

Para el que le pueda servir

Private Sub UserForm_Initialize()

Call Conexion  'Creacion de coneccion con base de Datos

  1. Set Rs = New ADODB.Recordset
  2. Rs.Open "SELECT * FROM Tecnologia ORDER BY [Articulo]", myConexion, adOpenStatic 
    '-----------------------------------------------------------------------------------------------------------------------------------------
  3. With ListBox1
    .ColumnCount = 5
    .ColumnWidths = "50 pt;200 pt;40 pt;70 pt;50 pt"
    .ColumnHeads = False 'True
    End With
    '--------------------------------------------------------------------------------------------------------------------------------------
  4. Rs.MoveFirst
    i = 0
    'Lleno el listbox con datos de la Base de Datos
  5. With Me.ListBox1
                      .Clear
                                    Do
                                     .AddItem
                                     .List(i, 0) = Rs![Codigo]
                                     .List(i, 1) = Rs![Articulo]
                                     .List(i, 2) = Rs![Cantidad]
                                     .List(i, 3) = Rs![PrecioC]
                                     .List(i, 4) = Rs![PrecioV]
     i = i + 1
    Rs.MoveNext
    Loop Until Rs.EOF
    End With
    Rs.Close
    Set Rs = Nothing
  6. End Sub
  7. Private Sub ListBox1_Click()
  8. Dim Buscx As String
    'Al hacer click en el ListBox
  9. txtCodigo = ListBox1.Column(0)
    '-------------------------------------------------------------------------------------------------
  10. Buscx = "[Codigo]=" & txtCodigo
  11. With Rs
     .Open "SELECT * FROM Tecnologia ", myConexion, adOpenKeyset, adLockOptimistic
    . Find Buscx 'Busco el registro en la base de datos atraves del codigo y cargo los datos en los textbox
    .Fields("Articulo").Value = txtArticulo
    .Fields("Cantidad").Value = txtCantidad
    .Fields("PrecioC").Value = txtCompra
    .Fields("PrecioV").Value = txtVenta
    .Close
  12. End With
  13. Set Rs = Nothing
    End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas