Ver Mensaje Individual
  #1 (permalink)  
Antiguo 12/09/2011, 07:28
Avatar de yamiblancoc
yamiblancoc
 
Fecha de Ingreso: agosto-2011
Mensajes: 103
Antigüedad: 13 años, 2 meses
Puntos: 4
Sonrisa Validar treeview con visual basic

TENGO EL SIGUIENTE CODIGO

Código:
 Private Sub trv_proyectos_NodeClick(ByVal Node As MSComctlLib.Node)
   Dim primera_letra As String
   Dim Clave_proy As String
   Dim Clave_acc As String
   primera_letra = Left(Node.Key, 1)
   Clave_proy = Right(Node.Key, Len(Node.Key) - 1)
   
   Dim rs_proy As New ADODB.Recordset
   Dim rs_acc As New ADODB.Recordset
   Dim rs_ace As New ADODB.Recordset
   
   Dim obj_proyecto As New Proy_nvo
   Dim obj_ace As New ac_ace
   Dim obj_ac As New acciones_centralizadas
      
   Dim clave_ac As String
   Dim clave_ace As String
   
     
   Dim rs_centro As New ADODB.Recordset
   
   Dim kl As Long
      
   Dim SQL As String
      
   Select Case primera_letra
   
          Case "a"
              '(Proyectos)
              
              opt_opc(0).Value = True
                            
              lbl_proy_ac_cod = Clave_proy
              
              Call carga_unidades(Clave_proy)
                     
              Set rs_proy = obj_proyecto.Consultar_Proy_COD(Clave_proy)
              
              If Not rs_proy.EOF Then
                lbl_proy_ac_nombre = rs_proy!proy_denominacion
              End If
              
              'Pbx_proy.Visible = True
              'Pbx_ac.Visible = False
              
          Case "b"
          
               opt_opc(0).Value = True
          
               Dim arr_codigos() As String
               Dim rs_a_p As New ADODB.Recordset
              
              'Obten el codigo del proyecto, y el codigo de la acción
                arr_codigos = Split(Node.Key, "§")
                Clave_acc = Right(arr_codigos(0), Len(arr_codigos(0)) - 1)
                Clave_proy = Right(arr_codigos(1), Len(arr_codigos(1)) - 1)
                Call carga_unidades_accion(Clave_proy, Clave_acc)
                
                Set rs_proy = obj_proyecto.Consultar_Proy_COD(Clave_proy)
              
                If Not rs_proy.EOF Then
                    lbl_proy_ac_nombre = rs_proy!proy_denominacion
                End If
                                
              'ahora coloca los datos en el Frame de acciones:
                lbl_proy_ac_cod.Caption = Clave_proy
                lbl_ace_cod.Caption = Clave_acc
                
                Set rs_a_p = obj_ace.Consulta_Datos_Acciones_Proy(Trim(Clave_proy), CInt(Trim(Clave_acc)))
                
                If Not rs_a_p.EOF Then
                    lbl_ace_nombre.Caption = rs_a_p!acc_nombre
                End If
                
                'Pbx_proy.Visible = True
                'Pbx_ac.Visible = False
                
           Case "f"
                'Clave_proy contiene la clave de la acción centralizada tambien
                                               
                lbl_proy_ac_cod.Caption = Clave_proy
                
                opt_opc(1).Value = True
                
                Set rs_acc = obj_ac.consulta_descripcion(Clave_proy, an_o_actual)
                          
                If Not rs_acc.EOF Then
                    lbl_proy_ac_nombre.Caption = rs_acc!ac_den
                    
                     SQL = "SELECT Distinct(a.id_centro),b.Nombrecorto FROM SIPREFII_AC_centro a, SIPREFII_Centros b WHERE a.id_centro=b.ID AND a.ac_cod='" & Trim(Clave_proy) & "' AND a.POA=" & an_o_actual
                     Set rs_centro = Consulta_general(SQL, cn)
                           
                           
                     kl = 0
                           
                     ReDim arr_centro_ac_id(rs_centro.RecordCount)
                           
                     While Not rs_centro.EOF
                       cmb_unidad_eje.AddItem (rs_centro!NOMBRECORTO)
                       arr_centro_ac_id(kl) = Trim(rs_centro!ID_centro)
                       kl = kl + 1
                       rs_centro.MoveNext
                    Wend
                    
                 End If
                              
                    
           Case "g"
               
                opt_opc(1).Value = True
                    
                Dim arr_claves() As String
                                                
                arr_claves = Split(Node.Key, "§")
                
                'separa las claves, en la ultima posicion esta la jerarquia mayor
                
                lbl_proy_ac_cod.Caption = Right(arr_claves(1), Len(arr_claves(1)) - 1)
                lbl_ace_cod.Caption = Right(arr_claves(0), Len(arr_claves(0)) - 1)
                  
                Set rs_ace = obj_ace.consulta_datos_ae(Trim(lbl_proy_ac_cod), CInt(Trim(lbl_ace_cod)), an_o_actual)
                         
                                
                'coloca el nombre de las acciones especificas relacionadas con las
                'centralizadas
                If Not rs_ace.EOF Then
                   lbl_ace_nombre = rs_ace!ace_den
                   'Call carga_unidades_AC(Trim(lbl_ac_cod))
                End If
                                
                Set rs_acc = obj_ac.consulta_descripcion(Trim(lbl_proy_ac_cod.Caption), an_o_actual)
                                     
                cmb_unidad_eje.Clear
                'coloca la descripción de la accion centralizada
                
                If Not rs_acc.EOF Then
                    lbl_proy_ac_nombre.Caption = rs_acc!ac_den
                    'ingresa los centros en el combo
                    'Set rs_centro = obj_ac.consulta_centros_ac(an_o_actual, Trim(lbl_ac_cod.Caption))
                    
                    SQL = "SELECT Distinct(a.id_centro),b.Nombrecorto FROM SIPREFII_AC_centro a, SIPREFII_Centros b WHERE a.id_centro=b.ID AND a.ac_cod='" & Trim(lbl_proy_ac_cod.Caption) & "' AND a.POA=" & an_o_actual
                    Set rs_centro = Consulta_general(SQL, cn)
                           
                    kl = 0
                    
                    ReDim arr_centro_ac_id(rs_centro.RecordCount)
                           
                    While Not rs_centro.EOF
                      cmb_unidad_eje.AddItem (rs_centro!NOMBRECORTO)
                      arr_centro_ac_id(kl) = Trim(rs_centro!ID_centro)
                      kl = kl + 1
                      rs_centro.MoveNext
                    Wend
                    
                End If
                                
                                            
            
                                
                    
    End Select
   
End Sub
AHORA MI PREGUNTA ES... NECESITO QUE AL SELECCIONAR UNA OPCION NO SE PUEDA SELECCIONAR MAS NINGUN OTRO, OSEA QUE NO ME DEJE SELECCIONAR OTRA OPCION HASTA QUE CREE UNA NUEVA CONSULTA.

PODRA ALGUIEN AYUDARME!!!

GRACIAS