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


2 participantes

    Ajuntar função

    scandinavo
    scandinavo
    VIP
    VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1049
    Registrado : 11/11/2009

    Ajuntar  função Empty Ajuntar função

    Mensagem  scandinavo 25/11/2009, 14:52

    Tenho 3 função em um formulario queria ajuntar tudo em uma só, no evento ao abrir sera que é possivel. Hoje elas estão assim.

    ao abrir
    Private Sub Form_Open(Cancel As Integer)
    DoCmd.SetWarnings False
    DoCmd.OpenQuery "VENCIMENTO1" 'cria a tabela licença com os numeros estraidos da chave sem as barras
    DoCmd.OpenQuery "TRANSFORMA DATA1" 'cria a tabela Data Limite a partir da tabela licença adicionando as barras na data
    DoCmd.SetWarnings True
    DoCmd.Requery
    DoCmd.OpenForm "MENU PRINCIPAL"
    End Sub

    ao carregar
    Private Sub Form_Load()
    If Me.txtData >= Me.ÚltimoDeDataAcesso = True Then 'confere se a data do sistema é maior que o ultimo acesso
    DoCmd.OpenForm "MENU PRINCIPAL"
    Call update_Utilizador_que_acedeu 'grava quem acessou o programa
    Exit Sub
    Else
    If Me.txtData < Me.ÚltimoDeDataAcesso Then
    MsgBox "A data do sistema foi alterada", , "Aviso"
    MsgBox "Restaure a data do sistema,e REINICIE O PROGRAMA", , "Tentativa de violação"
    DoCmd.Quit
    End If
    End If
    End Sub

    ao ativar
    Private Sub Form_Activate()
    Dim lngDias As Long
    Dim DataMax As Date
    'cofere se a chave inserida é uma chave valida
    If Not IsDate(DLookup("ÚltimoDeJUNTA", "DATA LIMITE II", "ÚltimoDeJUNTA")) Then
    MsgBox "Você não possui uma chave válida !"
    DoCmd.CancelEvent

    DoCmd.OpenForm "LICENÇA"

    End If
    'confere a validade da licença
    DataMax = Nz(DLookup("ÚltimoDeJUNTA", "DATA LIMITE II", "ÚltimoDeJUNTA"), 0)
    lngDias = DateDiff("d", Date, DataMax)
    If lngDias <= 5 Then
    If lngDias <= 0 Then

    MsgBox "Chegamos ao dia máximo de usabilidade do sistema!", vbExclamation

    DoCmd.OpenForm "LICENÇA"
    DoCmd.Close acForm, "MENU PRINCIPAL"
    Else
    MsgBox "Falta(m) " & lngDias & " dia(s) para expirar o sistema! Registre-o!", vbExclamation

    End If
    End If
    DoCmd.SetWarnings False
    End Sub


    Esta disponivel neste link
    http://www.esnips.com/doc/5470193b-0f81-4a95-becf-eff23934ac5a/EXEMPLO-CHAVE-DE-VENCIMENTO--IV
    Desde ja agadeço pela atenção.
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8449
    Registrado : 05/11/2009

    Ajuntar  função Empty Re: Ajuntar função

    Mensagem  Alexandre Neves 25/11/2009, 17:18

    Boa tarde,

    Pode mas tem de hierarquizar o que pretende, pois ao abrir manda abrir o formulário MENU PRINCIPAL, ao carregar apenas abre o referido formulário sob condição, ao activar valida uma chave e a caducidade da mesma.

    Faça um esquema hierarquizado do que o programa deve fazer e depois passe a código.
    scandinavo
    scandinavo
    VIP
    VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1049
    Registrado : 11/11/2009

    Ajuntar  função Empty Re: Ajuntar função

    Mensagem  scandinavo 26/11/2009, 14:34

    teria que ser assim a sequencia de checagem.
    1 criar as tabelas
    Private Sub Form_Open(Cancel As Integer)
    DoCmd.SetWarnings False
    DoCmd.OpenQuery "VENCIMENTO1" 'cria a tabela licença com os numeros estraidos da chave sem as barras
    DoCmd.OpenQuery "TRANSFORMA DATA1" 'cria a tabela Data Limite a partir da tabela licença adicionando as barras na data
    DoCmd.SetWarnings True
    DoCmd.Requery

    End Sub
    2 conferir se a chave é valida e o tempo de validade
    Private Sub Form_Activate()
    Dim lngDias As Long
    Dim DataMax As Date
    'cofere se a chave inserida é uma chave valida
    If Not IsDate(DLookup("ÚltimoDeJUNTA", "DATA LIMITE II", "ÚltimoDeJUNTA")) Then
    MsgBox "Você não possui uma chave válida !"
    DoCmd.CancelEvent

    DoCmd.OpenForm "LICENÇA"
    DoCmd.Close acForm, "MENU PRINCIPAL"
    End If
    'confere a validade da licença
    DataMax = Nz(DLookup("ÚltimoDeJUNTA", "DATA LIMITE II", "ÚltimoDeJUNTA"), 0)
    lngDias = DateDiff("d", Date, DataMax)
    If lngDias <= 5 Then
    If lngDias <= 0 Then

    MsgBox "Chegamos ao dia máximo de usabilidade do sistema!", vbExclamation

    DoCmd.OpenForm "LICENÇA"
    DoCmd.Close acForm, "MENU PRINCIPAL"
    Else
    MsgBox "Falta(m) " & lngDias & " dia(s) para expirar o sistema! Registre-o!", vbExclamation

    End If
    End If
    DoCmd.SetWarnings False
    End Sub

    3 se tiver tudo ok abrir o formulario

    Private Sub Form_Load()
    If Me.txtData >= Me.ÚltimoDeDataAcesso = True Then 'confere se a data do sistema é maior que o ultimo acesso
    DoCmd.OpenForm "MENU PRINCIPAL"
    Call update_Utilizador_que_acedeu 'grava quem acessou o programa
    Exit Sub
    Else
    If Me.txtData < Me.ÚltimoDeDataAcesso Then
    MsgBox "A data do sistema foi alterada", , "Aviso"
    MsgBox "Restaure a data do sistema,e REINICIE O PROGRAMA", , "Tentativa de violação"
    DoCmd.Quit
    End If
    End If
    End Sub
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8449
    Registrado : 05/11/2009

    Ajuntar  função Empty Re: Ajuntar função

    Mensagem  Alexandre Neves 26/11/2009, 17:35

    Boa tarde,

    A sequência que falei foi para evitar que o código não execute o que não quer. Pela sequência apresentada, o código executa as consultas Vencimento1 e Transforma data1 mesmo que o utilizador não possua uma chave válida. É isso que quer? Você é que sabe!

    Experimente assim:

    Dim lngDias As Long
    Dim DataMax As Date
    DoCmd.SetWarnings False
    DoCmd.OpenQuery "VENCIMENTO1" 'cria a tabela licença com os numeros estraidos da chave sem as barras
    DoCmd.OpenQuery "TRANSFORMA DATA1" 'cria a tabela Data Limite a partir da tabela licença adicionando as barras na data
    DoCmd.Requery
    'cofere se a chave inserida é uma chave valida
    If Not IsDate(DLookup("ÚltimoDeJUNTA", "DATA LIMITE II", "ÚltimoDeJUNTA")) Then
    MsgBox "Você não possui uma chave válida !"
    DoCmd.CancelEvent
    DoCmd.OpenForm "LICENÇA"
    DoCmd.Close acForm, "MENU PRINCIPAL"
    End If
    'confere a validade da licença
    DataMax = Nz(DLookup("ÚltimoDeJUNTA", "DATA LIMITE II", "ÚltimoDeJUNTA"), 0)
    lngDias = DateDiff("d", Date, DataMax)
    If lngDias <= 5 Then
    If lngDias <= 0 Then

    MsgBox "Chegamos ao dia máximo de usabilidade do sistema!", vbExclamation

    DoCmd.OpenForm "LICENÇA"
    DoCmd.Close acForm, "MENU PRINCIPAL"
    Else
    MsgBox "Falta(m) " & lngDias & " dia(s) para expirar o sistema! Registre-o!", vbExclamation

    End If
    End If

    If Me.txtData >= Me.ÚltimoDeDataAcesso = True Then 'confere se a data do sistema é maior que o ultimo acesso
    DoCmd.OpenForm "MENU PRINCIPAL"
    Call update_Utilizador_que_acedeu 'grava quem acessou o programa
    Exit Sub
    Else
    If Me.txtData < Me.ÚltimoDeDataAcesso Then
    MsgBox "A data do sistema foi alterada", , "Aviso"
    MsgBox "Restaure a data do sistema,e REINICIE O PROGRAMA", , "Tentativa de violação"
    DoCmd.Quit
    End If
    End If
    DoCmd.SetWarnings True
    End Sub
    scandinavo
    scandinavo
    VIP
    VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1049
    Registrado : 11/11/2009

    Ajuntar  função Empty Re: Ajuntar função

    Mensagem  scandinavo 27/11/2009, 20:46

    Boa tarde Alexandre funcionou.
    Só uma explicação as consultas são do tipo criar tabela,e as checagem de validade é feito nesta tabelas por isso que elas tem que ser criadas primeiro , depois estas tabelas elas sao deletadas .

    Obrigado pela ajuda.

    Conteúdo patrocinado


    Ajuntar  função Empty Re: Ajuntar função

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 19/4/2024, 05:07