MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access

    [Resolvido]Inserir e verificar quantidade de Acessos

    crysostomo
    crysostomo
    Maximo VIP
    Maximo VIP

    Respeito às regras : Respeito às Regras 50%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1715
    Registrado : 23/01/2018

    [Resolvido]Inserir e verificar quantidade de Acessos Empty [Resolvido]Inserir e verificar quantidade de Acessos

    Mensagem  crysostomo 15/7/2019, 23:36

    Código:
    Private Sub Comando1_Click()
    Static iCont As Integer
    iCont = iCont + 1
    Dim db      As DAO.Database
    Dim sSQL    As String
      Set db = CurrentDb
            sSQL = "INSERT INTO tblPessoas"
            'CAMPOS----------------------------------------
            sSQL = sSQL & "("
            sSQL = sSQL & "  acessos"
         
            sSQL = sSQL & ")"
            'VALORES -------------------------------------
            sSQL = sSQL & " VALUES"
            sSQL = sSQL & "("
            sSQL = sSQL & "  '" & Trim(iCont) & "'"
            sSQL = sSQL & ")"
            db.Execute sSQL
         
            Me.Refresh
      If DCount(" acessos", "tblPessoas") < 3 Then
          DoCmd.OpenForm "Formulário2", , acNormal
      Else
          MsgBox " acaba aqui"
      End If
    End Sub



    Última edição por crysostomo em 16/7/2019, 15:46, editado 2 vez(es)


    .................................................................................
    Uma mão ajuda a outra.
    Feliz aquele que transfere o que sabe e aprende o que ensina.
    Alexandre Fim
    Alexandre Fim
    Developer
    Developer

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1455
    Registrado : 13/12/2016

    [Resolvido]Inserir e verificar quantidade de Acessos Empty Re: [Resolvido]Inserir e verificar quantidade de Acessos

    Mensagem  Alexandre Fim 16/7/2019, 12:17

    Bom dia

    Troque o DLookup pelo DCount

    If DCount(" acessos", "tblPessoas", "= '" & Me.Texto2 & "'") > 3 Then ...



    Boa sorte
    crysostomo
    crysostomo
    Maximo VIP
    Maximo VIP

    Respeito às regras : Respeito às Regras 50%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1715
    Registrado : 23/01/2018

    [Resolvido]Inserir e verificar quantidade de Acessos Empty Re: [Resolvido]Inserir e verificar quantidade de Acessos

    Mensagem  crysostomo 16/7/2019, 15:29

    Alexandre bom dia . mudei pouca coisa aqui. mas mais clareza.
    como fazer com que ele grave a contagem na mesma linha para que o DCount verifique se realmente foram 3 cliques registrados?
    Código:
    Private Sub Comando1_Click()
    Static iCont As Integer
    iCont = iCont + 1
    Dim db      As DAO.Database
    Dim sSQL    As String
    Set db = CurrentDb
            sSQL = "INSERT INTO controleDeAcessos"
            'CAMPOS----------------------------------------
            sSQL = sSQL & "("
            sSQL = sSQL & "  quntidadeDeAcessos"
            sSQL = sSQL & ")"
            'VALORES -------------------------------------
            sSQL = sSQL & " VALUES"
            sSQL = sSQL & "("
            sSQL = sSQL & "  '" & Trim(iCont) & "'"
            sSQL = sSQL & ")"
            db.Execute sSQL
           Me.Refresh
        
    If DCount(" acessos", "tblPessoas") > 3 Then
           DoCmd.OpenForm "Formulário2", , acNormal
           Else
           DoCmd.Quit
        End If

    Como você pode ver , ele está gravando em outra linha, , ai não tem como fazer a verificação.
    quero validar o sistema, pois tentei de outras forma como pegar a data da internet/pc e inserir na tabela para contar em outra data determinada mas não obtive sucesso.
    [Resolvido]Inserir e verificar quantidade de Acessos Sem_tz40


    .................................................................................
    Uma mão ajuda a outra.
    Feliz aquele que transfere o que sabe e aprende o que ensina.
    Alexandre Fim
    Alexandre Fim
    Developer
    Developer

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1455
    Registrado : 13/12/2016

    [Resolvido]Inserir e verificar quantidade de Acessos Empty Re: [Resolvido]Inserir e verificar quantidade de Acessos

    Mensagem  Alexandre Fim 16/7/2019, 17:21

    Crysostomo,

    Ele está gravando na outra linha pq o código esta executando uma instrução de inserção (INSERT INTO ...) de dados.
    Qual a finalidade deste controle de acesso?
    Nas mensagens anteriores, vc mencionou que quer disponibilizar uma versão de demonstração...é isso?
    Se SIM, este controle deve ser feito de forma mais adequada, por periodo de data (30 dias ou mais...etc.)

    att,

    []'s







    crysostomo
    crysostomo
    Maximo VIP
    Maximo VIP

    Respeito às regras : Respeito às Regras 50%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1715
    Registrado : 23/01/2018

    [Resolvido]Inserir e verificar quantidade de Acessos Empty Re: [Resolvido]Inserir e verificar quantidade de Acessos

    Mensagem  crysostomo 16/7/2019, 21:44

    Alexandre boa tarde, desculpa pelo erro , mais um erro meu ,.
    A finalidade é colocar um sistema demostrativo


    .................................................................................
    Uma mão ajuda a outra.
    Feliz aquele que transfere o que sabe e aprende o que ensina.
    Alexandre Fim
    Alexandre Fim
    Developer
    Developer

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1455
    Registrado : 13/12/2016

    [Resolvido]Inserir e verificar quantidade de Acessos Empty Re: [Resolvido]Inserir e verificar quantidade de Acessos

    Mensagem  Alexandre Fim 17/7/2019, 06:20

    Bom dia Crysostomo,

    Peguei um exemplo que eu tinha aqui e criei uma tela de login e fiz algumas adaptações no código.
    Acredito que irá te ajudar.

    Usuário: admin
    Senha: 123

    OBS: Leia o arquivo LEIAME.pdf (as imagens do pdf estão diferentes, mas as rotinas se aplicam ao sistema)

    Boa sorte

    Anexos
    [Resolvido]Inserir e verificar quantidade de Acessos AttachmentSysDemo.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (345 Kb) Baixado 32 vez(es)
    Alexandre Fim
    Alexandre Fim
    Developer
    Developer

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1455
    Registrado : 13/12/2016

    [Resolvido]Inserir e verificar quantidade de Acessos Empty Re: [Resolvido]Inserir e verificar quantidade de Acessos

    Mensagem  Alexandre Fim 17/7/2019, 14:27

    E ai Crysostomo?
    Conseguiu testar?

    Qual a versão do teu Access?
    crysostomo
    crysostomo
    Maximo VIP
    Maximo VIP

    Respeito às regras : Respeito às Regras 50%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1715
    Registrado : 23/01/2018

    [Resolvido]Inserir e verificar quantidade de Acessos Empty Re: [Resolvido]Inserir e verificar quantidade de Acessos

    Mensagem  crysostomo 17/7/2019, 17:22

    Boa Alexandre , estava com outro logica sobre isso , mas essa é o que realmente esperava , tentei criar essas lógica tantas vezes que ate tinha desistido disso, ai por isso fui pela contagem de cliques, mas esse exemplo EXCELENTE , vou tratar alguns erros aqui, e ate adapta-lo em outros sistemas  meus, pois ja tem registro de entrada e saida,  qualquer coisa te retorno.
    Obg mesmo que exemplo top
    meu é Access 2007
    Sem querer esta abusando da sua boa vontade Ja os clicks vou pedir essa ajuda para inserir direto na tabela pois se ficar na memoria volta as tentativas de novo. Se não der não tem problema, esse esta do gente que tentei fazer meses essa logica ,rs.
    Uma duvida se eu colocar ele em rede local 4 pcs, mas a base dele vai está em 1 so pc  , ele irá abrir? Tipo a base dele fica no pc A, mas os atalho do sistema fica nos pc B,C,D....


    .................................................................................
    Uma mão ajuda a outra.
    Feliz aquele que transfere o que sabe e aprende o que ensina.
    Alexandre Fim
    Alexandre Fim
    Developer
    Developer

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1455
    Registrado : 13/12/2016

    [Resolvido]Inserir e verificar quantidade de Acessos Empty Re: [Resolvido]Inserir e verificar quantidade de Acessos

    Mensagem  Alexandre Fim 17/7/2019, 18:18

    Crysostomo,

    Sim, é apenas um exemplo e ai vc ajusta conforme sua necessidade.


    ---------------------------------------------------------------------------------------------------------------------------------------------------------------
    "Uma duvida se eu colocar ele em rede local 4 pcs, mas a base dele vai está em 1 so pc  , ele irá abrir?
    Tipo a base dele fica no pc A, mas os atalho do sistema fica nos pc B,C,D...."

    ---------------------------------------------------------------------------------------------------------------------------------------------------------------

    Sim, mas acredito que vai precisar de alguns ajustes.
    A maneira mais correta e segura(não tão segura...rsss) é colocar o BACK-END em uma máquina como 'servidor' e o FRONT-END com as tabelas vinculadas do BE nas máquinas dos usuários, ou seja, cada máquina deve ter o sistema instalado

    Não utilize atalho, pois as máquinas executariam o mesmo sistema simultaneamente, gerando lentidão e travamentos, conforme abaixo:



    Compartilhar um banco de dados dividido
    Esta é uma boa opção se você não tem um site do SharePoint ou um servidor de banco de dados. Você pode compartilhar um banco de dados dividido em uma rede de área local (LAN). Quando divide um banco de dados, você o reorganiza em dois arquivos — um banco de dados back-end que contém as tabelas de dados e um banco de dados front-end que contém todos os demais objetos de banco de dados, como consultas, formulários e relatórios. Cada usuário interage com os dados usando uma cópia local do banco de dados front-end.

    Os benefícios da divisão de um banco de dados incluem o seguinte:

    Melhor desempenho Somente os dados são compartilhados através da rede, não as tabelas, consultas, formulários, relatórios, macros e módulos.

    Maior disponibilidade As transações de banco de dados, como edições de registro, são concluídas mais rapidamente.

    Segura aprimorada Os usuários acessam o banco de dados back-end por meio de tabelas vinculadas; é menos provável que intrusos possam obter acesso não autorizado aos dados por meio do banco de dados front-end.

    Maior confiabilidade Se um usuário encontrar um problema e o banco de dados fechar inesperadamente, qualquer corrupção de arquivo de banco de dados é geralmente limitada à cópia do banco de dados front-end que o usuário abriu.

    Ambiente de desenvolvimento flexível Cada usuário pode desenvolver, de forma independente, consultas, formulários, relatórios e outros objetos de banco de dados sem afetar outros usuários. Da mesma forma, você pode desenvolver e distribuir uma nova versão do banco de dados front-end sem atrapalhar o acesso aos dados armazenados no banco de dados back-end.



    Fonte: support.office.com/pt-br/article/maneiras-de-compartilhar-um-banco-de-dados-da-%C3%A1rea-de-trabalho-do-access-03822632-da43-4d8f-ba2a-68da245a0446


    Boa sorte !!!


    .................................................................................
    - Procure sempre anexar seu projeto para análise do problema/dúvida.
    - Ao copiar/colar um código VBA, procure entender seu funcionamento.
    - Se o problema foi resolvido, não se esqueça de marcar o tópico como RESOLVIDO.
    crysostomo
    crysostomo
    Maximo VIP
    Maximo VIP

    Respeito às regras : Respeito às Regras 50%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1715
    Registrado : 23/01/2018

    [Resolvido]Inserir e verificar quantidade de Acessos Empty Re: [Resolvido]Inserir e verificar quantidade de Acessos

    Mensagem  crysostomo 17/7/2019, 18:37

    exelente.


    .................................................................................
    Uma mão ajuda a outra.
    Feliz aquele que transfere o que sabe e aprende o que ensina.
    Mylton
    Mylton
    Super Avançado
    Super Avançado

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 747
    Registrado : 23/08/2010

    [Resolvido]Inserir e verificar quantidade de Acessos Empty Re: [Resolvido]Inserir e verificar quantidade de Acessos

    Mensagem  Mylton 26/7/2019, 16:18

    Boa tarde Alexandre.
    Sabemos que quando formatamos o HD este troca de nome e número.
    Co.o poderíamos superar essa dificuldade nesse seu exemplo?
    Pois a pessoa já adquiriu, teve um necessidade de formatar a máquina, como ele prosseguir?
    Obrigado.
    Alexandre Fim
    Alexandre Fim
    Developer
    Developer

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1455
    Registrado : 13/12/2016

    [Resolvido]Inserir e verificar quantidade de Acessos Empty Re: [Resolvido]Inserir e verificar quantidade de Acessos

    Mensagem  Alexandre Fim 26/7/2019, 16:30

    Ola Mylton,

    Este exemplo seria um controle de uso de uma versão DEMO que vc disponibiliza para o usuário testar.
    Se a máquina que ele estiver usando for formatada, ai não tem o que fazer...teria que fornecer uma nova versão DEMO pra ele testar, onde o sistema verifica qual o usuário da máquina e grava novamente, como se fosse a 1a. vez.

    Estamos falando de front-end e back-end !
    O back-end precisa estar num "servidor", na rede, e o front-end na máquina do usuário.
    Se a maquina do usuário for formatada, não vejo problema, pois o back-end está salvo.

    Seria isso?

    Att,


    .................................................................................
    - Procure sempre anexar seu projeto para análise do problema/dúvida.
    - Ao copiar/colar um código VBA, procure entender seu funcionamento.
    - Se o problema foi resolvido, não se esqueça de marcar o tópico como RESOLVIDO.
    crysostomo
    crysostomo
    Maximo VIP
    Maximo VIP

    Respeito às regras : Respeito às Regras 50%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1715
    Registrado : 23/01/2018

    [Resolvido]Inserir e verificar quantidade de Acessos Empty Re: [Resolvido]Inserir e verificar quantidade de Acessos

    Mensagem  crysostomo 26/7/2019, 16:41

    o que podemos pegar é o numero da placa de rede que não muda, mas eu não sei como pega


    .................................................................................
    Uma mão ajuda a outra.
    Feliz aquele que transfere o que sabe e aprende o que ensina.
    Alexandre Fim
    Alexandre Fim
    Developer
    Developer

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1455
    Registrado : 13/12/2016

    [Resolvido]Inserir e verificar quantidade de Acessos Empty Re: [Resolvido]Inserir e verificar quantidade de Acessos

    Mensagem  Alexandre Fim 26/7/2019, 17:59

    Só complementando ai o comentário do Crysostomo, pesquisei no Google e achei esta função que captura o no. da placa de rede (MAC ADDRESS).

    Créditos: Usuário ‘Andreas Killer’ no fórum do MSDN.

    Segue função:

    Código:


    Function MAC_ADDRESS() As String
    Dim cfg As Variant

        For Each cfg In GetObject("winmgmts://.").ExecQuery("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled=True")
            If Not IsNull(cfg.IPAddress) Then
                MAC_ADDRESS = cfg.MACAddress
                Exit For
            End If
        Next
    End Function


    Boa sorte a todos.

    Abraço



    .................................................................................
    - Procure sempre anexar seu projeto para análise do problema/dúvida.
    - Ao copiar/colar um código VBA, procure entender seu funcionamento.
    - Se o problema foi resolvido, não se esqueça de marcar o tópico como RESOLVIDO.
    crysostomo
    crysostomo
    Maximo VIP
    Maximo VIP

    Respeito às regras : Respeito às Regras 50%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1715
    Registrado : 23/01/2018

    [Resolvido]Inserir e verificar quantidade de Acessos Empty Re: [Resolvido]Inserir e verificar quantidade de Acessos

    Mensagem  crysostomo 26/7/2019, 18:51

    Boa tarde Alexandre ,eu não seu como é essa questão, eu ainda fico perdido em mexer com classe .
    Por onde eu vou pegar essa rede , e inserir na tabela , pois em alguns códigos eu não entendo a funcionalidade , pode me orientar ou dar exemplo..
    Porque eu ainda não tenho muita prática por, sempre aprendendo códigos novos.
    Eu sou bom eu fazer diagrama, mas novos códigos vou indo aprendendo novos códigos.


    .................................................................................
    Uma mão ajuda a outra.
    Feliz aquele que transfere o que sabe e aprende o que ensina.
    Alexandre Fim
    Alexandre Fim
    Developer
    Developer

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1455
    Registrado : 13/12/2016

    [Resolvido]Inserir e verificar quantidade de Acessos Empty Re: [Resolvido]Inserir e verificar quantidade de Acessos

    Mensagem  Alexandre Fim 26/7/2019, 20:44

    Crysostomo,



    " eu ainda fico perdido em mexer com classe ."


    Na verdade, não se trata de "CLASSES" e sim de uma função, que se utiliza de uma biblioteca do Windows para buscar dados, não só da placa de rede, mas de outro componentes do PC.

    Segue exemplo de utilização desta função para gravar dados na tabela:

    Código:


    Function MAC_ADDRESS() As String
    Dim cfg As Variant

        For Each cfg In GetObject("winmgmts://.").ExecQuery("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled=True")
            If Not IsNull(cfg.IPAddress) Then
                MAC_ADDRESS = cfg.MACAddress
                Exit For
            End If
        Next
    End Function


    '==================================================================================================================================='

    Sub Grava()
    Dim sSQL As String
       
        sSQL = "UPDATE [NomeDaTabUsuarios] SET [CampoQueArmazenaOMAC_ADDRES] = '" & MAC_ADDRESS & "'"
        CurrentDB.Execute sSQL

    End Sub



    A função "MAC_ADDRESS" retorna o resultado do tipo "string", que é informado na instrução de "UPDATE"


    Para que você entenda o conceito de CLASSE e POO (Programação Orientada a Objetos), sugiro que você estude o conteúdo do link abaixo, do mestre Macoratti:

    http://www.macoratti.net/vb_class.htm

    Obs.: O conteúdo aborda o uso de classe no Visual Basic, mas que pode ser aplicado no VBA.


    Boa sorte.

    Abraços
























    .................................................................................
    - Procure sempre anexar seu projeto para análise do problema/dúvida.
    - Ao copiar/colar um código VBA, procure entender seu funcionamento.
    - Se o problema foi resolvido, não se esqueça de marcar o tópico como RESOLVIDO.
    Mylton
    Mylton
    Super Avançado
    Super Avançado

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 747
    Registrado : 23/08/2010

    [Resolvido]Inserir e verificar quantidade de Acessos Empty Re: [Resolvido]Inserir e verificar quantidade de Acessos

    Mensagem  Mylton 26/7/2019, 22:40

    Muito obrigado Alexandre.
    ABS.

      Data/hora atual: 16/6/2021, 14:22