eu faço assim: Private Sub Form_Open(Cancel As Integer) Dim N As Recordset, D As Database Set D = CurrentDb Dim NIVEL As String NIVEL = Forms!logon!NIVEL StrSQL = ("Select * from NIVEIS where NIVEL = '" & NIVEL & "'") Set N = D.OpenRecordset(StrSQL, dbOpenDynaset) cad1.Visible = N!cad1 cad2.Visible = N!cad2 cad3.Visible = N!cad3 cad4.Visible = N!cad4 cad5.Visible = N!cad5 cad6.Visible = N!cad6 cad7.Visible = N!cad7 cad8.Visible = N!cad8 cad10.Visible = N!cad10 adm1.Visible = N!adm1 adm2.Visible = N!adm2 adm3.Visible = N!adm3 adm4.Visible = N!adm4 con1.Visible = N!con1 con2.Visible = N!con2 rel1.Visible = N!rel1 rel2.Visible = N!rel2 rel3.Visible = N!rel3 Exit Sub End Sub E depois para cada item tem esse código: Private Sub cad3_Click() On Error GoTo Err_cad3_Click Dim stDocName As String Dim stLinkCriteria As String stDocName = "FORNECEDORES" DoCmd.OpenForm stDocName, , , stLinkCriteria Exit_cad3_Click: Exit Sub Err_cad3_Click: MsgBox Err.Description Resume Exit_cad3_Click End Sub Sendo q na tabela 'niveis', tem um campo para cada botão, no formato sim/não.