12/09/2011, 07:28
|
| | | Fecha de Ingreso: agosto-2011
Mensajes: 103
Antigüedad: 13 años, 2 meses Puntos: 4 | |
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 |