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]Erro em sintaxe para preenchimento automático de campo

    avatar
    enio.eltz
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 63
    Registrado : 19/07/2016

    [Resolvido]Erro em sintaxe para preenchimento automático de campo Empty [Resolvido]Erro em sintaxe para preenchimento automático de campo

    Mensagem  enio.eltz 16/3/2017, 02:20

    Boa noite

    Desde já agradeço o auxílio nesta dúvida.

    Todos os formulários e subformulários tem como origem as tabelas.

    No banco que estou trabalhando, criei um formulário de compras fml_CadCompras. Esse Formulário tem dois subformulários: fml_CadComprasDetalhes onde lanço os produtos, e fml_CadComprasPgto onde lanço parcelas a pagar da compra. Isso está funcionando.
    Criei também um formulário fml_CadLancamentoCaixa que será usado para lançar receitas e despesas.

    No subformulário fml_CadComprasPgto há uma caixa de seleção sim/não chamada PAGO. O objetivo é, ao marcar a caixa de seleção, os dados das parcelas sejam lançados na tabela tbl_CadLancamentoCaixa/fml_CadLancamentoCaixa automaticamente. Para isso, na caixa de seleção criei o procedimento do evento após atualizar:

    Private Sub PAGO_AfterUpdate()
       If PAGO.Value = -1 Then 'analisa se o checkbox PAGO está marcado
           Set db = CurrentDb()
               Set rs = db.OpenRecordset("tbl_CadLancamentoCaixa") 'abre a tabela CadLancamentoCaixa
           
               rs.AddNew 'gera registro de lançamento de caixa
               rs("DATA_LANCAM") = DATA_PGTO 'faz a data do lanç. igual a data pgto
               rs("TIPO_LANC") = "DESPESA" 'faz tipo de lanç. igual a DESPESA
               rs("COD_COMP_VEND") = COD_ME_tbl_CadCompras 'lança o código da compra
               rs("DESC_LANCAM") = FORNECEDOR  'lança a descrição do lançamento
               rs("TIPO_PGTO_LANC") = TIPO_PGTO 'lança o tipo de pagamento
               rs("VALOR_LANC") = Me.VALOR_PAGO 'lança o valor pago
               rs.Update
           
           rs.Close
           db.Close
           End
       End If
       
    End Sub

    Esse código está funcionando, pois ao marcar a caixa de seleção, um registro é criado na tabela tbl_CadLancamentoCaixa/fml_CadLancamentoCaixa automaticamente. Mas como FORNECEDOR e TIPO_PGTO são caixas de combinação, ao verificar o registro, vejo que foi preenchido com o código automático da tabela de fornecedor e tipo pgto e não o nome.
    Entendo que, com a linhas do código:

               rs("DESC_LANCAM") = FORNECEDOR  'lança a descrição do lançamento
               rs("TIPO_PGTO_LANC") = TIPO_PGTO 'lança o tipo de pagamento

    Ele está buscando a primeira coluna (0) da caixa de combinação, que é o código automático da tabela. A ideia é buscar o nome do fornecedor e do tipo pgto na segunda coluna (1). Para isso, tentei alterar a linha para:

               rs("DESC_LANCAM") = FORNECEDOR.Column(1)  'lança a descrição do lançamento
               rs("TIPO_PGTO_LANC") = TIPO_PGTO.Column(1) 'lança o tipo de pagamento

    Mas assim o Access trava e reinicia. Acredito que a minha sintaxe esteja errada. Já realizei buscas na internet e nesse fórum, mas não identifiquei um comando para isso. Também tentei outros comandos sem sucesso. Essa é a dúvida, como fazer o comando buscar a segunda coluna (1) da caixa de cominação?

    O banco está em anexo.

    Obrigado.

    Enio Eltz Filho
    Anexos
    [Resolvido]Erro em sintaxe para preenchimento automático de campo Attachmentbanco.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (433 Kb) Baixado 5 vez(es)
    avatar
    enio.eltz
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 63
    Registrado : 19/07/2016

    [Resolvido]Erro em sintaxe para preenchimento automático de campo Empty Re: [Resolvido]Erro em sintaxe para preenchimento automático de campo

    Mensagem  enio.eltz 16/3/2017, 14:31

    Bom dia

    Situação resolvida.
    Realizando testes aqui, identifiquei o que entendo tenha sido o meu erro. A caixa de combinação FORNECEDOR foi colocada no rodapé do formulário, pois eu não necessitava que fosse mostrada no formulário.
    Eu alterei a posição da caixa de combinação para detalhes do formulário e a linha do código foi alterada para:

    rs("DESC_LANCAM") = FORNECEDOR.Column(1) 'lança o fornecedor

    Com isso, o processo está operando conforme eu quero.

    Enio Eltz Filho.

      Data/hora atual: 7/5/2024, 16:24