PROBLEMAS COM CONSULTA

PROPAR 07/05/2004 15:11:08
#23540
Amigos estou com um ploblema que não consigo dar solução estou fazedo uma pesquisa no Public Sub mostrardados() se o numero do txtgrupo for 001 ele mostra todos 001 no db grid mais não esta dano certo ,e só falta basicamento isso e o ralatorio pra acabar ....

o meu codigo esta assim

Public Sub mostrardados ()
If txtgrupo.Text "" Then
Data3.RecordSource = "Select * from Dados where Grupo= " & CLng(txtgrupo.Text)
Data3.Refresh
end if
end sub

ele da o seguinte erro

Data type mismatch in criteria expression

Obrigado desde já
USUARIO.EXCLUIDOS 07/05/2004 15:19:27
#23547
Resposta escolhida
Caro Propar:

Você não pode concatenar uma variavel Clng (numerica) com um string (alfanumérico).

Tente:

Data3.RecordSource = "Select * from Dados where Grupo = ' " & trim(str((txtgrupo.Text)) & " ' "


Obs. coloquei espaços antes/depois dos apostrofes ('), só pra visualizar, mas não tem.
USUARIO.EXCLUIDOS 07/05/2004 15:21:04
#23549
Propar:

Tem um parenteses à  mais:

Data3.RecordSource = "Select * from Dados where Grupo = ' " & trim(str(txtgrupo.Text)) & " ' "
USUARIO.EXCLUIDOS 07/05/2004 15:37:41
#23564
Propar:

Voce verificou o RecordCount ? Pode ser que não tenha nada no banco com a pesquisa que vc fez.

Se o campo na tabela for numérico, retire os apóstrofes:

Data3.RecordSource = "Select * from Dados where Grupo = " & trim(str(txtgrupo.Text))
USUARIO.EXCLUIDOS 07/05/2004 15:40:50
#23567
Propar:

Explicando melhor:

se o campo Grupo na tabela for numérico, seu RecordSource deverá ficar assim:

Select * from Dados where Grupo = 001 por exemplo

Se for texto (alfanumerico), deverá ficar assim:

Select * from Dados where Grupo = '001'
USUARIO.EXCLUIDOS 07/05/2004 16:00:47
#23579
Propar:

Então, se na tabela estiver texto, vc terá que usar com as apóstrofes (').

Suponho que vc está fazendo com Controle de Dados Acoplado. Se for, use::

Data3.RecordSource = "Select * from Dados where Grupo = ' " & trim(str(txtgrupo.Text)) & " ' "
Data3.Refresh
If Data3.RecordSet.RecordCount = 0 then
.
. 'não tem registros
.
end if
Tópico encerrado , respostas não são mais permitidas