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

    [Resolvido]Condicionante para atualização de base de dados vinculada

    4nderson
    4nderson
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Anónimo
    Mensagens : 62
    Registrado : 25/03/2022

    [Resolvido]Condicionante para atualização de base de dados vinculada Empty [Resolvido]Condicionante para atualização de base de dados vinculada

    Mensagem  4nderson 27/4/2022, 04:17

    Saudações, nobres guerreiros!

    O problema é o seguinte:
    Meu bd tem 2 tabelas vinculadas (excel) – vamos chama-las aqui de TABELA A e TABELA B – e ambas possuem as seguintes características:
    - Elas são (ou melhor, precisão ser) balanços de meses diferentes;
    - Os nomes dos arquivos de origem (.xlsx) seguem um padrão: Balanço-01-2022, Balanço-02-2022, Balanço-03-2022 e etc;
    - Cada uma delas é atualizada por um botão diferente, para isso usei uma dica muito legal do mestre ahteixeira (vide aqui).

    Enfim, eu preciso carregar essas duas tabelas para poder compará-las. No entanto, essa comparação precisa obedecer duas condicionantes:
    1 - A TABELA B precisa ser, obrigatoriamente, de um mês posterior a TABELA A;
    2 – A diferença entre as duas tabelas NÃO pode ser superior a 2 meses.

    Pergunta:
    É possível colocar no botão que atualiza a TABELA B uma função que, antes de carregá-la, verifique, através do nome do arquivo, se ela obedece às condicionantes acima?
    Caso sim, o carregamento continuaria; caso contrário, o carregamento seria cancelado e uma mensagem seria exibida.

    Segue anexo um pequeno bd simulando a situação.

    Alguém pode me dar uma luz?

    Desde já, muito obrigado.
    Anexos
    [Resolvido]Condicionante para atualização de base de dados vinculada AttachmentTesteTabelaVinculada.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (108 Kb) Baixado 7 vez(es)
    4nderson
    4nderson
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Anónimo
    Mensagens : 62
    Registrado : 25/03/2022

    [Resolvido]Condicionante para atualização de base de dados vinculada Empty Re: [Resolvido]Condicionante para atualização de base de dados vinculada

    Mensagem  4nderson 28/4/2022, 12:26

    Ninguém?!

    Acho que dessa vez peguei pesado demais.  [Resolvido]Condicionante para atualização de base de dados vinculada 1f605
    DamascenoJr.
    DamascenoJr.
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3707
    Registrado : 22/11/2016

    [Resolvido]Condicionante para atualização de base de dados vinculada Empty Re: [Resolvido]Condicionante para atualização de base de dados vinculada

    Mensagem  DamascenoJr. 29/4/2022, 02:36

    Na verdade, quando o texto é longo dá preguiça de ler e se envolver rsrs. scratch

    Crie essa função no módulo select B
    Código:
    Private Function fncPodePassar(ByVal strTabelaB As String) As Boolean

        Dim strTabelaA As String
        Dim dtDataA As Date
        Dim dtDataB As Date
       
        strTabelaA = fncCaminhoTabelaLigada("Tabela A")
        strTabelaA = Split(strTabelaA, "\")(UBound(Split(strTabelaA, "\")))
        dtDataA = DateSerial(Mid(strTabelaA, 12, 4), Mid(strTabelaA, 9, 2), 1)
       
        strTabelaB = Split(strTabelaB, "\")(UBound(Split(strTabelaB, "\")))
        dtDataB = DateSerial(Mid(strTabelaB, 12, 4), Mid(strTabelaB, 9, 2), 1)
       
        If Eval(DateDiff("m", dtDataA, dtDataB) & " between 1 and 2") Then
            fncPodePassar = True
        Else
            Call MsgBox("Opa! Essa não, meu patrão.")
            fncPodePassar = False
        End If

    End Function

    E ainda no módulo citado, antes da linha
    Código:
    strTable = "TABELA B"

    Coloque
    Código:
    If Not fncPodePassar(strPathFile) Then Exit Function


    .................................................................................
    Ajude-se a ser ajudado, anexe seu projeto.
    Sempre tente entender o código,
    não somente copie e cole.
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.

    4nderson gosta desta mensagem

    4nderson
    4nderson
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Anónimo
    Mensagens : 62
    Registrado : 25/03/2022

    [Resolvido]Condicionante para atualização de base de dados vinculada Empty Re: [Resolvido]Condicionante para atualização de base de dados vinculada

    Mensagem  4nderson 29/4/2022, 03:00

    Rapaz...

    Confesso que achei que ninguém ia desenrolar essa.
    Rolou até aposta aqui!

    Meu caro DamascenoJr, você é fera!!

    Muito obrigado!


    P.S: "Opa! Essa não, meu patrão." foi hilário! [Resolvido]Condicionante para atualização de base de dados vinculada 1f602
    DamascenoJr.
    DamascenoJr.
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3707
    Registrado : 22/11/2016

    [Resolvido]Condicionante para atualização de base de dados vinculada Empty Re: [Resolvido]Condicionante para atualização de base de dados vinculada

    Mensagem  DamascenoJr. 29/4/2022, 03:05

    O fórum agradece o retorno. Sucesso.

    P.S: [Resolvido]Condicionante para atualização de base de dados vinculada 1f602 [Resolvido]Condicionante para atualização de base de dados vinculada 1f602 [Resolvido]Condicionante para atualização de base de dados vinculada 1f602


    .................................................................................
    Ajude-se a ser ajudado, anexe seu projeto.
    Sempre tente entender o código,
    não somente copie e cole.
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.

      Data/hora atual: 1/10/2022, 16:52