Página 1 de 1

Como fazer function de busca em tabela access (problemas com ADO)

Enviado: Sex Out 04, 2019 4:40 pm
por JoaoAnacle
Olá, estou trabalhando com um banco de dados no access, minha planilha Excel e apenas para fazer cálculos e funcionar como painel para gravação de dados no banco de dados (access).

estou tentando fazer uma function para buscar um valor em uma tabela no access. para isso estou usando o seguinte código:

Código: Selecionar todos

Public Function BuscaNomeFuncionario(ByVal Num_Reg As Integer)
  Dim lrs As ADODB.Recordset
  Set lrs = New ADODB.Recordset
   
    lsConectar
        lrs.Open "Select Nome from funcionarios where Num_Registro = " & Num_Reg, gConexao
   
    BuscaNomeFuncionario = lrs
   
    If Not lrs Is Nothing Then
        lrs.Close
        Set lrs = Nothing
    End If
    lsDesconectar

End Function

os códigos de conectar e desconectar e os demais de conexão estão funcionando. porem quando eu tento buscar o valor "Nome" na tabela, a função me retorna o erro: #VALOR!

O comando " lrs.Open "Select Nome from funcionarios where Num_Registro = " & Num_Reg, gConexao" funciona, porem não consigo retorna a celula o valor obtido pela busca.
Alguém sabe onde está o erro?

Re: Como fazer function de busca em tabela access (problemas com ADO)

Enviado: Sex Out 04, 2019 5:21 pm
por Reinaldo
Não tenho como testar, por sua base/arquivo; vamos pelo exposto:
Aparentemente a função BuscaNome.. "espera" como resposta um valor numérico (integer); porem está "recebendo" um texto (string).
Experimente alterar a definição inicial de sua Function conforme incluindo definição adicional como string:
-->Public Function BuscaNomeFuncionario(ByVal Num_Reg As Integer) As String <--

Se não funcionar disponibilize seu modelo (utilize dados fictícios se necessaro) para que possamos testar/acompanhar a execução.

Obs.: CrossPost http://www.planilhando.com.br/forum/vie ... 25&t=31947

Re: Como fazer function de busca em tabela access (problemas com ADO)

Enviado: Sáb Out 05, 2019 8:36 am
por JoaoAnacle
Fiz o teste colocando "As string" no final, mesmo assim continuou com o erro.
aqui estão os arquivos com os códigos.
também coloquei um modulo teste, com um código que funcionou, só que não sei ainda o porque.
Desde já, muito obrigado pela ajuda.

Re: Como fazer function de busca em tabela access (problemas com ADO)

Enviado: Sáb Out 05, 2019 3:21 pm
por Reinaldo
Infelizmente não pude abrir o seu modelo access, pois a minha versão (10) "não tem poderes" para abri-lo; recebo a info "o banco de dados que está tentando abrir requer uma versão mais nova do access".
O interessante e que executando pela Function, não há "menção" ao erro, somente ao executar a lsconectar diretamente.
Então utilizei um arquivo de teste e ajustei as duas functions; teste.

Re: Como fazer function de busca em tabela access (problemas com ADO)

Enviado: Seg Out 07, 2019 7:41 am
por JoaoAnacle
Funcionou perfeitamente, muito obrigado pela ajuda! :D
Mas ainda tenho uma duvida. A alteração que você fez nesse trecho de codigo:

Código: Selecionar todos

BuscaNomeFuncionario = lrs(0)
quando você coloca : "(0)", está fazendo referencia ao numero do campo encontrado na busca?