SoloCodigo
		Programación General => Visual Basic 6.0 e inferiores => VBA => Mensaje iniciado por: Manuel Castro Gómez en Lunes 20 de Junio de 2005, 21:42
		
			
			- 
				Buenas amigos de solocodigo.
En access-2000 tengo 1 tabla de PROGRAMAS y otra de SUBPROGRAMAS, los campos de la tabla de PROGRAMAS SON LOS SIGUIENTES(Codigo, NombrePrograma) y los de la 2da. tabla son (Codigo, CodProg, NombreSubprograma); en esta ùltima tabla CodProg contiene el Còdigo del programa al cual pertenece el Subprograma en cuestiòn.
Estoy tratando llenar un control DATA TREE que me muestre jeràrquicamente para cada programa los subprogramas respectivos.
A continuaciòn les expongo el còdigo VBA con el que pretendo hacer esto:
Private Sub Form_Load()
            Dim Cnn As ADODB.Connection, _
                RstProgramas As ADODB.Recordset, _
                RstSubProgramas As ADODB.Recordset, _
                NodX As Node, _
                StrCodPrograma As String
                
            Set Cnn = New ADODB.Connection
            Set RstProgramas = New ADODB.Recordset
            Set RstSubProgramas = New ADODB.Recordset
            Cnn.ConnectionString = "File Name=C:\Documents and Settings" _
                                             & "\mcastro.MARN" _
                                             & "\Escritorio" _
                                             & "\ConexionRac.udl"
            Cnn.Open
            RstProgramas.Source = "Tbl_Programas"
            RstProgramas.ActiveConnection = Cnn
            RstProgramas.Open
            
            TvwPrueba.Style = tvwTreelinesPlusMinusText
            TvwPrueba.LineStyle = tvwRootLines
            
            Do While Not RstProgramas.EOF
               Set NodX = TvwPrueba.Nodes.Add(, , RstProgramas  
                                                                   ("PRO_Codigo").Value, _ 
                                                                     RstProgramas"PRO_Nombre").Value)
                                               
               RstSubProgramas.Source = "SELECT * " _
                                      & "FROM   Tbl_SubProgramas " _
                                      & "WHERE  SPG_CodProg = '" & RstProgramas("PRO_Codigo").Value & "'"
               RstSubProgramas.ActiveConnection = Cnn
               RstSubProgramas.Open
               Do While Not RstSubProgramas.EOF
                  Set NodX = TvwPrueba.Nodes.Add(RstProgramas("PRO_Codigo").Value, _
                                                 tvwChild, _
                                                 RstSubProgramas("SPG_Codigo").Value, _
                                                 RstSubProgramas("SPG_SubPrograma").Value)
                  RstSubProgramas.MoveNext
               Loop
               
               RstSubProgramas.Close
               RstProgramas.MoveNext
            Loop
            
            Cnn.Close
End Sub
El problema que tengo es que en la lìnea que marquè en rojo me sale el siguiente error: CLAVE INVÀLIDA y no sè porquè ya que verifico y la clave (RstProgramas("PRO_Codigo").Value) es un campo texto de 4 posiciones tiene informaciòn.
Les agradezco de antemano cualquier ayuda al respecto y saludos a todos.