ESTOU FICANDO MALUCO COM ESTE CODIGO???

LCSD 19/04/2004 17:01:51
#21414
Galera, é o seguinte,

eu arrumei este código e ficou da seguinte forma:

"Select * from followup where cliente =" & CDbl(lblCodCli.Caption) & " and dt_ligacao = '" & Date & "' And hr_ligacao = '" & Time & "'"

Mas, agora, depois que eu vou gravar o segundo registro, me dá o seguinte erro: Data type mismatch in criteria expression.

Enfim, qual é o problema???
USUARIO.EXCLUIDOS 19/04/2004 19:39:05
#21439
Resposta escolhida
Olá.
A instrução utilizada originalmente é:

"Select * from followup where cliente =" & CDbl(lblCodCli.Caption) & " and dt_ligacao = '" & Date & "' And hr_ligacao = '" & Time & "'"

Essa instrução funcionaria bem caso os campos fossem:
cliente = duplo
dt_ligacao = texto
hr_ligacao = texto

E se houverem registros.

Não creio que seja esse o caso. Você cita que sua consulta funciona bem se for retirado o campo hr_ligação. Os campos "podem" ser então dos tipos:
cliente = inteiro longo (ref. relacionamento com campo de auto-numeração)
dt_ligacao = texto
hr_ligacao = data (formato de hora)

Se for este o caso, a string não irá funcionar mesmo. Tente substituí-la (copiar/colar, mesmo) por:
...
'Validar a seleção
'Por padrão, auto-numeração começa em 1.
'Não retorna nada se o lblCodCli for inválido, sem causar erro.
If IsNumeric(lblCodCli.Caption) = True Then
lblCodCli.Caption = CLng(lblCodCli.Caption)
Else
lblCodCli.Caption = "0"
End If
"Select * from followup where cliente = " & lblCodCli.Caption & " and dt_ligacao = '" & Date & "' And hr_ligacao = #" & Format$(Now,"HH:NN:SS") & ";"
...

Se, por outro lado, o campo dt_ligação for também do tipo data, formatado para data curta ou média, ficaria:

'Validar a seleção
'Por padrão, auto-numeração começa em 1.
'Não retorna nada se o lblCodCli for inválido, sem causar erro.
If IsNumeric(lblCodCli.Caption) = True Then
lblCodCli.Caption = CLng(lblCodCli.Caption)
Else
lblCodCli.Caption = "0"
End If
"Select * from followup where cliente = " & lblCodCli.Caption & " and dt_ligacao = #" & Format$(Now,"mm/dd/yyyy") & "# And hr_ligacao = #" & Format$(Now,"HH:NN:SS") & ";"
...

ou ainda:

'Validar a seleção
'Por padrão, auto-numeração começa em 1.
'Não retorna nada se o lblCodCli for inválido, sem causar erro.
lblCodCli.Caption = Iif(IsNumeric(lblCodCli.Caption) = True, CLng(lblCodCli.Caption), "0")
"Select * from followup where cliente = " & lblCodCli.Caption & " and dt_ligacao = Date And hr_ligacao = #" & Format$(Now,"HH:NN:SS") & ";"
...

Tudo isso, estou me referindo a bases de dados MS-Access ou SQL Server.
Para Oracle, você teria de usar o ToDate, por exemplo.
Verifique, portanto, qual o formato de cada um dos campos e qual o engine de dados está sendo utilizado, e poste aqui, ok?
Tópico encerrado , respostas não são mais permitidas