ADODC METODO FIND X FILTER
Lembrando que uso o controle ADODC
GostarÃÂÂa de saber porque o FILTER não encontra campos com letras, tirei esta conclusão porque tenho o campo CPF que apesar de ser inserido números é um campo text em meu BD access e o método FILTER funciona, porém ele não funciona quando tento pesquisar o campo NOME que também é um campo text no BD porém possui letras e não números.
O método FIND funciona em todos os casos porém ele só aponta para o primeiro registro verdadeiro, ou seja, se numa pesquisa com o método FILTER pesquisando por CPF tiver mais de uma ocorrência o FILTER me retorna todas as ocorrências com o CPF procurado, enquanto o FIND só me aponta o primeiro registro.
alguem tem dicas ou sugestões ou ainda pode me passar algum esclarecimento a mais sobre esses métodos
GostarÃÂÂa de saber porque o FILTER não encontra campos com letras, tirei esta conclusão porque tenho o campo CPF que apesar de ser inserido números é um campo text em meu BD access e o método FILTER funciona, porém ele não funciona quando tento pesquisar o campo NOME que também é um campo text no BD porém possui letras e não números.
O método FIND funciona em todos os casos porém ele só aponta para o primeiro registro verdadeiro, ou seja, se numa pesquisa com o método FILTER pesquisando por CPF tiver mais de uma ocorrência o FILTER me retorna todas as ocorrências com o CPF procurado, enquanto o FIND só me aponta o primeiro registro.
alguem tem dicas ou sugestões ou ainda pode me passar algum esclarecimento a mais sobre esses métodos
JILNEY,
Poste o seu código para dar uma olha, pois aqui na empresa onde trabalho eu uso os dois e funciona belezinha.
Poste o seu código para dar uma olha, pois aqui na empresa onde trabalho eu uso os dois e funciona belezinha.
Também sempre utilizei o Filter, e nunca tive problemas nem com Letras nem com números.
Expresse um pouco melhor como está fazendo e qual exatamente o resultado que lhe faz tirar a conclusão de que o Filter não funciona.
Expresse um pouco melhor como está fazendo e qual exatamente o resultado que lhe faz tirar a conclusão de que o Filter não funciona.
lEMBRANDO QUE ESTE CÓDIGO ESTàFUNCIONANDO VALEU? ... a questão é o porquê do FILTER não funcionar no campo NOME, o qual, precisei usar o método FIND, porém o FIND não retorna mais de uma ocorrência com o mesmo nome como o método FILTER.
Agradeço desde já a atenção!
Private Sub Command3_Click()
If Option2.Value And Txtbuscacheque = "" Then
Dim vOK As Integer
vOK = MsgBox("O número do cheque não foi digitado!", vbOKOnly + vbCritical, "Atenção!")
Txtbuscacheque.SetFocus
ElseIf Option2.Value And Txtbuscacheque <> "" Then
Adodc1.Recordset.Filter = " cheque = " & Txtbuscacheque
ElseIf Option1.Value And TxtbuscaCPF = "" Then
vOK = MsgBox("O número do CPF não foi digitado!", vbOKOnly + vbCritical, "Atenção!")
TxtbuscaCPF.SetFocus
ElseIf Option1.Value And TxtbuscaCPF <> "" Then
Adodc1.Recordset.Filter = " CPF = " & TxtbuscaCPF
ElseIf Option3.Value Then
If (DataGrid1.SelBookmarks.Count <> 0) Then
DataGrid1.SelBookmarks.Remove 0
End If
If Adodc1.Recordset.RecordCount <> 0 Then
Adodc1.Recordset.MoveFirst
Adodc1.Recordset.Find "nome = '" & Txtbuscanome.Text & "'"
If Adodc1.Recordset.EOF Then
MsgBox "Nome não registrado !", vbOKOnly, "Atenção"
Else
MsgBox "Encontrado!", vbOKOnly, "Atenção"
DataGrid1.SelBookmarks.Add Adodc1.Recordset.Bookmark
End If
End If
End If
End Sub
Agradeço desde já a atenção!
Amigo, pode ser pq quando vc usa o .Filter, o recordset considera Miúsculas e minúsculas. Vc tentou usar o Like em vez de "=" ???
Tipo assim:
Tipo assim:
Adodc1.Recordset.Filter = "nome Like '" & Txtbuscanome.Text & "'"
Coloquei exatamente como vc postou MARCELOHF
Sempre da erro 3001
argumentos incorretos ou fora do intervalo aceitavel ou estão em conflito
quando clico em DEBUG e ponho o cursor do mouse sobre a linha de erro que fica com uma linha amarela na janela de código aparece:
txtbuscanome.text = "JILNEY OLIVEIRA DE MACEDO"
Quanto as letras serem minusculas ou maiusculas acho que não deveria dar problemas pois os campos de inserção dos dados assim como o de busca só aceitam digitação de letras maiusculas
Sempre da erro 3001
argumentos incorretos ou fora do intervalo aceitavel ou estão em conflito
quando clico em DEBUG e ponho o cursor do mouse sobre a linha de erro que fica com uma linha amarela na janela de código aparece:
txtbuscanome.text = "JILNEY OLIVEIRA DE MACEDO"
Quanto as letras serem minusculas ou maiusculas acho que não deveria dar problemas pois os campos de inserção dos dados assim como o de busca só aceitam digitação de letras maiusculas
Eu não sabia que dava erro, pensei que não encontrava os registros, aàpensei que poderia ser o caso de maiúsculas e minúsculas, mais realmente não é este o problema.
Este erro, o que ele está lhe falando é que o Campo nome não existe (ou então não está sendo retornado no select dentro do Adodc), ou que o conteúdo do campo não condiz com o tipo do mesmo.
Como vc está abrindo este ADODC??
Este erro, o que ele está lhe falando é que o Campo nome não existe (ou então não está sendo retornado no select dentro do Adodc), ou que o conteúdo do campo não condiz com o tipo do mesmo.
Como vc está abrindo este ADODC??
Vamos em partes
O campo nome existe, pois de acordo código acima com o método FIND a busca é realizada.
como pode não estar sendo retornado no select ? este adodc está sendo usado com o Recordsource = command type = adcmdtable, ele retorna todos os campos da tabela. Estava se referindo a isto?
O campo nome existe, pois de acordo código acima com o método FIND a busca é realizada.
como pode não estar sendo retornado no select ? este adodc está sendo usado com o Recordsource = command type = adcmdtable, ele retorna todos os campos da tabela. Estava se referindo a isto?
se eu utilizar assim:
Adodc1.Recordset.Filter "nome = " & Txtbuscanome
como utilizo nos outros campos ele dá o erro: INVALID USER OF PROPERTIES
deverÃÂÂa funcionar pois nos outros campos utilizo desta forma, é muito estranho.
Adodc1.Recordset.Filter "nome = " & Txtbuscanome
como utilizo nos outros campos ele dá o erro: INVALID USER OF PROPERTIES
deverÃÂÂa funcionar pois nos outros campos utilizo desta forma, é muito estranho.
Como se trata de um campo Alfanumerico a consulta tem que estar entre apostrofes.
Adodc1.Recordset.Filter = "nome Like '" & Campo.Text & "'"
Talves seja isso....a falta dos apóstrofes, "'"
Abraços.
Adodc1.Recordset.Filter = "nome Like '" & Campo.Text & "'"
Talves seja isso....a falta dos apóstrofes, "'"
Abraços.
Isso mesmo, queria saber se retornava o Campo nome.
Estranho...
Quando vc usa o "=" no filter ao invés do like da o mesmo erro?
Estranho...
Quando vc usa o "=" no filter ao invés do like da o mesmo erro?
Tópico encerrado , respostas não são mais permitidas