Visual Basic - problemon con combos anidados

Life is soft - evento anual de software empresarial
 
Vista:
sin imagen de perfil

problemon con combos anidados

Publicado por Emilio (3 intervenciones) el 23/04/2008 15:49:32
Hola, mas o menos resuelvo el tema de conectar varios combos, pero me da un error que no consigo solucionar. a ver tengo tres combos que pretendo que funcionen del modo selecciono un valor del primero y los relacionados del segundo combo que aparezcan y del tercero tb. Bien, la primera vez funciona me carga los datos del primer valor en el primer combo, y los otros en los otros dos combos, si interactuo con el segundo combo me cambia en el tercero, pero si cambio el valor del primer combo me "casca" el codigo. me vacio el recordset. intente hacer una pequeña trampa rellenado de nuevo el recordset, pero en algun puñetero sitio no se donde ni como, me carga el recordset ¡¡vamos que no encuentro el fallo!!. esta seria la primera parte del codigo ya que si me funcionase seguiria con los siguientes combos de la aplicacion, pero no puedo.
meto el codigo.

Option Explicit
Private rstrans, rsector, rsacti As DAO.RecordSet
Private basededatos As DAO.Database
Private trans As Integer

Private Sub CboTransf_Change()
Dim num As Integer
Dim st As String

rstrans.MoveFirst
rstrans.Move CboTransf.ListIndex
trans = rstrans("cod_transf") 'comun

st = "SELECT AUX_SECTOR.cod_sector, AUX_SECTOR.sector FROM AUX_SECTOR " & _
"WHERE (((AUX_SECTOR.cod_transf) = " & trans & "))"

Set rsector = basededatos.OpenRecordset(st) 'comun
rsector.MoveLast
rsector.MoveFirst
CboSector.Clear
Do Until rsector.EOF
CboSector.AddItem rsector("sector")
rsector.MoveNext
Loop
CboSector.ListIndex = 0
End Sub

Private Sub CboSector_Change()
Dim st As String
Dim num As Integer

st = "SELECT AUX_SECTOR.cod_sector, AUX_SECTOR.sector FROM AUX_SECTOR " & _
"WHERE (((AUX_SECTOR.cod_transf) = " & trans & "))"
Set rsector = basededatos.OpenRecordset(st) 'comun
rsector.MoveLast
rsector.MoveFirst
rsector.Move CboSector.ListIndex
num = rsector("cod_sector") ****** AQUI ME CASCA CUANDO CAMBIO EL VALOR DEL COMBO 1*************

st = "SELECT AUX_ACTIVIDADES.cod_act, AUX_ACTIVIDADES.act_principal FROM AUX_ACTIVIDADES " & _
"WHERE (((AUX_ACTIVIDADES.cod_sector)= " & num & "))"

Set rsacti = basededatos.OpenRecordset(st) 'comun
rsacti.MoveLast
rsacti.MoveFirst
CboActi.Clear
Do Until rsacti.EOF
CboActi.AddItem rsacti("Act_Principal")
rsacti.MoveNext
Loop
CboActi.ListIndex = 0
End Sub
Private Sub CboActi_Change()

End Sub
Private Sub Salir_Click()
End
End Sub

Private Sub UserForm_Initialize()
Dim st As String
Set basededatos = Workspaces(0).OpenDatabase("C:SIFIempresas2000.mdb", False)
'INICIALIZA LOS COMBOS

'1.combo transformacion

st = "select aux_transformacion.* from aux_transformacion"

Set rstrans = basededatos.OpenRecordset(st)
rstrans.MoveFirst

CboTransf.Clear
Do Until rstrans.EOF
CboTransf.AddItem rstrans("transformacion")
rstrans.MoveNext
Loop
CboTransf.ListIndex = 0

End Sub
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:problemon con combos anidados

Publicado por Peloto (1 intervención) el 23/04/2008 16:03:57
Eso es imposible de leer
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

RE:problemon con combos anidados

Publicado por Manuel Zabala (3 intervenciones) el 23/04/2008 16:05:44
Despues de tantos años de experiencia que tengo, yo te podria decir que eso no sierve para nada, es una parrafada... Te puede decir y asegurar que lo mas importante es el diseño y nada mas!!

Te recomiendo el Libro de Domine Windows Me

Un cordial saludo.
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