Jump to content
Fórum Script Brasil
  • 0

Pesquisa por nome VB


Danielsh

Question

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 to comment
Share on other sites

5 answers to this question

Recommended Posts

  • 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.

Edited by Danleonhart
Link to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...