Pergunte aqui

Histórico de revisões [voltar]

clique para ocultar/mostrar a revisão 1
Versão inicial

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,