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]Querys muito longas

    avatar
    alantb
    Avançado
    Avançado

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 235
    Registrado : 25/07/2017

    [Resolvido]Querys muito longas Empty [Resolvido]Querys muito longas

    Mensagem  alantb 15/12/2020, 14:51

    Olá pessoal, estou tendo dificuldades em quebrar as linhas de um Insert Into e um Updade muito longos. Já tentei vbCrLF, "_", ou combinados, entretanto só dá erro exigindo fim da expressão, caracteres inválidos, e assim por diante. Gostaria que dessem uma olhada. Valeu.!!
    Segue:

    CurrentDb.Execute "Insert into tbAvaliacao(IDConta, TemAgua, TemLuz, TemTelefone, TemInternet, & _"
    TemBanheiro, TemEsgoto, CodMoradia, CodConstrucao, NroPecas, CodProfissao, CodEmpresa, TemCadun, & _
    NroCadUnico, TemBolsa, ValorBolsa,TemAuxilio, ValorAuxilio, TemDoenca, DescDoenca, TemDeficiencia, & _
    DescDeficiencia, TemMedicamento, DescMedicamento, TemBPC, NomeBeneficiarioBPC, Renda, RendaBruta, & _
    RendaPc,Obs) values (" & txtCodResponsavel & ",'" & cxSelAgua & "','" & cxSelLuz & "','" & cxSelTel & "', & _
    '" & cxSelInternet & "','" & cxSelBanheiro & "','" & cxSelEsgoto & "'," & txtCodMoradia & "," & txtCodConstrucao & ", & _
    " & txtNroPecas & "," & txtCodProfissao & "," & txtCodEmpresa & ",'" & txtRendaMensal & "'," & txtRendaBruta & ", & _
    '" & txtRendaperCapita & "','" & txtObs & "')"


    CurrentDb.Execute "UPDATE tbAvaliacao SET TemAgua='" & cxSelAgua & "',TemLuz='" & cxSelLuz & "', _
    TemTelefone='" & cxSelTel & "',TemInternet='" & cxSelInternet & "',TemBanheiro='" & cxSelBanheiro & "',TemEsgoto='" & cxSelEsgoto & "',_
    CodMoradia=" & txtCodMoradia & ",DescMoradia='" & txtDescMoradia & "',CodConstrucao=" & txtCodConstrucao & ",NroPecas=" & _
    & txtNroPecas & ",CodProfissao=" & txtCodProfissao & ",CodEmpresa=" & txtCodEmpresa & ",TemCadun='" & txtTemCaDun & "',NroCadUnico=" & _
    & txtNroCadUnico & ",TemBolsa=" & txtTemBolsa & ",ValorBolsa='" & txtValorBolsa & "',TemAuxilio=" & txtTemAuxilio & ",ValorAuxilio='" & _
    & txtValorAuxilio & "',TemDoenca=" & txtTemDoenca & ",DescDoenca=" & txtDescDoenca & ",TemDeficiencia=" & txtTemDeficiencia & "," & _
    & DescDeficiencia=" & txtDescDeficiencia & ",TemMedicamento=" & txtTemMedicamento & ",DescMedicamento='" & _
    & txtDescMedicamento & "',TemBPC=" & txtTemBPC & ",NomeBeneficiarioBPC='" & txtNomeBeneficiarioBPC & "',Renda='" & txtRendaMensal & "',RendaBruta='"
    & txtRendaBruta & "',RendaPc='" & txtRendaperCapita & "',Obs='" & txtObs & "' WHERE CodAvaliacao=" & Me.txtCodAvaliacao


    ALAN
    Alexandre Fim
    Alexandre Fim
    Developer
    Developer

    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Querys muito longas Empty Re: [Resolvido]Querys muito longas

    Mensagem  Alexandre Fim 15/12/2020, 16:14

    Voce pode utilizar a concatenação de linhas.

    Segue exemplo:
    Código:


    Dim sSQL As String

        sSQL = Empty
        sSQL = sSQL & " INSERT INTO tbAvaliacao"
        sSQL = sSQL & "("
        sSQL = sSQL & " IDConta"
        sSQL = sSQL & ",TemAgua"
        sSQL = sSQL & ",TemLuz"
        sSQL = sSQL & ",TemTelefone"
        sSQL = sSQL & ",TemInternet"
        sSQL = sSQL & ",TemBanheiro"
        sSQL = sSQL & ",TemEsgoto"
        sSQL = sSQL & ",CodMoradia"
        sSQL = sSQL & ",CodConstrucao"
        sSQL = sSQL & ",NroPecas"
        sSQL = sSQL & ",CodProfissao"
        sSQL = sSQL & ",CodEmpresa"
        sSQL = sSQL & ",TemCadun"
        sSQL = sSQL & ",NroCadUnico"
        sSQL = sSQL & ",TemBolsa"
        sSQL = sSQL & ",ValorBolsa"
        sSQL = sSQL & ",TemAuxilio"
        sSQL = sSQL & ",ValorAuxilio"
        sSQL = sSQL & ",TemDoenca"
        sSQL = sSQL & ",DescDoenca"
        sSQL = sSQL & ",TemDeficiencia"
        sSQL = sSQL & ",DescDeficiencia"
        sSQL = sSQL & ",TemMedicamento"
        sSQL = sSQL & ",DescMedicamento"
        sSQL = sSQL & ",TemBPC"
        sSQL = sSQL & ",NomeBeneficiarioBPC"
        sSQL = sSQL & ",Renda"
        sSQL = sSQL & ",RendaBruta"
        sSQL = sSQL & ",RendaPc"
        sSQL = sSQL & ",Obs"
        sSQL = sSQL & ") "
        sSQL = sSQL & " VALUES "
        sSQL = sSQL & "("
        sSQL = sSQL & "  " & txtCodResponsavel & ""
        sSQL = sSQL & ",'" & cxSelAgua & "'"
        sSQL = sSQL & ",'" & cxSelLuz & "'"
        sSQL = sSQL & ",'" & cxSelTel & "'"
        sSQL = sSQL & ",'" & cxSelInternet & "'"
        sSQL = sSQL & ",'" & cxSelBanheiro & "'"
        sSQL = sSQL & ",'" & cxSelEsgoto & "'"
        sSQL = sSQL & "," & txtCodMoradia & ""
        sSQL = sSQL & "," & txtCodConstrucao & ""
        sSQL = sSQL & "," & txtNroPecas & ""
        sSQL = sSQL & "," & txtCodProfissao & ""
        sSQL = sSQL & "," & txtCodEmpresa & ""
        sSQL = sSQL & ",'" & txtRendaMensal & "'"
        sSQL = sSQL & "," & txtRendaBruta & ""
        sSQL = sSQL & ",'" & txtRendaperCapita & "'"
        sSQL = sSQL & ",'" & Trim(txtObs) & "'"
        sSQL = sSQL & ")"
       
        CurrentDb.Execute sSQL


    OBS: Sempre que possível, coloque a VIRGULA na frente do campo da tabela e do campo do formulário.
    Fica mais fácil a visualização e a manutenção.

    Espero ter ajudado

    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.
    avatar
    alantb
    Avançado
    Avançado

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 235
    Registrado : 25/07/2017

    [Resolvido]Querys muito longas Empty Re: [Resolvido]Querys muito longas

    Mensagem  alantb 15/12/2020, 19:55

    Olá Alexandre Fim, a modificação no insert ACHO que deu certo pois não dá erro apontando para essa parte do código. Entretanto também tenho de modificar o UPDATE. Modifiquei semelhante ao que estava no insert, mas só da erro de sintaxe. Fiz vários ajustes no form para que seja compativel com os campos, mas até agora nada. Veja como fiz, inclusive tentei variações e sempre o mesmo erro. Segue:

    sSQL = "UPDATE tbAvaliacao SET "
    sSQL = sSQL & "',TemAgua='" & cxSelAgua
    sSQL = sSQL & "',TemLuz='" & cxSelLuz
    sSQL = sSQL & "',TemTelefone='" & cxSelTel
    sSQL = sSQL & "',TemInternet='" & cxSelInternet
    sSQL = sSQL & "',TemBanheiro='" & cxSelBanheiro
    sSQL = sSQL & "',TemEsgoto='" & cxSelEsgoto
    sSQL = sSQL & ",CodMoradia=" & txtCodMoradia
    sSQL = sSQL & "',DescMoradia='" & txtDescMoradia
    sSQL = sSQL & ",CodConstrucao=" & txtCodConstrucao
    sSQL = sSQL & ",NroPecas=" & txtNroPecas
    sSQL = sSQL & ",CodProfissao=" & txtCodProfissao
    sSQL = sSQL & ",CodEmpresa=" & txtCodEmpresa
    sSQL = sSQL & ",TemCadun=" & txtTemCaDun
    sSQL = sSQL & ",NroCadUnico=" & txtNroCadUnico
    sSQL = sSQL & ",TemBolsa=" & txtTemBolsa
    sSQL = sSQL & "',ValorBolsa='" & txtValorBolsa
    sSQL = sSQL & ",TemAuxilio=" & txtTemAuxilio
    sSQL = sSQL & "',ValorAuxilio='" & txtValorAuxilio
    sSQL = sSQL & ",TemDoenca=" & txtTemDoenca
    sSQL = sSQL & "',DescDoenca='" & txtDescDoenca
    sSQL = sSQL & ",TemDeficiencia=" & txtTemDeficiencia
    sSQL = sSQL & "',DescDeficiencia='" & txtDescDeficiencia
    sSQL = sSQL & ",TemMedicamento = " & txtTemMedicamento
    sSQL = sSQL & "',DescMedicamento='" & txtDescMedicamento
    sSQL = sSQL & ",TemBPC=" & txtTemBP
    sSQL = sSQL & "',NomeBeneficiarioBPC='" & txtNomeBeneficiarioBPC
    sSQL = sSQL & "',Renda='" & txtRendaMensal
    sSQL = sSQL & "',RendaBruta='" & txtRendaBruta
    sSQL = sSQL & "',RendaPc='" & txtRendaperCapita
    sSQL = sSQL & "',Obs='" & txtObs
    sSQL = sSQL & "' WHERE CodAvaliacao=" & Me.txtCodAvaliacao
    CurrentDb.Execute sSQL

    ALAN
    DamascenoJr.
    DamascenoJr.
    Moderador
    Moderador

    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Querys muito longas Empty Re: [Resolvido]Querys muito longas

    Mensagem  DamascenoJr. 15/12/2020, 20:20

    Usei as dicas do tópico neste link e percebi o problema que a segunda linha causa

    Veja.

    Código:
    sSQL = "UPDATE tbAvaliacao SET "
    sSQL = sSQL & "',TemAgua='" & cxSelAgua
    ...

    Substituindo na segunda linha o conteúdo da primeira linha

    sSQL = "UPDATE tbAvaliacao SET ',TemAgua='" & cxSelAgua...

    A sintaxe fica realmente errada. Retire o destacado em vermelho. Ficando.

    Código:
    sSQL = "UPDATE tbAvaliacao SET "
    sSQL = sSQL & "TemAgua='" & cxSelAgua
    ...

    Final fica montado
    sSQL = "UPDATE tbAvaliacao SET TemAgua='" & cxSelAgua...


    .................................................................................
    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.
    Alexandre Fim
    Alexandre Fim
    Developer
    Developer

    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Querys muito longas Empty Re: [Resolvido]Querys muito longas

    Mensagem  Alexandre Fim 15/12/2020, 22:08

    Alan,

    Em instruções SQL o apóstrofo (') é utilizado para separar campos do tipo texto, data, decimal.
    Em algumas linhas do UPDATE que vc informou, o apostrofo está posicionado de forma errada.

    Segue código:
    Código:


    sSQL = "UPDATE tbAvaliacao SET "
    sSQL = sSQL & " TemAgua='" & cxSelAgua & "'"
    sSQL = sSQL & ",TemLuz='" & cxSelLuz & "'"
    sSQL = sSQL & ",TemTelefone='" & cxSelTel & "'"
    sSQL = sSQL & ",TemInternet='" & cxSelInternet & "'"
    sSQL = sSQL & ",TemBanheiro='" & cxSelBanheiro & "'"
    sSQL = sSQL & ",TemEsgoto='" & cxSelEsgoto & "'"
    sSQL = sSQL & ",CodMoradia=" & txtCodMoradia & ""
    sSQL = sSQL & ",DescMoradia='" & Trim(txtDescMoradia) & "'"
    sSQL = sSQL & ",CodConstrucao=" & txtCodConstrucao & ""
    sSQL = sSQL & ",NroPecas=" & txtNroPecas & ""
    sSQL = sSQL & ",CodProfissao=" & txtCodProfissao & ""
    sSQL = sSQL & ",CodEmpresa=" & txtCodEmpresa & ""
    sSQL = sSQL & ",TemCadun=" & txtTemCaDun & ""
    sSQL = sSQL & ",NroCadUnico=" & txtNroCadUnico & ""
    sSQL = sSQL & ",TemBolsa=" & txtTemBolsa & ""
    sSQL = sSQL & ",ValorBolsa='" & txtValorBolsa & "'"
    sSQL = sSQL & ",TemAuxilio=" & txtTemAuxilio & ""
    sSQL = sSQL & ",ValorAuxilio='" & txtValorAuxilio & "'"
    sSQL = sSQL & ",TemDoenca=" & txtTemDoenca & ""
    sSQL = sSQL & ",DescDoenca='" & Trim(txtDescDoenca) & "'"
    sSQL = sSQL & ",TemDeficiencia=" & txtTemDeficiencia & ""
    sSQL = sSQL & ",DescDeficiencia='" & Trim(txtDescDeficiencia) & "'"
    sSQL = sSQL & ",TemMedicamento = " & txtTemMedicamento & ""
    sSQL = sSQL & ",DescMedicamento='" & Trim(txtDescMedicamento) & "'"
    sSQL = sSQL & ",TemBPC=" & txtTemBP & ""
    sSQL = sSQL & ",NomeBeneficiarioBPC='" & Trim(txtNomeBeneficiarioBPC) & "'"
    sSQL = sSQL & ",Renda='" & txtRendaMensal & "'"
    sSQL = sSQL & ",RendaBruta='" & txtRendaBruta & "'"
    sSQL = sSQL & ",RendaPc='" & txtRendaperCapita & "'"
    sSQL = sSQL & ",Obs='" & Trim(txtObs) & "'"
    sSQL = sSQL & " WHERE CodAvaliacao= " & Me.txtCodAvaliacao & ""
    CurrentDb.Execute sSQL



    Obs.: Sempre que possível, utilize a função TRIM para eliminar os espaços em branco no inicio e fim dos campos.

    Espero ter ajudado.

    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.
    avatar
    alantb
    Avançado
    Avançado

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 235
    Registrado : 25/07/2017

    [Resolvido]Querys muito longas Empty Re: [Resolvido]Querys muito longas

    Mensagem  alantb 16/12/2020, 11:36

    Bom dia amigos Alexandre Fim e DamascenoJr, agora deu certo, entretanto tive de fazer umas modificações: no geral fiz o UPDATE como o Alexandre sugeriu, mas na parte inicial alterei como o DamascenoJr demonstrou e deu certo. No meio do caminho descobri um controle com nome errado: no form tava txtTemBp e o certo é txtTemBPC, ajustei e daí fechou todas.
    Sendo assim caros colegas, RESOLVIDO, obrigado pelas dicas, que já estão anotadas, e até a próxima!!!

    ALAN
    Alexandre Fim
    Alexandre Fim
    Developer
    Developer

    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Querys muito longas Empty Re: [Resolvido]Querys muito longas

    Mensagem  Alexandre Fim 16/12/2020, 11:58

    Boa sorte Alan !!!
    O forum agradece...
    Valeu @DamascenoJr !!!


    .................................................................................
    - 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.

      Data/hora atual: 24/7/2021, 09:13