TREEVIEWER DE ACESSOS DAO

XXXANGELSXXX 05/04/2010 19:28:16
#338634
Boa Noiite senhores, estou fazendo um controle de acesso de usuarios via treeviewer aqui, so que quando peço para listar os usuarios do registro 2 por exemplo.. ele so lista do primeiro registro.. exemplo: eu tenho no meu sistema 3 cadastros..

1 - Cadastro de perfil ( NOME, DESCRICAO)
2 - Permissao de perfil ( onde coloquei com variavel booleana, para receber -1 , 0 )
3 - Cadastro do usuario ( onde informo o perfil do mesmo)

so que acontece o seguinte.. configuro as permissoes para o primeiro registro que houver na tabela de permissao..quando clico para configurar as permissoes do segundo registro por exemplo.. o sistema so traz a primeira treeviewer para mim, vou postar o codigo.. ha. detalhe.. feito com DAO. ok?

Sub CarregaTreeviewer()
On Error Resume Next
caminho = ReadINI([Ô]Geral[Ô], [Ô]Caminho[Ô], App.Path & [Ô]\Config.ini[Ô])
Set DB = DBEngine.OpenDatabase(caminho)

Set RS = tb.OpenRecordset(Data2.Recordset(1).Value)

TreeView1.Nodes.Clear
Set TreeView1.ImageList = ImageList1

[ô]Inserindo o nó raiz
Set nodx = TreeView1.Nodes.Add(, , [Ô]Root[Ô], [Ô]CRM[Ô], [Ô]Xis[Ô])

nodx.Expanded = True
For i = 0 To (DB.TableDefs.Count - 1)
If DB.TableDefs(i).Connect <> [Ô][Ô] Then GoTo Pula
If LCase(Left(DB.TableDefs(i).Name, 4)) = [Ô]msys[Ô] Then GoTo Pula
If LCase(DB.TableDefs(i).Name) <> [Ô]acesso[Ô] Then GoTo Pula
Set nodx = TreeView1.Nodes.Add([Ô]Root[Ô], tvwChild, DB.TableDefs(i).Name, DB.TableDefs(i).Name, [Ô]Xis[Ô])
Set tb = DB.OpenRecordset(DB.TableDefs(i).Name)
nodx.Expanded = True
For y = 0 To (tb.Fields.Count - 1)
If LCase(tb.Fields(y).Name) <> [Ô]usuario[Ô] Then
[ô]aki o tree view é carregado com os campos da tabela
If tb.Fields(y).Value = 0 Then
Set nodx = TreeView1.Nodes.Add(DB.TableDefs(i).Name, tvwChild, (DB.TableDefs(i).Name & tb.Fields(y).Name), tb.Fields(y).Name, [Ô]Block[Ô])
Else
Set nodx = TreeView1.Nodes.Add(DB.TableDefs(i).Name, tvwChild, (DB.TableDefs(i).Name & tb.Fields(y).Name), tb.Fields(y).Name, [Ô]Xis[Ô])
End If
End If
Next y
tb.Close
Pula:
Next i

E para ler o segundo registro da tabela por exemplo.. estou fazendo o seguinte..

Sub VerificarAcesso()

Data2.RecordSource = [Ô]Select * from acesso where usuario = [ô][Ô] & txtPerfil.Text & [Ô][ô][Ô]
Data2.Refresh

Data2.Recordset.Edit
If Data2.Recordset(0).Value = True Then
Data2.Recordset(0).Value = 0
TreeView1.SelectedItem.Image = [Ô]Block[Ô]
Else
Data2.Recordset(0).Value = 1
TreeView1.SelectedItem.Image = [Ô]Xis[Ô]
End If
Data2.Recordset.Update
Data2.Refresh

Nesse campo txtperfil.text contem o numero do perfil, mas a treeviewer nao atualiza os acessos para mim.. vou printar a tela para verem se entendem o que falo... desde ja .. brigadaooooo
XXXANGELSXXX 05/04/2010 20:24:37
#338637
ha, detalhe, se vcs tiverem um codigo melhor para fazer a funçao e quiserem passar eu aceito. .rs.. esses que tem no site sao muito dificeis.
Tópico encerrado , respostas não são mais permitidas