ERRO OVERFLOW 6 UPDATE FIREBIRD
Segui todas as suas instruções, com o BreakPoint na linha admissão, e fiz o debug no Immediate e a mensagem de Overflow apareceu...
e agora????
é um TextBox ou um MaskEdit?
Se for um TextoBox faça assim
IIf(Trim(txtAdmissao.Text) = [Ô][Ô], [Ô]Null[Ô], Format(txtAdmissao.Text, [Ô]yyyy/MM/dd[Ô]))
Se for um maskEdit faça assim
IIf(txtAdmissao.ClipText = [Ô][Ô], [Ô]Null[Ô], Format(txtAdmissao.Text, [Ô]yyyy/MM/dd[Ô]))
ou tente assim
IIf(not isDate(trim(txtAdmissao.Text), [Ô]Null[Ô], Format(txtAdmissao.Text, [Ô]yyyy/MM/dd[Ô]))
Para esta função em MaskEditBox o PrompInclue tem que estar false (não é?)
Se eu altero para True, carrega os dados, o erro do txtAdmissão some e ele ele gera um novo erro no [ô]WHERE[ô]... mesmo dando o espaço que você disse que deveria haver....
Atualmente o promptinclue está false ( se eu o colocar true, também dá erro na função add que está funcionando 100%)
Confira o código...:
Citação:
[ô]função para salvar a edição
[ô]Salva os dados digitados
sSQL = [Ô][Ô]
sSQL = sSQL & [Ô]UPDATE FUNCIONARIOS SET NOME = [ô][Ô] & txtNome.Text & [Ô][ô],[Ô]
sSQL = sSQL & [Ô]ENDERECO = [ô][Ô] & cboEndereco.Text & [Ô][ô],[Ô]
sSQL = sSQL & [Ô]NUMERO = [ô][Ô] & txtNumero.Text & [Ô][ô],[Ô]
sSQL = sSQL & [Ô]BAIRRO = [ô][Ô] & cboBairro.Text & [Ô][ô],[Ô]
sSQL = sSQL & [Ô]CIDADE = [ô][Ô] & cboCidade.Text & [Ô][ô],[Ô]
sSQL = sSQL & [Ô]TELEFONE = [ô][Ô] & IIf(txtTel.ClipText = [Ô][Ô], Empty, Format(txtTel.Text, [Ô](##)####-####[Ô])) & [Ô][ô],[Ô]
sSQL = sSQL & [Ô]CELULAR = [ô][Ô] & IIf(txtCel.ClipText = [Ô][Ô], Empty, Format(txtCel.Text, [Ô](##)####-#####[Ô])) & [Ô][ô],[Ô]
sSQL = sSQL & [Ô]ADMISSAO = [ô][Ô] & IIf(txtAdmissao.ClipText = [Ô][Ô], Empty, Format(txtAdmissao.Text, [Ô]yyyy/mm/dd[Ô])) & [Ô][ô],[Ô]
sSQL = sSQL & [Ô]DEMISSAO = [ô][Ô] & IIf(txtDemissao.ClipText = [Ô][Ô], Empty, Format(txtDemissao.Text, [Ô]yyyy/mm/dd[Ô])) & [Ô][ô],[Ô]
sSQL = sSQL & [Ô]ATIVO = [ô][Ô] & IIf(chkFuncionario.Value = vbChecked, 1, 0) & [Ô][ô],[Ô]
sSQL = sSQL & [Ô]OBSERVACAO = [ô][Ô] & txtObservacao.Text & [Ô][ô],[Ô]
sSQL = sSQL & [Ô] WHERE CODIGO = [ô][Ô] & txtCodigo.Text & [Ô][ô][Ô]
With ConConexao
.ActiveConnection = CONEXAO
.CommandType = adCmdText
.CommandText = sSQL
CNN.BeginTrans
.Execute
CNN.CommitTrans
End With
não deve haver virgula no ultimo campo que antecede o WHERE
não sei também se o FIREBIRD converte VARCHAR para INTEGER. Se o seu campo CODIGO for do tipo numérico não use o apóstrofo deixe sem dessa maneira
sSQL = sSQL & [Ô] WHERE CODIGO = [Ô] & txtCodigo.Text
Vja se resolve o seu problema
Overflow passou do Admissão para o Demissão...rs.
Dá para dormir com um barulho desse?
mudou o Format() com os [Ô]MM[Ô]?
Tirou a virgula de onde falei?
poste como esta a query agora.
Citação:
[ô]função para salvar a edição
[ô]Salva os dados digitados
sSQL = [Ô][Ô]
sSQL = sSQL & [Ô]UPDATE FUNCIONARIOS SET NOME = [ô][Ô] & txtNome.Text & [Ô][ô],[Ô]
sSQL = sSQL & [Ô]ENDERECO = [ô][Ô] & cboEndereco.Text & [Ô][ô],[Ô]
sSQL = sSQL & [Ô]NUMERO = [ô][Ô] & txtNumero.Text & [Ô][ô],[Ô]
sSQL = sSQL & [Ô]BAIRRO = [ô][Ô] & cboBairro.Text & [Ô][ô],[Ô]
sSQL = sSQL & [Ô]CIDADE = [ô][Ô] & cboCidade.Text & [Ô][ô],[Ô]
sSQL = sSQL & [Ô]TELEFONE = [ô][Ô] & IIf(txtTel.ClipText = [Ô][Ô], Empty, Format(txtTel.Text, [Ô](##)####-####[Ô])) & [Ô][ô],[Ô]
sSQL = sSQL & [Ô]CELULAR = [ô][Ô] & IIf(txtCel.ClipText = [Ô][Ô], Empty, Format(txtCel.Text, [Ô](##)####-#####[Ô])) & [Ô][ô],[Ô]
sSQL = sSQL & [Ô]ADMISSAO = [ô][Ô] & IIf(txtAdmissao.ClipText = [Ô][Ô], Empty, Format(txtAdmissao.Text, [Ô]yyyy/mm/dd[Ô])) & [Ô][ô],[Ô]
sSQL = sSQL & [Ô]DEMISSAO = [ô][Ô] & IIf(txtDemissao.ClipText = [Ô][Ô], Empty, Format(txtDemissao.Text, [Ô]yyyy/mm/dd[Ô])) & [Ô][ô],[Ô]
sSQL = sSQL & [Ô]ATIVO = [ô][Ô] & IIf(chkFuncionario.Value = vbChecked, 1, 0) & [Ô][ô],[Ô]
sSQL = sSQL & [Ô]OBSERVACAO = [ô][Ô] & txtObservacao.Text & [Ô][ô][Ô]
sSQL = sSQL & [Ô] WHERE CODIGO = [Ô] & txtCodigo.Text
With ConConexao
.ActiveConnection = CONEXAO
.CommandType = adCmdText
.CommandText = sSQL
CNN.BeginTrans
.Execute
CNN.CommitTrans
End With
Criei um Form e coloquei um MaskEdit/Botão/Label
Na MaskEdit mudei a propriedade FORMAT para dd/mm/yyyy e nenhuma mascara (Essa propriedade não é reconhecida pelo objeto)
Dentro do Botão coloquei a expressão
Label1.Caption = [Ô][ô][Ô] & IIf(MaskEdBox1.ClipText = [Ô][Ô], Empty, Format(MaskEdBox1.Text, [Ô]yyyy/MM/dd[Ô])) & [Ô][ô][Ô]
Porém o erro só aconteceu quando eu digitei uma data sem separador, exemplos abaixo:
23/01/2014 = Funcionou
01/23/2014 = Funcionou
2014/23/01 = Funcionou
2014/01/23 = Funcionou
23-01-2014 = Funcionou
01-23-2014 = Funcionou
2014-23-01 = Funcionou
2014-01-23 = Funcionou
23012014 = Não Funcionou, pois não é uma data valida mesmo que a propriedade FORMAT esteja como dd/mm/yyyy.
Verifique como esta sendo digitado no campo, pois a não achei inconsistência na instrução SQL.
Caso queira poste um print da tela preenchida ou até mesmo um FORM com as mesmas configurações do seu sistema e os dados para preenchimento.
MuitÃssimo obrigado pela presteza, ajuda e disponibilidades.... mas... fui vencido pelo maskEdBox.
Parti para as adaptações com Textbox que tanto tenho desgosto... mas fazer..
...agora está funciona direitinho.
Baixei umas validações de telefone e data e atribui ao textbox.
Mais uma vez um abraço!