Ir para conteúdo
Fórum Script Brasil

RJBeto

Membros
  • Total de itens

    2
  • Registro em

  • Última visita

Sobre RJBeto

RJBeto's Achievements

0

Reputação

  1. Resolvido Fiz desta forma: O Banco BackEnd fica em rede protegido por senha. O Banco FrontEnd fica instalado em máquinas dos usuários, com tabelas vinculadas ao Back e com senha de acesso que à princípio o usuário deveria conhecer para poder usar. Para não fornecer a senha ao usuário criei um terceiro Banco que acessa ao Front, este com senha fornecida ao usuário, o qual chamei de “Abrir sistema”. O Banco Abrir Sistema é composto por: Uma Macro autoexec que chama a função Libera. Uma função Libera que envia comando com senha para abertura do Banco Front. Em caso de erro, por qualquer manipulação pelo usuário no endereço do Front, este fecha e envia mensagem para acionamento do administrador. Caso não tenha erro, o Front abre com os acessos vinculados ao Back e o “Abrir Sistema” fecha automaticamente. Desta forma o Front na máquina do usuário estará protegido porque este não sabe sua senha. Sem o acesso ao Front e também como o Back é protegido por senha, toda a estruturação do sistema e dados, estará protegida contra manipulações indesejadas. O banco “Abrir Sistema”, não permite o uso da tecla “Shift+Enter” e mesmo sabendo a senha de entrada, o usuário não poderá copiar o código por meio de outro banco paralelo porque os códigos VBA estão protegidos também por senha inserida em “Ferramentas; Propriedades database; Proteção com bloqueio do projeto para exibição”. Este mesmo tipo de bloqueio foi feito no Front e no Back. Seguem os códigos do banco Abrir Sistema Módulo AbrirMenu - Função Libera Function Libera() Const DB_Boolean As Long = 1 'DESABALITA SHIFT+ENTER ChangeProperty "AllowBypassKey", DB_Boolean, False 'DESABALITA SHIFT+ENTER Dim Pass As Variant Static objaccess As Access.Application Dim db As DAO.Database Pass = "SENHA DO MEU FRONT" Dim strDbName As String strDbName = "C:\ENDEREÇO DO MEU BANCO.accdb" Set objaccess = New Access.Application 'On Error GoTo Sai 'HABILITA A CONDIÇÃO DE ERRO DE ENDEREÇO – SUGIRO FAZER UMA CÓPIA DESTE ANTES DE HABILITAR A SAÍDA EM CASO DE ERRO, POIS A TECLA SHIF+ENTER TAMBÉM ESTARÁ BLOQUEADA Set db = objaccess.DBEngine.OpenDatabase(strDbName, False, False, ";PWD=" & Pass) objaccess.OpenCurrentDatabase filepath:=strDbName objaccess.Visible = True 'Retornasai: 'HABILITA A CONDIÇÃO DE ERRO DE ENDEREÇO DoCmd.Quit 'FECHA O "ABRIR SISTEMA" 'Exit Sub 'HABILITA A CONDIÇÃO DE ERRO DE ENDEREÇO 'Sai: 'HABILITA A CONDIÇÃO DE ERRO DE ENDEREÇO ' MsgBox "OCORREU ALGUM ERRO. PROCURE O ADMINISTRADOR DO SISTEMA!" 'HABILITA A CONDIÇÃO DE ERRO DE ENDEREÇO 'Resume Retornasai 'HABILITA A CONDIÇÃO DE ERRO DE ENDEREÇO End Function '------------------------------------------------------------------- Function ChangeProperty(strPropName As String, varPropType As Variant, varPropValue As Variant) As Integer Dim dbs As Object, prp As Variant Const conPropNotFoundError = 3270 Set dbs = CurrentDb On Error GoTo Change_Err dbs.Properties(strPropName) = varPropValue ChangeProperty = True Change_Bye: Exit Function Change_Err: If Err = conPropNotFoundError Then ' Propriedade não encontrada. Set prp = dbs.CreateProperty(strPropName, _ varPropType, varPropValue) dbs.Properties.Append prp Resume Next Else ' Erro desconhecido. ChangeProperty = False Resume Change_Bye End If End Function
  2. Boa tarde Estou com um Banco de Dados em Acces de uso em rede para multi-usuários com definições de acesso para cada tipo de usuário. O que fiz foi o seguinte: Dividi em duas bases, onde o que fica para o uso está com tabelas vinculadas do Banco Principal, que está escondido em outro local da rede. Coloquei uma senha para acesso ao banco de dados e um formulário de entrada (definido nas opções do banco como formulário de exibição) que em função de uma senha individual dá acesso à difentes formulários em função de seu perfil. Ao passar pelo formulário de entrada automaticamente a função Shift+Enter é desabilitada e só é habilitada quando é clicado em um local da tela que somente eu sei onde fica. Entretanto, percebo que mesmo com a techa Shift+Enter desabilitada, é possível abrir um novo Banco e através dele copiar as tabelas, fazer qualquer alteração e voltar com ela modificada em sua estrutura ou dados para o meu Banco de origem. Como posso bloquer a cópia de tabelas do meu Banco para um outro Banco? Tentei usar uma autoexec com SendKeys enviando a senha do Banco para que não fosse necessário a sua digitação e somente eu a pudesse conhecer. Mas... o SendKeys com a senha só entra depois de acessado o Banco e vai direto para o formulário de acesso individual. Grato
×
×
  • Criar Novo...