Ir para conteúdo
Fórum Script Brasil
  • 0

Busca em BD Access (Metodo Seek) após encontrar, carregar valores.


Danleonhart

Pergunta

Seguinte:

Tenho uma tabela (tab1) onde há 6 colunas (Codigo, Nome, Endereco, Cidade, UF , Telefone).

Com a dica do Kuroi sobre "Busca em BD" conseguí configurar meu modo de busca, porém, não estou conseguindo carregar os valores nos TextBoxes e DataGrid após encontrá-los.

Segue o Script:

Private Sub cmd_pes_Click()
Dim cod As Variant
cod = t1.Text

If cod = "" Then
MsgBox "Informe a ID do Usuário!"
End If
abb

Set rs = New ADODB.Recordset
rs.CursorLocation = adUseServer
rs.Open "tab1", con, adOpenKeyset, adLockReadOnly, adCmdTableDirect

If rs.Supports(adIndex) And rs.Supports(adSeek) Then
rs.Index = "PrimaryKey"
rs.MoveFirst
rs.Seek Array(cod)
If rs.EOF Then
MsgBox "Usuário não encontrado"
Else
MsgBox rs!Codigo & " - " & rs!Nome & vbCrLf
End If
Else
MsgBox "O Provedor não suporta Index e Seek"
End If
rs.Close
con.Close
Set rs = Nothing
Set con = Nothing

End Sub

Fiz diversas tentativas como alterar o CursorLocation mas sem sucesso...sempre pula tudo e vai para o script onde apresenta a MsgBox "O provedor não suporta Index e Seek"...mas eu sei que suporta se assim não fosse, não apresentava os resultados da busca, no caso: o Código e o Nome.

Fico no aguardo de opiniões :rolleyes:

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

danleon, qual o codigo de quando você abre a conexao?? por acaso você esta pondo cursor location no cliente pra conexao??

o objeto conexao tb tem a propriedade CursorLocation, assim como o recordset. tente setar adUseServer para o CursorLocation da conexao tb.

EDITADO:

e tb nem todos os providers suportam o Seek(). como disse o macoratti, o "Microsoft.Jet.OLEDB.4.0" suporta sem problemas, então use esse.

fora isso, tenha certeza de estar usando a versao Microsoft ActiveX Data Objetcs 2.8, ou a mais nova q tiver ai. as mais antigas não suporta o metoto Seek().

Editado por kuroi
Link para o comentário
Compartilhar em outros sites

  • 0

@ Kuroi:

Obrigado Kuroi, vou verificar...estou no trabalho agora, mas não tenho certeza de ter configurado todos os CursorLocation para " adUseServer "... acho que tem algum direcionado para " adUseClient "... pois me orintaram que o desenpenho é melhor...quanto a biblioteca é essa mesma que utilizo: Microsoft ActiveX Data Objetcs 2.8 não procurei saber se tem uma versão mais nova...

de todo jeito Obrigado pela dica !

Ao chegar em casa vou verificar meu script. :)

Editado por Danleonhart
Link para o comentário
Compartilhar em outros sites

  • 0

@ Kuroi...

Funcionou... eu havia configurado no Load como adUserClient, e no form da busca estava adUseServer... corrigí este detalhe e está funcionando...porém não estou conseguindo carregar os valores dentro de TextBox...

Faço o seguinte: tem uma caixa onde fica disponivel para se colocar o código que se deseja para fazer a busca...quero que quando encontrado ele carregue as TextBox com os demais valores... para adicionar em uma ListBox dá beleza, assim como em um FlexGrid, porém para carregar nas TextBoxes da uma mensagem de " False " dentro da primeira TextBox...

Editado por Danleonhart
Link para o comentário
Compartilhar em outros sites

  • 0

false?? vai ver então q você ta escrevendo alguma expressao de comparacao em vez de passar o valor do recordset. ve se a linha q escreve no textbox não ta com dois iguais na mesma linha, ou se você não ta pondo um And ou um Or ou qualquer outro operador logico ou de comparacao.

se não conseguir descobrir, poste a linha onde você passa o valor do banco pra essa textbox q fica com "false".

Link para o comentário
Compartilhar em outros sites

  • 0

Resolvido !

O problema era que eu estava colocando no script um após o outro :

Text1.Text = rs!Codigo &  Text2.Text = rs!Nome & ...
Aí resolví colocar um abaixo do outro e deu certo ! :P
Text1.Text = rs!Codigo
Text2.Text = rs!Nome
Text3.Text = rs!Endereco...

Obrigado mais uma vez !

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...