Boa noite,
A macro busca o código do produto colocado na caixa de combinação e preenche as caixas de texto descrição, linha e seguimento. Ela precisa estar associada dois eventos:
- "Texto modificado" do controle txtCódigo.
- "Após alteração do registro" formulário MainForm.
.
Um consideração que faço é que com o código você verá que é desnecessário armazenar a descrição, a linha e o seguimento na tabela Lançamento. Na verdade, não faz sentido repetir o armazenamento destes dados para cada vez que o produto aparecer num lançamento se eles já existem na tabela Produtos.
.
Sub PreencherCampos()
Dim oForm as Object, oCodigo as Object, oDescricao as Object
Dim oLinha as Object, oSeguimento as Object, oConexao as Object
Dim oSQL as Object, oResultado as Object
Dim sCodigo as String, sSQL as String
oForm = ThisComponent.Drawpage.Forms.getByName("MainForm")
oCodigo = oForm.getByName("txtCódigo")
oDescricao = oForm.getByName("txtDescrição")
oLinha = oForm.getByName("txtLinha")
oSeguimento = oForm.getByName("txtSeguimento")
On Error goto TratarErro
oConexao = oForm.ActiveConnection
oSQL = oConexao.createStatement()
sCodigo = oCodigo.Text
sSQL = "SELECT ""Descricao"", ""Linha"", ""Segmento"" FROM ""Produtos"" WHERE ""Codigo"" = '" & sCodigo & "'"
oResultado = oSQL.executeQuery( sSQL )
oResultado.Next
oDescricao.Text = oResultado.getString(1)
oLinha.Text = oResultado.getString(2)
oSeguimento.Text = oResultado.getString(3)
Exit Sub
TratarErro:
oDescricao.text = ""
oLinha.text = ""
oSeguimento.text = ""
End Sub
.
Arquivo com a macro: meu_banco_macro.odb
.
Atte,
Creio que o PROCV só funcione no Calc, no Base é de outra maneira, talvez por SQL, etc, não tenho certeza pois não uso o Base.
@Conrado, parece que vc já criou uma pegunta antes similar a essa. Seria melhor você disponibilizar um modelo do seu banco, com dados fictícios, com os formulários para facilitar a ajuda.
@Gilberto Schiavinatto está certo, não existem funções do Calc no Base. Vc pode usar macro com SQL pare resolver a questão.
@Gilberto Schiavinatto e @Grafeno ...obrigado pela prontidão. Sei que não tem o PROCV no Base, mas passei desta forma para melhor entender o assunto. A questão anterior era sobre Caixa de Combinação em Cascata, que resolvi de outra forma num outro banco. Vou arrumar as informações e disponibilizar para vocês darem uma olhada.