• Viernes 8 de Noviembre de 2024, 23:05

Autor Tema:  Ayuda Con Combobox En Vba  (Leído 2986 veces)

cacharin

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Ayuda Con Combobox En Vba
« en: Sábado 27 de Agosto de 2005, 01:21 »
0
hola que tal soy nuevo aqui en el foro, tengo un problema estoy haciendo un formulario en vba y este formulario lo conecto a una bd de access por medio de una variable workspace, pero tambien dentro del formulario tengo un combobox que quiero llenar con los datos de la bd, como le hago para llenar el combobox con los datos de la bd. aqui esta mi codigo:

Dim ws As Workspace
Dim dbgenc As Database
Dim tbGastos As Recordset
Dim dnGastos2 As Recordset
Dim flag As Integer

Private Sub ComboBox1_Click()
Do While Not dnGastos2.EOF

ComboBox1.AddItem dnGastos2.Fields("Gasto1")
ComboBox1.ListIndex = 0

dnGastos2.MoveNext

Loop
End Sub

Private Sub CommandButton1_Click()
If flag <> 0 Then
    dnGastos2!Gasto1 = TextBox1.Text
    dnGastos2!Gasto2 = TextBox2.Text
    dnGastos2!Gasto3 = TextBox3.Text
    dnGastos2!Gasto4 = TextBox4.Text
    dnGastos2!Gasto5 = TextBox5.Text
    dnGastos2.Update
    dnGastos2.MoveFirst
End If
    dnGastos2.MoveNext

'codigo de guardar, modificar y actualizar registros
If flag <> 0 Then
    flag = 0
End If

If dnGastos2.EOF = True Then
    dnGastos2.AddNew
    TextBox1.Text = ""
    TextBox2.Text = ""
    TextBox3.Text = ""
    TextBox4.Text = ""
    TextBox5.Text = ""
    flag = flag + 1
         
End If

If dnGastos2.BOF = False Then
    CommandButton2.Enabled = True
End If

If dnGastos2.EOF = False Then
    TextBox1.Text = dnGastos2!Gasto1
    TextBox2.Text = dnGastos2!Gasto2
    TextBox3.Text = dnGastos2!Gasto3
    TextBox4.Text = dnGastos2!Gasto4
    TextBox5.Text = dnGastos2!Gasto5
End If


End Sub

Private Sub CommandButton2_Click()
dnGastos2.MovePrevious

If dnGastos2.BOF = True Then
    CommandButton2.Enabled = False
    dnGastos2.MoveNext
End If

TextBox1.Text = dnGastos2!Gasto1
TextBox2.Text = dnGastos2!Gasto2
TextBox3.Text = dnGastos2!Gasto3
TextBox4.Text = dnGastos2!Gasto4
TextBox5.Text = dnGastos2!Gasto5
End Sub

Private Sub UserForm_Activate()
flag = 0

Set ws = DBEngine.Workspaces(0)

'Abre una DB de tipo Access con opciones predeterminadas de acceso a
'lectura/escritura de datos y acceso compartido:
    Set dbgenc = ws.OpenDatabase("C:\bd.mdb")

'Abre una tabla de Access con los parámetros implícitos de uso compartido
'y modo de uso lectura/escritura:
    Set tbGastos = dbgenc.OpenRecordset("gastos", dbOpenTable)

'Abre un dynaset que consta de todos los registros de la tabla Clientes:
    Set dnGastos2 = dbgenc.OpenRecordset("SELECT * FROM gastos", dbOpenDynaset)

'Establecer el índice a usar e inicializar los datos en pantalla
    MsgBox "Número total de registros = " & Str(tbGastos.RecordCount + 1)
   
'se mostraran los datos en los textbox correspondientes
    TextBox1.Text = dnGastos2!Gasto1
    TextBox2.Text = dnGastos2!Gasto2
    TextBox3.Text = dnGastos2!Gasto3
    TextBox4.Text = dnGastos2!Gasto4
    TextBox5.Text = dnGastos2!Gasto5
     
End Sub


como pueden ver en la parte del combobox tengo un codigo pero no me funciona, no aparece nada en el combobox a la hora de ejecutar el formulario si alguien me podria ayudar se lo agradeceria MUCHISISISISISMO GRACIAS¡ :comp:

DiabloRojo

  • Miembro MUY activo
  • ***
  • Mensajes: 220
    • Ver Perfil
Re: Ayuda Con Combobox En Vba
« Respuesta #1 en: Sábado 27 de Agosto de 2005, 17:51 »
0
Hola cacharin.
Prueba comentando o eliminando esta línea de codigo:

Código: Text
  1. ComboBox1.ListIndex = 0
  2.  

Saludos.


DiabloRojo.

DiabloRojo

  • Miembro MUY activo
  • ***
  • Mensajes: 220
    • Ver Perfil
Re: Ayuda Con Combobox En Vba
« Respuesta #2 en: Lunes 29 de Agosto de 2005, 04:05 »
0
Qué tal cacharin?
No hagas caso de mi post anterior. Estuve revisando y la verdad el evento Click de los controles ComboBox sólo se activa cuando el combo contiene elementos y se elije uno de ellos. Te digo dos cosas primero, por lo general, los combobox se llenan en el evento load del form y; segundo, si quieres llenar el combo cuando el usuario interactúe con el combo debes usar el evento DropDown (del combo). El evento DropDown se activa cuando el usuario hace click en la flecha que permite desplegar la lista que muestra el contenido del mismo. Si no deseas que se repitan los elementos dentro del combo deberías usar una línea como esta:

Código: Text
  1. tu_combo.Clear
  2.  

antes  del código que te lo llena.

Saludos.


DiabloRojo.

cacharin

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Re: Ayuda Con Combobox En Vba
« Respuesta #3 en: Jueves 1 de Septiembre de 2005, 06:50 »
0
gracias diablo pues si me sirvio tus comentario ahora ya puedo llenar el combobox tenias razon lo llene desde el load del formulario era lo que queria muchas gracias¡¡¡¡¡ :hola: