ERROR 3464?
Alguém poderia me explicar o motivo desse erro:
"Data type mismatch in criteria expression. (Error 3464)"
é quando estou salvando algo no BD e da uma queda de energia ou o computador é desligado/reiniciado na hora de salvar os dados tb?
Um dos motivos seria pela fato de eu não estar utilizando o begintrans e committrans ou ainda porque estou utilizando o componente data com DAO e na inserção utilizo .addnew em vez de um comando DML - "INSERT...", correto? Já vi alguns BD em acess no qual os campos ficam com as palavras "#error", este seria provocado na hora de estar inserindo os dados e acaba tendo uma queda de energia, mas não lembro se o erro era 3464 tb.
"Data type mismatch in criteria expression. (Error 3464)"
é quando estou salvando algo no BD e da uma queda de energia ou o computador é desligado/reiniciado na hora de salvar os dados tb?
Um dos motivos seria pela fato de eu não estar utilizando o begintrans e committrans ou ainda porque estou utilizando o componente data com DAO e na inserção utilizo .addnew em vez de um comando DML - "INSERT...", correto? Já vi alguns BD em acess no qual os campos ficam com as palavras "#error", este seria provocado na hora de estar inserindo os dados e acaba tendo uma queda de energia, mas não lembro se o erro era 3464 tb.
Post o código que está causando o erro.
Com certeza o erro é pq vc está tentando colocar um valor String em um campo numérico, ou vice-versa.
Com certeza o erro é pq vc está tentando colocar um valor String em um campo numérico, ou vice-versa.
Só tem um problema! O erro está acontecendo em um cliente e ele ficou de me enviar o BD, com isso não vai adiantar eu passar o meu código, o BD deve ter armazenado alguma sujeira quando o cliente desligou incorretamente.
Tamanini
A Descrição do Erro "Data type mismatch in criteria expression", indica que está usando tipos de dados incorretos, ou seja, onde deveria estar uma String foi fornecido um número ou qualquer outro tipo de troca de dados.
Reveja o seu código e analise se não deve alterar a SQL ou poste a String que forma a SQL aqui.
[s92]
A Descrição do Erro "Data type mismatch in criteria expression", indica que está usando tipos de dados incorretos, ou seja, onde deveria estar uma String foi fornecido um número ou qualquer outro tipo de troca de dados.
Reveja o seu código e analise se não deve alterar a SQL ou poste a String que forma a SQL aqui.
[s92]
Então o que poderia ser é que o aparelho eletrà 'nico enviou uma string em vez de um número e acabou sendo armazenado em um dos campos do BD, e agora toda vez que o cliente tenta abrir o form gera esse erro quando vai buscar os dados que estão no BD.
Tamanini
Poste a String da SQL senão fica ImpossÃvel a solução!
Faça a validação, IsNumeric(), se não for, converta.
Se for uma String para converter para inteiro, use CInt() e por aà vai.
[s92]
Poste a String da SQL senão fica ImpossÃvel a solução!
Faça a validação, IsNumeric(), se não for, converta.
Se for uma String para converter para inteiro, use CInt() e por aà vai.
[s92]
Tamanini
Já que a coisa tá lá no cliente, tem uma solução bem boba.
Pergunta pra ele se os caracteres aspas simples e aspas duplas estão no nome do produto, é bem provável que voce nao tratado essa situacao e o infeliz esteja tentando inserir algo com estes caracteres.
Já que a coisa tá lá no cliente, tem uma solução bem boba.
Pergunta pra ele se os caracteres aspas simples e aspas duplas estão no nome do produto, é bem provável que voce nao tratado essa situacao e o infeliz esteja tentando inserir algo com estes caracteres.
Segue abaixo o código no qual acontece o erro:
---
no form_load()
strSQLInstrucao = GetSetting("SetAparelhos", "SetInsrucao", "strSQLInicio", "")
If strSQLInstrucao = "" Then
Set DMCRsR = DMCData.OpenRecordset("SELECT * FROM DMCHistRun WHERE Run = " & _
False & " AND DMCNo <> 0 ORDER BY DMCNo, Right(AnoMesDia,7),Right(AnoMesDia,10), Hora")
lblFiltro.Caption = " Todos os Aparelhos "
Else
Set DMCRsR = DMCData.OpenRecordset(strSQLInstrucao)
Aparelho001 = GetSetting("SetAparelhos", "SetInsrucao", "Aparelho")
If (Aparelho001 = "ALL") Then
Aparelho001 = " Todos os Aparelhos filtrados "
Else
ApFiltro = Aparelho001
Aparelho001 = " Aparelho(s) de Nº(s) " & ApFiltro & " filtrado(s) "
End If
DataFim01 = GetSetting("SetAparelhos", "SetInsrucao", "DTFim")
DataIni01 = GetSetting("SetAparelhos", "SetInsrucao", "DTInicio")
DataMes01 = GetSetting("SetAparelhos", "SetInsrucao", "Mes")
If (DataIni01 = "" And DataMes01 = "") Then
lblFiltro.Caption = Aparelho001 & ". "
ElseIf (DataMes01 = "") Then
lblFiltro.Caption = Aparelho001 & "entre " & DataIni01 & " e " & DataFim01 & " . "
Else
lblFiltro.Caption = Aparelho001 & "durante o(s) último(s) " & DataMes01 & " mês(es) . "
End If
End If
If DMCRsR.RecordCount > 0 Then DMCRsR.MoveLast
TdbH = DMCRsR.RecordCount
Call SetListaFinal
---
sub setListaFinal
If DMCRsR.RecordCount > 0 Then
DMCRsR.MoveFirst
Do While Not DMCRsR.EOF
With Me.msfFinal
.Row = .Rows - 1
.RowHeight(.Row) = 225
.Rows = .Rows + 1
TempNap = DMCRsR.Fields("DMCNo")
'NSec = DMCRsR.Fields("NSec")
.Col = 0: .CellAlignment = 4: .Text = TempNap
.Col = 1: .CellAlignment = 4: .Text = DMCRsR.Fields("NLeit")
.Col = 2: .CellAlignment = 1: .Text = DMCRsR.Fields("Data")
Ano = Right(DMCRsR.Fields("AnoMesDia"), 10) & " Ã Â s "
Dia = Left(DMCRsR.Fields("Hora"), 2) & ":" & Mid(DMCRsR.Fields("Hora"), 12, 2)
.Col = 3: .CellAlignment = 1: .Text = Ano & Dia
SrTp0 = DMCRsR.Fields("Descricao")
Tam0 = Len(SrTp0)
Tam1 = InStr(1, SrTp0, " - TmP =")
If Tam1 Then
SrTp1 = Left(SrTp0, (Tam1 - 1)) 'Nome da Descrição
SrTp2 = Right(SrTp0, (Tam0 - Tam1))
Tam1 = Len(SrTp2)
SrTp2 = Right(SrTp2, (Tam1 - 7))
Else
SrTp1 = SrTp0
SrTp2 = ""
End If
.Col = 4: .CellAlignment = 1: .Text = SrTp1
.Col = 5: .CellAlignment = 4: .Text = DMCRsR.Fields("NInt")
.Col = 6: .CellAlignment = 1: .Text = DMCRsR.Fields("DMCId")
.Col = 7: .CellAlignment = 1: .Text = DMCRsR.Fields("ProgID")
End With
DMCRsR.MoveNext
Loop
DMCRsR.Close
Daria para voce gerar um debug.print dessa instrução:
Set DMCRsR = DMCData.OpenRecordset("SELECT * FROM DMCHistRun WHERE Run = " & _ False & " AND DMCNo <> 0 ORDER BY DMCNo, Right(AnoMesDia,7),Right(AnoMesDia,10), Hora")
Webmaster:
Na hora de preencher o textbox que será armazenado no campo descrição estou fazendo tratamento, o usuário não pode digitar aspas simples e nem aspas duplas, o que está passando são:
~;.,+*
Mas eu fiz um teste aqui colocando esse caracteres acima e não tive problema no recebimento dos dados do aparelho. O jeito é esperar até segunda para saber o que está acontecendo.
Mas assim que eu resolver ou não resolver postarei qual foi a causa. é a 1Âê vez que acontece esse erro.
Na hora de preencher o textbox que será armazenado no campo descrição estou fazendo tratamento, o usuário não pode digitar aspas simples e nem aspas duplas, o que está passando são:
~;.,+*
Mas eu fiz um teste aqui colocando esse caracteres acima e não tive problema no recebimento dos dados do aparelho. O jeito é esperar até segunda para saber o que está acontecendo.
Mas assim que eu resolver ou não resolver postarei qual foi a causa. é a 1Âê vez que acontece esse erro.
O erro está acontecendo nesta linha, logo após o else do form_load:
No qual strSQLInstrução possui a seguinte string:
Eu quero que traga todos os históricos de todos aparelhos do último mês.
Detalhe, se tiver poucos históricos não gera erro, como neste tenho 710 registros acaba gerando esse erro!
Set DMCRsR = DMCData.OpenRecordset(strSQLInstrucao)
No qual strSQLInstrução possui a seguinte string:
SELECT * FROM DMCHistRun WHERE Run = False AND DMCNo <> 0 AND CDate(Right([DMCHistRun]![AnoMesDia], 10)) BETWEEN #04/27/2005# AND #05/27/2005# ORDER BY DMCNo,Right(AnoMesDia,7),Right(AnoMesDia,10), Hora
Eu quero que traga todos os históricos de todos aparelhos do último mês.
Detalhe, se tiver poucos históricos não gera erro, como neste tenho 710 registros acaba gerando esse erro!
Tópico encerrado , respostas não são mais permitidas