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

Pesquisa por nome VB


Danielsh

Pergunta

Pessoal por que não funciona? Fiz o mesmo com o campo código e deu certo, por nome não vai.

Sou iniciante, me ajudem.

Dim ValorPesquisa As String

ValorPesquisa = InputBox("Digite o Nome que quer encontrar:")

dtb_clientes.Recordset.FindFirst "Nome do Cliente = '" & ValorPesquisa & "'"

If dtb_clientes.Recordset.NoMatch = True Then

MsgBox "Este Registro não foi encontrado no banco de dados!"

End If

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

Que tipo de acesso você usa para comunicar-se com o BD ??? é DAO, RDO ou ADO ???

ADO é bem melhor, mais atual e mais usada...existem inúmeros exemplos com ele aqui mesmo no fórum.

Se fosse com ADO, eu faria com um "SELECT WHERE"...

Um exemplo:

Dim rs As ADODB.Recordset
Dim conn As ADODB.Connection
Dim nome As String

Set conn = New ADODB.Connection
conn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\Bases de Dados\BIBLIO.accdb;Persist Security Info=False;"

nome = "Addison-Wesley"

Set rs = New ADODB.Recordset
 rs.CursorLocation = adUseClient
 rs.Open "SELECT Name,Address,Telephone FROM Publishers WHERE Name='" & nome & "'", conn

 MsgBox "Nome : " & rs("Name") & vbNewLine & "Endereço : " & rs("Address") & vbNewLine & "Telefone : " & rs("Telephone")

conn.Close

- No exemplo acima, faço uma conexão ADO com o banco Access 2007 denominado "BIBLIO";

- Faço uma consulta a tabela "Publishers";

- Na consulta seleciono apenas os campos: "Name, Address e Telephone";

- Determino que "apenas" os dados referente ao nome "Addison-Wesley" deve ser apresentado (uso o WHERE);

- Apresento em caixa de diálogo o que foi selecionado no BD.

Se quiser saber mais sobre ADO :

http://www.macoratti.net/ado_vbas.htm

ftp://ftp.cefetes.br/Cursos/Geomatica/Ger...muito%20boa.pdf

http://www.codelines.com/ManualVB/Cap%C3%A...C3%ADtulo19.htm

Existe muito mais conteúdo no Google.

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

  • 0
Que tipo de acesso você usa para comunicar-se com o BD ??? é DAO, RDO ou ADO ???

ADO é bem melhor, mais atual e mais usada...existem inúmeros exemplos com ele aqui mesmo no fórum.

Se fosse com ADO, eu faria com um "SELECT WHERE"...

Um exemplo:

Dim rs As ADODB.Recordset
Dim conn As ADODB.Connection
Dim nome As String

Set conn = New ADODB.Connection
conn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\Bases de Dados\BIBLIO.accdb;Persist Security Info=False;"

nome = "Addison-Wesley"

Set rs = New ADODB.Recordset
 rs.CursorLocation = adUseClient
 rs.Open "SELECT Name,Address,Telephone FROM Publishers WHERE Name='" & nome & "'", conn

 MsgBox "Nome : " & rs("Name") & vbNewLine & "Endereço : " & rs("Address") & vbNewLine & "Telefone : " & rs("Telephone")

conn.Close

- No exemplo acima, faço uma conexão ADO com o banco Access 2007 denominado "BIBLIO";

- Faço uma consulta a tabela "Publishers";

- Na consulta seleciono apenas os campos: "Name, Address e Telephone";

- Determino que "apenas" os dados referente ao nome "Addison-Wesley" deve ser apresentado (uso o WHERE);

- Apresento em caixa de diálogo o que foi selecionado no BD.

Se quiser saber mais sobre ADO :

http://www.macoratti.net/ado_vbas.htm

ftp://ftp.cefetes.br/Cursos/Geomatica/Ger...muito%20boa.pdf

http://www.codelines.com/ManualVB/Cap%C3%A...C3%ADtulo19.htm

Existe muito mais conteúdo no Google.

Estou usando o mais simples possível, access 2000 e um Data, estou iniciando agora.

Link para o comentário
Compartilhar em outros sites

  • 0
cara, teria como postar mais informações? qual a mensagem de erro? tem como postar o seu código mais completo digo da parte onde você carrega o recordset, e como você declarou o recordset?

fico no aguardo

Não apresenta erro nenhum simplesmente me parece que ele não faz a comparação, já cai direto na msg " Este Registro nome não foi encontrado no banco de dados! " sendo que existe o nome.

obs: Não declarei recordset em nenhum dos códigos de pesquisa mas pesquisar por código funciona.

Código para procurar por código ( esse funciona normal )

Private Sub Option1_Click()

Dim ValorPesquisa As String

ValorPesquisa = InputBox("Digite o código que quer encontrar:")

dtb_clientes.Recordset.FindFirst "Código =" & Val(ValorPesquisa)

Option1.Value = False

If dtb_clientes.Recordset.NoMatch = True Then

MsgBox "Este Registro não foi encontrado no banco de dados!"

End If

End Sub

----------------------------------------

codigo para procurar por nome ( não funciona )

Private Sub Option2_Click()

Dim pesquisa As String

Dim b As String

ValorPesquisa = InputBox("Digite o Nome que quer encontrar:")

b = ValorPesquisa

dtb_clientes.Recordset.FindFirst "Nome do Cliente " = " b '"

Option2.Value = False

If dtb_clientes.Recordset.NoMatch = True Then

MsgBox "Este Registro nome não foi encontrado no banco de dados!"

End If

Link para o comentário
Compartilhar em outros sites

  • 0

Danielsh...

Você tá começando agora, certo ?!

sabes lógica de programação ??? algoritmo ???

sabes diferenciar os tipos de dados ? String, Integer, Long...

É bom saber bem estes conceitos básicos antes de partir para a parte prática com BD's...

Estou usando o mais simples possível, access 2000 e um Data, estou iniciando agora.

Certo... e qual o modo de conexão com o BD ??? DAO ou ADO ???

pelo que posso notar no código é DAO...

então, é bom saber qual vai usar...

eu não uso muito o DAO...só sei o básico...já o ADO, tenho alguns projetos com ele, então conheço um pouco mais.

pelo que notei você quer listar os nomes que começam com a letra "b", é isso ???

faça um teste...se no banco tem um nome, por exemplo João, coloque assim na linha:

dtb_clientes.Recordset.FindFirst "João"

só para teste...

Outro detalhe é que você não especificou o script inicial... pode ser que estejas procurando o nome na coluna "Código"... :mellow:

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,1k
    • Posts
      651,8k
×
×
  • Criar Novo...