Boa tarde
Tenho um banco em Access 2007 que já está quase rodando conforme desejo. Mas quero que, depois de preencher o preço de compra de um produto, ao marcar uma caixa de seleção em um formulário de compras, o preço de compra do produto seja atualizado.
Na estrutura do banco eu tenho:
- tbl_CadProdutos/fml_CadProdutos com os campos:
COD_tbl_CadProdutos - Numerção Automática
COD_PRODUTO - Texto Curto
DESCRICAO_PRODUTO - Texto curto
NOME_FORNECEDOR - Caixa de combinação para selecionar o fornecedor (tbl_CadFornecedores)
VALOR_COMPRA - Moeda
VALOR_VENDA - Moeda
É nessa tabela que eu quero alterar o VALOR_COMPRA com o comando update.
No formulário fml_CadCompras eu tenho um subformulário fml_CadComprasDetalhes com os campos:
COD_tbl_CadComprasDetalhes - Numeração Automática (campo da tbl_CadComprasDetalhes)
COD_ME_tbl_CadCompras - Número (campo da tbl_CadComprasDetalhes)
COD_PRODUTO - Caixa de combinação para selecionar o código do produto (tbl_CadProdutos)
DESC_PRODUTO - Texto curto (campo da tbl_CadComprasDetalhes)
QUANTIDADE - Número (campo da tbl_CadComprasDetalhes)
PRECO_COMPRA - MOEDA (campo da tbl_CadComprasDetalhes)
ATUALIZA_PRECO_COMPRA - Sim/Não (campo da tbl_CadComprasDetalhes)
No subformulário fml_CadComprasDetalhes eu criei duas caixas de texto:
campo_at_vlr_compra_cod
campo_at_vlr_compra
E então criei um evento após atualizar para preencher as duas caixas de texto com o seguinte código:
Private Sub PRECO_COMPRA_AfterUpdate()
Me.campo_at_vlr_compra_cod.Value = Me.COD_PRODUTO.Column(1)
Me.campo_at_vlr_compra.Value = Me.PRECO_COMPRA
End Sub
Bom, até aqui está funcionando. Quando eu lanço um produto no subformulário com o preço de compra, as caixas de texto são preenchidas com os valores.
Para a caixa de seleção ATUALIZA_PRECO_COMPRA eu criei um evento após atualizar para fazer o update do campo VALOR_COMPRA da tbl_CadProdutos com o seguinte código:
Private Sub ATUALIZA_PRECO_COMPRA_AfterUpdate()
Update tbl_CadProdutos
Set VALOR_COMPRA = campo_at_vlr_compra
WHERE COD_PRODUTO = campo_at_vlr_compra_cod
End Sub
Com esse código eu tenho o erro: Erro de compilação: 'Sub' ou 'Function' não definida.
Pesquisando nesse fórum alguns exemplo, tentei com os campos da tabela entre [], assim:
Private Sub ATUALIZA_PRECO_COMPRA_AfterUpdate()
Update tbl_CadProdutos
Set [VALOR_COMPRA] = campo_at_vlr_compra
WHERE [COD_PRODUTO] = campo_at_vlr_compra_cod
End Sub
Mas também tenho o mesmo erro: Erro de compilação: 'Sub' ou 'Function' não definida.
Continuei pesquisando e encontrei outros códigos para fazer isso. Mas nenhum deles atuou. Vejam:
strUpdate_VALOR_COMPRA = "Update tbl_CadProdutos SET [VALOR_COMPRA] = campo_at_vlr_compra WHERE [COD_PRODUTO] = campo_at_vlr_compra_cod;"
Com esse código não tenho erro, mas não faz o update do valor. Tentei colocar ' nas caixas de texto:
strUpdate_VALOR_COMPRA = "Update tbl_CadProdutos SET [VALOR_COMPRA] = 'campo_at_vlr_compra' WHERE [COD_PRODUTO] = 'campo_at_vlr_compra_cod';"
Com esse código também não tenho erro, mas não faz o update do valor.
CurrentDb.Execute "UPDATE tbl_CadProdutos SET VALOR_COMPRA = campo_at_vlr_compra WHERE COD_PRODUTO = campo_at_vlr_compra_cod;"
Com esse código tenho o erro: Erro em tempo de execução '3061': Parâmetros insuficientes. Eram esperados 2. Tentei colocar ' nas caixas de texto:
CurrentDb.Execute "UPDATE tbl_CadProdutos SET VALOR_COMPRA = 'campo_at_vlr_compra' WHERE COD_PRODUTO = 'campo_at_vlr_compra_cod';"
Com esse código também não tenho erro, mas não faz o update do valor.
Desde já agradeço a ajuda.
Enio Eltz Filho
Tenho um banco em Access 2007 que já está quase rodando conforme desejo. Mas quero que, depois de preencher o preço de compra de um produto, ao marcar uma caixa de seleção em um formulário de compras, o preço de compra do produto seja atualizado.
Na estrutura do banco eu tenho:
- tbl_CadProdutos/fml_CadProdutos com os campos:
COD_tbl_CadProdutos - Numerção Automática
COD_PRODUTO - Texto Curto
DESCRICAO_PRODUTO - Texto curto
NOME_FORNECEDOR - Caixa de combinação para selecionar o fornecedor (tbl_CadFornecedores)
VALOR_COMPRA - Moeda
VALOR_VENDA - Moeda
É nessa tabela que eu quero alterar o VALOR_COMPRA com o comando update.
No formulário fml_CadCompras eu tenho um subformulário fml_CadComprasDetalhes com os campos:
COD_tbl_CadComprasDetalhes - Numeração Automática (campo da tbl_CadComprasDetalhes)
COD_ME_tbl_CadCompras - Número (campo da tbl_CadComprasDetalhes)
COD_PRODUTO - Caixa de combinação para selecionar o código do produto (tbl_CadProdutos)
DESC_PRODUTO - Texto curto (campo da tbl_CadComprasDetalhes)
QUANTIDADE - Número (campo da tbl_CadComprasDetalhes)
PRECO_COMPRA - MOEDA (campo da tbl_CadComprasDetalhes)
ATUALIZA_PRECO_COMPRA - Sim/Não (campo da tbl_CadComprasDetalhes)
No subformulário fml_CadComprasDetalhes eu criei duas caixas de texto:
campo_at_vlr_compra_cod
campo_at_vlr_compra
E então criei um evento após atualizar para preencher as duas caixas de texto com o seguinte código:
Private Sub PRECO_COMPRA_AfterUpdate()
Me.campo_at_vlr_compra_cod.Value = Me.COD_PRODUTO.Column(1)
Me.campo_at_vlr_compra.Value = Me.PRECO_COMPRA
End Sub
Bom, até aqui está funcionando. Quando eu lanço um produto no subformulário com o preço de compra, as caixas de texto são preenchidas com os valores.
Para a caixa de seleção ATUALIZA_PRECO_COMPRA eu criei um evento após atualizar para fazer o update do campo VALOR_COMPRA da tbl_CadProdutos com o seguinte código:
Private Sub ATUALIZA_PRECO_COMPRA_AfterUpdate()
Update tbl_CadProdutos
Set VALOR_COMPRA = campo_at_vlr_compra
WHERE COD_PRODUTO = campo_at_vlr_compra_cod
End Sub
Com esse código eu tenho o erro: Erro de compilação: 'Sub' ou 'Function' não definida.
Pesquisando nesse fórum alguns exemplo, tentei com os campos da tabela entre [], assim:
Private Sub ATUALIZA_PRECO_COMPRA_AfterUpdate()
Update tbl_CadProdutos
Set [VALOR_COMPRA] = campo_at_vlr_compra
WHERE [COD_PRODUTO] = campo_at_vlr_compra_cod
End Sub
Mas também tenho o mesmo erro: Erro de compilação: 'Sub' ou 'Function' não definida.
Continuei pesquisando e encontrei outros códigos para fazer isso. Mas nenhum deles atuou. Vejam:
strUpdate_VALOR_COMPRA = "Update tbl_CadProdutos SET [VALOR_COMPRA] = campo_at_vlr_compra WHERE [COD_PRODUTO] = campo_at_vlr_compra_cod;"
Com esse código não tenho erro, mas não faz o update do valor. Tentei colocar ' nas caixas de texto:
strUpdate_VALOR_COMPRA = "Update tbl_CadProdutos SET [VALOR_COMPRA] = 'campo_at_vlr_compra' WHERE [COD_PRODUTO] = 'campo_at_vlr_compra_cod';"
Com esse código também não tenho erro, mas não faz o update do valor.
CurrentDb.Execute "UPDATE tbl_CadProdutos SET VALOR_COMPRA = campo_at_vlr_compra WHERE COD_PRODUTO = campo_at_vlr_compra_cod;"
Com esse código tenho o erro: Erro em tempo de execução '3061': Parâmetros insuficientes. Eram esperados 2. Tentei colocar ' nas caixas de texto:
CurrentDb.Execute "UPDATE tbl_CadProdutos SET VALOR_COMPRA = 'campo_at_vlr_compra' WHERE COD_PRODUTO = 'campo_at_vlr_compra_cod';"
Com esse código também não tenho erro, mas não faz o update do valor.
Desde já agradeço a ajuda.
Enio Eltz Filho