Danielsh Posted March 28, 2012 Report Share Posted March 28, 2012 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 Quote Link to comment Share on other sites More sharing options...
0 Danleonhart Posted March 28, 2012 Report Share Posted March 28, 2012 (edited) 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.htmftp://ftp.cefetes.br/Cursos/Geomatica/Ger...muito%20boa.pdfhttp://www.codelines.com/ManualVB/Cap%C3%A...C3%ADtulo19.htm Existe muito mais conteúdo no Google. Edited March 28, 2012 by Danleonhart Quote Link to comment Share on other sites More sharing options...
0 Danielsh Posted March 28, 2012 Author Report Share Posted March 28, 2012 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.htmftp://ftp.cefetes.br/Cursos/Geomatica/Ger...muito%20boa.pdfhttp://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. Quote Link to comment Share on other sites More sharing options...
0 Ferretto Posted March 28, 2012 Report Share Posted March 28, 2012 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 Quote Link to comment Share on other sites More sharing options...
0 Danielsh Posted March 28, 2012 Author Report Share Posted March 28, 2012 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 aguardoNã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 IfEnd 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 Quote Link to comment Share on other sites More sharing options...
0 Danleonhart Posted March 28, 2012 Report Share Posted March 28, 2012 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: Quote Link to comment Share on other sites More sharing options...
Question
Danielsh
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
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.