Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

VB6: Trabajar con el ComboBox

Estas en el tema de VB6: Trabajar con el ComboBox en el foro de Visual Basic clásico en Foros del Web. Hola que tal a todos, tengo un problema con mis combobox este es mi codigo Código: Private Sub CmbDepto_Click() If Rs.State = 1 Then Rs.Close ...
  #1 (permalink)  
Antiguo 08/09/2008, 11:25
 
Fecha de Ingreso: noviembre-2006
Mensajes: 227
Antigüedad: 17 años, 5 meses
Puntos: 6
VB6: Trabajar con el ComboBox

Hola que tal a todos, tengo un problema con mis combobox este es mi codigo

Código:
Private Sub CmbDepto_Click()
    If Rs.State = 1 Then Rs.Close
    Rs.Open "SELECT * FROM Departamentos WHERE DEPARTAMENTO = '" & CmbDepto.Text & "'", Cnn, adOpenStatic, adLockOptimistic
    Rs.Requery 1
        CmbUsuario.Enabled = True
        CmbUsuario.Clear
         While Rs.EOF = False
            CmbUsuario.AddItem Rs.Fields("USUARIO")
            Rs.MoveNext
         Wend

End Sub
Explico lo que me pasa:

1.- Tengo dos combobox uno llamado CmbDepto y el otro CmbUsuario
2.- lo que prentendo es que en el combo CmbDepto al dar click me muestra en el cmbUsuario todos los usuarios del departamento que seleccione en el CmbDepto
3.-Esto me funciona cuando habro el formulario pero al cerrarlo y lo vuelvo abrir me dice que: Error 33709 en tiempo de ejecución que se describe asi: No se puede usar la conexión para realizar esta operación. Esta cerrada o no es valida en este contexto.

Espero haberme explicado si no me dicen por lo pronto gracias por cualquier aporte que se me pueda dar.
  #2 (permalink)  
Antiguo 08/09/2008, 12:06
Avatar de culd  
Fecha de Ingreso: noviembre-2003
Mensajes: 959
Antigüedad: 20 años, 6 meses
Puntos: 19
Respuesta: VB6: Trabajar con el ComboBox

Cita:
Iniciado por SalomonSab Ver Mensaje
Hola que tal a todos, tengo un problema con mis combobox este es mi codigo

Código:
Private Sub CmbDepto_Click()
    If Rs.State = 1 Then Rs.Close
    Rs.Open "SELECT * FROM Departamentos WHERE DEPARTAMENTO = '" & CmbDepto.Text & "'", Cnn, adOpenStatic, adLockOptimistic
    Rs.Requery 1
        CmbUsuario.Enabled = True
        CmbUsuario.Clear
         While Rs.EOF = False
            CmbUsuario.AddItem Rs.Fields("USUARIO")
            Rs.MoveNext
         Wend

End Sub
Explico lo que me pasa:

1.- Tengo dos combobox uno llamado CmbDepto y el otro CmbUsuario
2.- lo que prentendo es que en el combo CmbDepto al dar click me muestra en el cmbUsuario todos los usuarios del departamento que seleccione en el CmbDepto
3.-Esto me funciona cuando habro el formulario pero al cerrarlo y lo vuelvo abrir me dice que: Error 33709 en tiempo de ejecución que se describe asi: No se puede usar la conexión para realizar esta operación. Esta cerrada o no es valida en este contexto.

Espero haberme explicado si no me dicen por lo pronto gracias por cualquier aporte que se me pueda dar.
Claro por que ya tenes una consulta cargada, tenes que cerrarla para volver a realizarla con "rs.Close"

te quedaria asi

Código:
Private Sub CmbDepto_Click()
    If Rs.State = 1 Then Rs.Close
    Rs.Open "SELECT * FROM Departamentos WHERE DEPARTAMENTO = '" & CmbDepto.Text & "'", Cnn, adOpenStatic, adLockOptimistic
    Rs.Requery 1
        CmbUsuario.Enabled = True
        CmbUsuario.Clear
         While Rs.EOF = False
            CmbUsuario.AddItem Rs.Fields("USUARIO")
            Rs.MoveNext
         Wend
    Rs.Close
No es error del combo, es error tuyo al manejar la base de datos
  #3 (permalink)  
Antiguo 08/09/2008, 12:22
 
Fecha de Ingreso: noviembre-2006
Mensajes: 227
Antigüedad: 17 años, 5 meses
Puntos: 6
Respuesta: VB6: Trabajar con el ComboBox

Gracias Culd pero no me funciona de hecho ya lo habia probado con ese opción de cerrarlo pero el problema persiste:

Cuando me da el error me marca esta linea:
Código:
 Rs.Open "SELECT * FROM Departamentos WHERE DEPARTAMENTO = '" & CmbDepto.Text & "'", Cnn, adOpenStatic, adLockOptimistic
  #4 (permalink)  
Antiguo 08/09/2008, 12:37
 
Fecha de Ingreso: diciembre-2007
Mensajes: 40
Antigüedad: 16 años, 4 meses
Puntos: 1
Respuesta: VB6: Trabajar con el ComboBox

veamos , esto lo haces para el combo de usuarios pero el de dptos cuando lo cargas lo limpias, es decir CmbDepto.clear y el recordset asignado lo cerras ,xq en algun momento llenas al CmbDepto con los departamentos es en el form_load?
  #5 (permalink)  
Antiguo 08/09/2008, 13:14
Avatar de culd  
Fecha de Ingreso: noviembre-2003
Mensajes: 959
Antigüedad: 20 años, 6 meses
Puntos: 19
Respuesta: VB6: Trabajar con el ComboBox

Cita:
Iniciado por SalomonSab Ver Mensaje
Gracias Culd pero no me funciona de hecho ya lo habia probado con ese opción de cerrarlo pero el problema persiste:

Cuando me da el error me marca esta linea:
Código:
 Rs.Open "SELECT * FROM Departamentos WHERE DEPARTAMENTO = '" & CmbDepto.Text & "'", Cnn, adOpenStatic, adLockOptimistic
En que comento abris la conexion osea el "Cnn"... En ese form o en otro?

Igualment reitero, tenes que cerrar el recorset "Rs" despues de utilizar la consulta, sino te va a tirar ese error en esa linea... Pero quiero saber donde conectas con Cnn, por que puede estar cerrado y ahi te tira el error
  #6 (permalink)  
Antiguo 08/09/2008, 14:28
 
Fecha de Ingreso: noviembre-2006
Mensajes: 227
Antigüedad: 17 años, 5 meses
Puntos: 6
Respuesta: VB6: Trabajar con el ComboBox

Bueno para cerrar creo que con esto se soluciona:

Código:
If Rs.State = 1 Then Rs.Close
Si te fijas en el principio del post viene primero que si esta en uso lo cierre para posteriormente abrirlo pero tal parece que no me lo esta tomando en cuenta. y sigo con mi problema. considerando tu consejo el problema no esta en la conexión si no en el recordset
y respondiendo a tu pregunta habro la conexión en otro Form que es el principal.

Algun otro consejo que me puedan dar.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:37.