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

Não consigo pesquisar um registro no formato texto!


Marco Canhoto

Pergunta

Olá a todos!

Tenho uma pesquisa que possui dois formulários. No formpesquni, eu tenho um DataGrid com dados de uma tabela. Então, ao clicar no botão "Pesquisar", é aberto o formulário pesquni, que contem apenas uma combo com o tipo de pesquisa, uma caixa de texto para digitar o registro a ser encontrado e um botão para executar o comando.

Nessa combobox, estão listadas três opções: "Código da unidade", "Descrição da unidade" e "Responsável pela unidade".

O problema é que quando eu faço a pesquisa por código da unidade, ele encontra normalmente, selecionando o registro encontrado no Grid do formpesquni, mas se eu tento fazer a pesquisa por descrição da unidade ou pelo responsável da unidade, ele retorna sem encontrar nenhum registro! Vejam o código:

Private Sub lista_Click()

If (formpesquni.data1.SelBookmarks.Count <> 0) Then formpesquni.data1.SelBookmarks.Remove 0
If rs2.RecordCount <> 0 Then rs2.MoveFirst

Select Case cbo.Text

Case "Código da unidade"
    rs2.Find "codigo = '" & pesq.Text & "'"
    If rs2.EOF Then
        MsgBox "registro não encontrado"
    Else
        formpesquni.data1.SelBookmarks.Add rs2.Bookmark
        formpesquni.formata
    End If
Case "Descrição da unidade"
    rs2.Find "descricao = '" & pesq.Text & "'"
    If rs2.EOF Then
        MsgBox "registro não encontrado"
    Else
        formpesquni.data1.SelBookmarks.Add rs2.Bookmark
        formpesquni.formata
    End If
Case "Responsável pela unidade"
    rs2.Find "responsavel = '" & pesq.Text & "' "
    If rs2.EOF Then
        MsgBox "registro não encontrado"
    Else
        formpesquni.data1.SelBookmarks.Add rs2.Bookmark
        formpesquni.formata
    End If

End Select

End Sub

Quando eu escolho a opção "Descrição..." ou "Responsável..." ele retorna o msgbox da condição no código acima.

No banco de dados, o campo codigo está como decimal(10,0) e os campos descricao e responsavel estão como text.

Obrigado!

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

Olha Kuroi, apenas mudando o campo de text para varchar não resolveu o problema. substitui o '=' pelo 'like' na condição do rs.find e com isso resolveu.

Mesmo assim troquei o campo para varchar. Qual a diferença entre varchar e text e o que isso influi?

Obs.: Esses campos de descrição e responsável estão passíveis de receber qualquer tipode caracter(texto, numero, acento, sinal, etc.)

Link para o comentário
Compartilhar em outros sites

  • 0

o tipo text é meio chato pra se trabalhar. e acontece q ele não tem limite de tamanho. a finalidade dele seria guardar textos gdes. se você vai guardar um unico nome não tem necessidade de usar text.

eu falei sobre mudar pra varchar, porque o text normalmente tem varias restricoes. se não me engano, você nem consegue fazer formulas com ele.

o varchar vai guardar qualquer caracter especial sim. mas se você for trabalhar com unicode ai tem q ser nvarchar.

Link para o comentário
Compartilhar em outros sites

  • 0
o varchar vai guardar qualquer caracter especial sim. mas se você for trabalhar com unicode ai tem q ser nvarchar.

so pra corrigir essa informacao...

ela é valida pro sql. agora percebi q você ta usando mysql e ai acho q não existe nvarchar.

ai o varchar aceitaria unicode, mas acho q isso depende da collation.

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,3k
    • Posts
      652,4k
×
×
  • Criar Novo...