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]EXECUTAR VÁRIAS EXPRESSÕES SQL ARMAZENADAS EM UMA MESMA VARIÁVEL

    avatar
    guesserlucas
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2
    Registrado : 27/02/2023

    [Resolvido]EXECUTAR VÁRIAS EXPRESSÕES SQL ARMAZENADAS EM UMA MESMA VARIÁVEL Empty [Resolvido]EXECUTAR VÁRIAS EXPRESSÕES SQL ARMAZENADAS EM UMA MESMA VARIÁVEL

    Mensagem  guesserlucas Seg 27 Fev 2023, 13:50

    Prezados, boa tarde!

    Consulto faz algum tempo o fórum, me ajudou muitas e muitas vezes, e hoje é a primeira vez que necessito fazer um questionamento (sempre encontrava algum caso similar para usar como exemplo e resolvia meu problema).

    Criei um evento que geram vários INSERTS E UPDATES de tabela, para possibilitar o estorno cada update vai gerando um log com o código respectivo para o estorno se necessário, esse código fica armazenado na tabela que são incluídos os dados para o lançamento.

    [Resolvido]EXECUTAR VÁRIAS EXPRESSÕES SQL ARMAZENADAS EM UMA MESMA VARIÁVEL Captur10

    Acima segue um exemplo de como ficou armazenado esse log de estorno.

    Porém, não consigo usar esses códigos armazenados para realizar os lançamentos de estorno, pois como tratam-se de várias expressões o DoCmd.RunSQL ou similares não executam. Alguém tem alguma sugestão?

    Desde já agradeço!

    [Resolvido]EXECUTAR VÁRIAS EXPRESSÕES SQL ARMAZENADAS EM UMA MESMA VARIÁVEL Erro210
    Código com problema:

    Private Sub Comando83_Click()

    Dim cod_estorno As Variant
    Dim cod_sql As Variant
    Dim leng As String


    cod_estorno = Me.[cod_estorno]
    leng = Len(cod_estorno) - 2
    cod_sql = Mid(cod_estorno, 2, leng)

    DoCmd.RunSQL cod_sql


    avatar
    guesserlucas
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2
    Registrado : 27/02/2023

    [Resolvido]EXECUTAR VÁRIAS EXPRESSÕES SQL ARMAZENADAS EM UMA MESMA VARIÁVEL Empty Resolvido

    Mensagem  guesserlucas Seg 27 Fev 2023, 19:47

    Acabei conseguindo resolver sozinho a questão, busquei em alguns fóruns gringos a opção Split e UBound, segue o código como ficou, testado e funcionando:

    Private Sub Comando83_Click()

    Dim cod_estorno As Variant
    Dim cod_sql As Variant
    Dim leng As String
    Dim codsqlexec() As String
    Dim Quantidade As String
    Dim contagem As String
    Dim cod_sql_exec As String

    contagem = 0
    cod_estorno = Me.[cod_estorno]

    Dim MSG99, Style, Title, Help, Ctxt, Response, MyString
    MSG99 = "CUIDADO! Realizar o estorno?! este procedimento não poderá ser desfeito!"    ' Define message.
    Style = vbOKCancel + vbCritical + vbDefaultButton2    ' Define buttons.
    Title = "Aviso"    ' Define title.
    Help = "DEMO.HLP"    ' Define Help file.
    Ctxt = 1000    ' Define topic context.
           ' Display message.
    Response = MsgBox(MSG99, Style, Title, Help, Ctxt)

    If Response <> vbOK Then

    MsgBox ("Ação cancelada! Estorno não realizado.")

    End

    Else: GoTo continuacao_estorno

    End If


    continuacao_estorno:

    If Me.[estornado?] <> Empty Then

    MsgBox "ERRO!!! Documento já estornado anteriormente!"
    End

    ElseIf IsNull(Me.[cod_estorno]) Then

    MsgBox "ERRO!!! Sem dados para estorno. Documento não lançado ou lançado antes da implantação da aplicação de estorno!"
    End


    Else

    leng = Len(cod_estorno) - 1
    cod_sql = Mid(cod_estorno, 2, leng)

    codsqlexec() = Split(cod_sql, ";", , 1)

    Quantidade = UBound(codsqlexec)

    DoCmd.SetWarnings False

    Do Until contagem = Quantidade + 1

    DoCmd.RunSQL codsqlexec(contagem)

    contagem = contagem + 1
    Loop

    DoCmd.SetWarnings True

    Me.[estornado?] = "s"

    MsgBox "Documento estornado com Sucesso!"

    End If

    End

    End Sub
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]EXECUTAR VÁRIAS EXPRESSÕES SQL ARMAZENADAS EM UMA MESMA VARIÁVEL Empty Re: [Resolvido]EXECUTAR VÁRIAS EXPRESSÕES SQL ARMAZENADAS EM UMA MESMA VARIÁVEL

    Mensagem  Alexandre Neves Ter 28 Fev 2023, 15:07

    Boa tarde e bem-vindo ao fórum
    Leia e respeite as regras.
    - Não escrever em maiúsculas, que significa gritar
    - Respeite o título, não o utilize para mensagem


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo

    Conteúdo patrocinado


    [Resolvido]EXECUTAR VÁRIAS EXPRESSÕES SQL ARMAZENADAS EM UMA MESMA VARIÁVEL Empty Re: [Resolvido]EXECUTAR VÁRIAS EXPRESSÕES SQL ARMAZENADAS EM UMA MESMA VARIÁVEL

    Mensagem  Conteúdo patrocinado


      Data/hora atual: Ter 05 Mar 2024, 01:35