LISTANDO FORMS

USUARIO.EXCLUIDOS 30/03/2004 10:26:20
#17572
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
USUARIO.EXCLUIDOS 30/03/2004 16:29:34
#17681
Resposta escolhida
Não entendi esta sua duvida, por acaso não seria apenas verificar em PROJECT EXPLORER todos os forms existentes.
USUARIO.EXCLUIDOS 31/03/2004 11:34:58
#17812
Bem cadastre no banco todos os forms usados em uma tabela tipo MEUS_FORMS e defina um indice diferente para cada form.
USUARIO.EXCLUIDOS 31/03/2004 11:35:32
#17813
Se quiser te mando um exemplo...
USUARIO.EXCLUIDOS 31/03/2004 14:54:34
#17865
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




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
USUARIO.EXCLUIDOS 31/03/2004 16:25:11
#17895
é 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
Tópico encerrado , respostas não são mais permitidas