LISTANDO FORMS
Bom Dia
Gostaria de saber se tem como eu listar todos os form's da minha aplicação, inclusive os forms não estão carregados????
Estou usando o seguinte código que só me retorna os form carregados na memória:
-----------------------------------------
dim Frm as Control
for each Frm in Forms
lstform.additem Frm.Caption
next
-----------------------------------------
Daniel
Gostaria de saber se tem como eu listar todos os form's da minha aplicação, inclusive os forms não estão carregados????
Estou usando o seguinte código que só me retorna os form carregados na memória:
-----------------------------------------
dim Frm as Control
for each Frm in Forms
lstform.additem Frm.Caption
next
-----------------------------------------
Daniel
Não entendi esta sua duvida, por acaso não seria apenas verificar em PROJECT EXPLORER todos os forms existentes.
Bem cadastre no banco todos os forms usados em uma tabela tipo MEUS_FORMS e defina um indice diferente para cada form.
Se quiser te mando um exemplo...
O código segue abaixo
Qualquer duvida pergunte
LISTFORM Listbox com checkbox
MeusForms Tabela com o cadastro dos forms
MeusForms.id autonumerico
MeusForms.nomeform nome do form
CadFunc cadastro dos funcionarios
CadFunc.PerForm Campo Inteiro Longo onde é salvo a permissão
Qualquer duvida pergunte
LISTFORM Listbox com checkbox
MeusForms Tabela com o cadastro dos forms
MeusForms.id autonumerico
MeusForms.nomeform nome do form
CadFunc cadastro dos funcionarios
CadFunc.PerForm Campo Inteiro Longo onde é salvo a permissão
Private Sub AtualizaListaForm()
'Atualiza a listbox com os forms cadastrados
Dim rs As Recordset
Set rs = db.OpenRecordset("MeusForms")
LISTFORM.Clear
Do
If rs.EOF Then Exit Do
LISTFORM.AddItem rs!nomeform
LISTFORM.ItemData(LISTFORM.NewIndex) = rs!id
rs.MoveNext
Loop
End Sub
Private Sub SalvarPermissao(IdFuncionario As Long)
'Salva as permissões depedendo dos itens marcadaos
Dim rs As Recordset
Dim i As Long
Dim t As Long
Set rs = db.OpenRecordset("select PermForm as CadFunc where IDFUNC = " & IdFuncionario)
If Not rs.EOF Then
For i = 0 To LISTFORM.ListCount - 1
If LISTFORM.Selected(i) Then
t = t + (2 ^ istform.ItemData(i))
End If
Next
rs.Edit
rs!PermForm = t
rs.Update
End If
End Sub
Private Function TenhoPermissao(IdFuncionario As Long, FormularioNome As String) As Boolean
'Retorna TRUE se o usuario tem permissão
Dim rs As Recordset
Dim rsf As Recordset
Set rs = db.OpenRecordset("select PermForm as CadFunc where IDFUNC = " & IdFuncionario)
Set rsf = db.OpenRecordset("select id as MeusForms where NomeForm = '" & FormularioNome & "'")
If Not rs.EOF Then
If rsf!id And rs!PermForm = rs!id Then
TenhoPermissao = True
Else
TenhoPermissao = False
End If
End If
End Function
é o seguinte:
Cada Form Tem Um ID
FORM | ID
Form1 1
Form2 2
Form3 3
Form4 4
Form5 5
Se eu escolher os Form1 e Form3 ele deve salvar na tabela dos Usuários o valo
( 2 ^ 1) + ( 2 ^ 3) = 10
Entao se você quiser saver se o form pode ser aberto então faça
( (2 ^ IDFORM) AND VALORUSER)
FORM | ID |VALOR USER|
Form1 (2 ^ 1) AND 10 = 2
Form2 (2 ^ 2) AND 10 = 0
Form3 (2 ^ 3) AND 10 = 8
Form4 (2 ^ 4) AND 10 = 0
Form5 (2 ^ 5) AND 10 = 0
vIU QUE SE O RESULTADO FOR IGUAL A (2 ^ idform) ENTÃO é PORQUE O ACESSO ESTà  LIBERADO
Cada Form Tem Um ID
FORM | ID
Form1 1
Form2 2
Form3 3
Form4 4
Form5 5
Se eu escolher os Form1 e Form3 ele deve salvar na tabela dos Usuários o valo
( 2 ^ 1) + ( 2 ^ 3) = 10
Entao se você quiser saver se o form pode ser aberto então faça
( (2 ^ IDFORM) AND VALORUSER)
FORM | ID |VALOR USER|
Form1 (2 ^ 1) AND 10 = 2
Form2 (2 ^ 2) AND 10 = 0
Form3 (2 ^ 3) AND 10 = 8
Form4 (2 ^ 4) AND 10 = 0
Form5 (2 ^ 5) AND 10 = 0
vIU QUE SE O RESULTADO FOR IGUAL A (2 ^ idform) ENTÃO é PORQUE O ACESSO ESTà  LIBERADO
Tópico encerrado , respostas não são mais permitidas