No basic uma macro para importar os campos de uma tabela ou consulta

Olá, gostaria de saber como escrever no BASIC uma macro para importar os campos de uma tabela ou consulta para os campos de uma caixa de diálogo, similar ao código abaixo:

Function AlterarDados()
	'On Error Goto Sair
	Dim oPlan as Object, oDBC as Object, oBD as Object, oConexao as Object, oDeclaracao as Object
	Dim sProtocolo as String, sData as String, sUsuario as String, sCadastro as String 
	Dim sNProcesso as String, sLocalizacao as String, sDocumento as String, sNomeTabela as String, sCampos as String
	Dim sValores as String, sSQL as String, sBanco as String
		dfData = dlg.getControl("dfData")
		sData = dfData.Text
		lbUsuario = dlg.getControl("lbUsuario")
		sUsuario = lbUsuario.Text
		lbCadastro = dlg.getControl("lbCadastro")
		sCadastro = lbCadastro.Text
		tfNProcesso = dlg.getControl("tfNProcesso")
		sNProcesso = tfNProcesso.Text
		tfLocalizacao = dlg.getControl("tfLocalizacao")
		sLocalizacao = tfLocalizacao.Text
		cbDocumento = dlg.getControl("cbDocumento")
		sDocumento = cbDocumento.Text
		sNomeTabela = """Protocolo""" 
		
		sCampos = """Data"",""Usuario"",""Cadastro"",""NProcesso"",""Localizacao"",""Documento"""
		sValores = "'" & sData & "','" & sUsuario & "','" & sCadastro & "','" & sNProcesso & "','" & sLocalizacao & "','" & sDocumento & "'"

			sSQL = "UPDATE " & sNomeTabela & " SET (" & sCampos & ") WHERE ""NProcesso"" = " & sNProcesso 
			oDesc.Text = oResultado.getString(1) 'este sSQL não é correto
			' Obter a conexão ao Banco Defeitos
			sBanco = "Distribuição" 'O banco PRECISA estar registrado.
			oDBC = createUnoService("com.sun.star.sdb.DatabaseContext")

				If Not oDBC.hasByName(sBanco) Then
				   Msgbox "É preciso registrar o banco '" & sBanco & "' antes de prosseguir.",64
				   Exit Function
				End If
			oBD = oDBC.getByName(sBanco)
			oConexao = oBD.getConnection("","")
			' Executar o SQL
			oDeclaracao = oConexao.createStatement()
			oDeclaracao.executeUpdate(sSQL)
			'oResultado = oSQL.executeQuery( sSQL )
			'oResultado.Next
			' Fechar a conexão e liberar a memória
			oDeclaracao.close()
			oConexao.close()
			oDeclaracao = Nothing
			oConexao = Nothing
			MsgBox "Dados salvos na tabela '" & sNomeTabela & "'!",0
End Function

@RonaldoElias, mas dos campos que você quer importar qual é a posição do registro? O último inserido? Uma posição em especial?

Desculpe a demora Grafeno, funcionou “Graf”, mas queria, algo assim: uma busca, por exemplo: Caixa InputBox (simulando um campo de formulário - caixa diálogo) = “123” na primeira coluna (qualquer linha/registro), mostraria a msgbox das colunas e das linhas/registros correspondentes.

     Col1 Col2 Col3
     123   ?    ?

Depois de importar seria possível, depois de alterar, excluir ou atualizar as informações, inserir no mesmo registro. Você é o cara eu sei, vejo suas publicações.

@RonaldoElias, no caso, poste um banco de exemplo, com dados fictícios, e com o formulário com os campos que deseja preencher/modificar/excluir, para ver se consigo te ajudar.

Boa noite,

A macro abaixo retorna o último registro da tabela “Protocolo”, e exibe o dado contido na 3ª coluna:

Sub Main2
   sBanco = "Distribuição" 'O banco PRECISA estar registrado.'
   oDBC = createUnoService("com.sun.star.sdb.DatabaseContext")

   oBD = oDBC.getByName(sBanco)
   oConexao = oBD.getConnection("","")
   
   ' Executar o SQL'
   oDeclaracao = oConexao.createStatement()
   oDeclaracao.ResultSetType = 1004 'Tipo SCROLL_INSENSITIVE'
   sSQL = " SELECT * FROM ""Protocolo"" "
   oResultado = oDeclaracao.executeQuery( sSQL )
   
   ' Mover o ponteiro para o último registro'
   oResultado.Last()
   
   ' Exibir o dado da 3ª coluna (campo)'
   msgbox oResultado.getString(3)
   
   ' Fechar a conexão e liberar a memória'
   oDeclaracao.close()
   oConexao.close()
   oDeclaracao = Nothing
   oConexao = Nothing
End Sub

Atte,