UPDATE E TABELA

JPAULO101 29/05/2015 15:41:38
#447184
Caros, alguém já se deparou com esse erro que mostra na figura, pois estou tentando fazer as alterações na tabela com banco Firebirdo mais esse erro fica persistindo. Alguém poderia me ajudar a corrigir esse erro. Fico grato com ajuda de todos.

Private Sub cmdAlterar_Click()

Dim sSQL As String
Dim Msg1 As String
Dim Rs As New ADODB.Recordset
On Error GoTo erro

Msg1 = [Ô][Ô]
Msg1 = Msg1 & [Ô] ** AVISO ** [Ô] & vbNewLine & vbNewLine
Msg1 = Msg1 & [Ô]Confirmar alteração do cadastro [Ô] & Format(Rs.Fields([Ô]CODIGO[Ô]), [Ô]000[Ô]) & [Ô].[Ô] & vbNewLine
If MsgBox(Msg1, vbInformation + vbYesNo, [Ô]Funcionário[Ô]) = vbYes Then

sSQL = sSQL & [Ô]UPDATE TBLFUNCIONARIO SET [Ô]
sSQL = sSQL & [Ô]NOME=[ô][Ô] & txtNome.Text & [Ô][ô],[Ô]
sSQL = sSQL & [Ô]RG=[ô][Ô] & txtRG.Text & [Ô][ô],[Ô]
sSQL = sSQL & [Ô]CPF=[ô][Ô] & txtCPF.Text & [Ô][ô],[Ô]

sSQL = sSQL & [Ô]DTNASCIMENTO=[Ô] & IIf(MskNascimento.Text = [Ô][Ô], [Ô]Null[Ô], [Ô][ô][Ô] & Format(MskNascimento, [Ô]dd.mm.yyyy[Ô]) & [Ô][ô],[Ô])
sSQL = sSQL & [Ô]DTNASCIMENTO=[Ô] & IIf(MskAdmissao.Text = [Ô][Ô], [Ô]Null[Ô], [Ô][ô][Ô] & Format(MskAdmissao, [Ô]dd.mm.yyyy[Ô]) & [Ô][ô],[Ô])
sSQL = sSQL & [Ô]DTNASCIMENTO=[Ô] & IIf(MskCadastro.Text = [Ô][Ô], [Ô]Null[Ô], [Ô][ô][Ô] & Format(MskCadastro, [Ô]dd.mm.yyyy[Ô]) & [Ô][ô],[Ô])

sSQL = sSQL & [Ô]CTPS=[ô][Ô] & txtCTPS.Text & [Ô][ô],[Ô]
sSQL = sSQL & [Ô]SERIE=[ô][Ô] & txtSerie.Text & [Ô][ô],[Ô]
sSQL = sSQL & [Ô]TELEFONE1=[ô][Ô] & txtTelefone1.Text & [Ô][ô],[Ô]
sSQL = sSQL & [Ô]TELEFONE2=[ô][Ô] & txtTelefone2.Text & [Ô][ô],[Ô]
sSQL = sSQL & [Ô]CARGO=[ô][Ô] & CboCargo.Text & [Ô][ô],[Ô]
sSQL = sSQL & [Ô]SETOR=[ô][Ô] & txtSetor.Text & [Ô][ô],[Ô]
sSQL = sSQL & [Ô]EMAIL=[ô][Ô] & txtEmail.Text & [Ô][ô],[Ô]
sSQL = sSQL & [Ô]ATIVO=[ô][Ô] & OptAtivo.Value & [Ô][ô],[Ô]
sSQL = sSQL & [Ô]INATIVO=[ô][Ô] & OptInativo.Value & [Ô][ô],[Ô]
sSQL = sSQL & [Ô]CEP=[ô][Ô] & txtcep.Text & [Ô][ô],[Ô]
sSQL = sSQL & [Ô]TIPOVIA=[ô][Ô] & CboTipo.Text & [Ô][ô],[Ô]
sSQL = sSQL & [Ô]LOGRADOURO=[ô][Ô] & txtlogradouro.Text & [Ô][ô],[Ô]
sSQL = sSQL & [Ô]MUNICIPIO=[ô][Ô] & txtmunicipio.Text & [Ô][ô],[Ô]
sSQL = sSQL & [Ô]NUMERO=[ô][Ô] & txtnumero.Text & [Ô][ô],[Ô]
sSQL = sSQL & [Ô]BAIRRO=[ô][Ô] & txtbairro.Text & [Ô][ô],[Ô]
sSQL = sSQL & [Ô]COMPLEMENTO=[ô][Ô] & txtcomplemento.Text & [Ô][ô],[Ô]
sSQL = sSQL & [Ô]UF=[ô][Ô] & txtuf.Text & [Ô][ô],[Ô]
sSQL = sSQL & [Ô]CIDADE=[ô][Ô] & txtResp.Text & [Ô][ô],[Ô]

sSQL = sSQL & [Ô]E1=[Ô] & IIf(txtentrada1.Text = [Ô][Ô], [Ô]Null[Ô], [Ô][ô][Ô] & Format(txtentrada1, [Ô]hh/mm/ss[Ô]) & [Ô][ô],[Ô])
sSQL = sSQL & [Ô]E2=[Ô] & IIf(txtentrada2.Text = [Ô][Ô], [Ô]Null[Ô], [Ô][ô][Ô] & Format(txtentrada2, [Ô]hh/mm/ss[Ô]) & [Ô][ô],[Ô])
sSQL = sSQL & [Ô]S1=[Ô] & IIf(txtsaida1.Text = [Ô][Ô], [Ô]Null[Ô], [Ô][ô][Ô] & Format(txtsaida1, [Ô]hh/mm/ss[Ô]) & [Ô][ô],[Ô])
sSQL = sSQL & [Ô]S2=[Ô] & IIf(txtsaida2.Text = [Ô][Ô], [Ô]Null[Ô], [Ô][ô][Ô] & Format(txtsaida2, [Ô]hh/mm/ss[Ô]) & [Ô][ô],[Ô])

sSQL = sSQL & [Ô]SEGUNDA=[ô][Ô] & IIf(chkSegunda.Value, 1, 0) & [Ô][ô],[Ô]
sSQL = sSQL & [Ô]TERCA=[ô][Ô] & IIf(chkTerca.Value, 1, 0) & [Ô][ô],[Ô]
sSQL = sSQL & [Ô]QUARTA=[ô][Ô] & IIf(chkQuarta.Value, 1, 0) & [Ô][ô],[Ô]
sSQL = sSQL & [Ô]QUINTA=[ô][Ô] & IIf(chkQuinta.Value, 1, 0) & [Ô][ô] [Ô]
sSQL = sSQL & [Ô]SEXTA=[ô][Ô] & IIf(chkSexta.Value, 1, 0) & [Ô][ô] [Ô]
sSQL = sSQL & [Ô]SABADO=[ô][Ô] & IIf(chkSabado.Value, 1, 0) & [Ô][ô] [Ô]
sSQL = sSQL & [Ô]DOMINGO=[ô][Ô] & IIf(chkDomingo.Value, 1, 0) & [Ô][ô] [Ô]
sSQL = sSQL & [Ô]WHERE CODIGO=[Ô] & Int(txtCodigo.Text)

conexao.BeginTrans
conexao.Execute sSQL
conexao.CommitTrans

MsgBox [Ô]Registro alterado com sucesso![Ô], vbInformation, [Ô]Cadastro de Funcionário[Ô]

End If
Exit Sub
erro:
conexao.RollbackTrans
MsgBox [Ô]Ocorreu um erro ao alterar o cadastro[Ô] & vbCrLf & Err.Description, vbExclamation, [Ô]Erro[Ô]
End Sub

KERPLUNK 29/05/2015 17:40:01
#447197
Primeiramente, você deveria parametrizar seus comandos SQL. é mais seguro e a maneira mais correta de se fazer. Segundo, até onde sei, o Firebird, você precisa criar a transação
OMAR2011 30/05/2015 13:58:03
#447215
Resposta escolhida
If MsgBox([Ô]Deseja qualquer coisa? [Ô] & txtCodigo.Text & [Ô] [Ô], vbExclamation + vbDefaultButton3 + vbYesNoCancel, [Ô]Aviso[Ô]) = vbYes Then
End If
Não precisa ficar declarando variável para msgbox,Um exemplo acima.
Private Sub cmdAlterar_Click()
Dim sSQL As String
[txt-color=#e80000]Dim Msg1 As String[/txt-color] Pode excluir isto
Dim Rs As New ADODB.Recordset Não tem a menor necessidade,visto que [txt-color=#e80000][Ô]conexao.Execute sSQL[Ô][/txt-color]
sSQL = sSQL & [Ô]DTNASCIMENTO=[Ô] & IIf(MskNascimento.Text = [Ô][Ô], [Ô]Null[Ô], [Ô][ô][Ô] & Format([txt-color=#e80000]MskNascimento, [Ô]dd.mm.yyyy[Ô])[/txt-color] & [Ô][ô],[Ô]) Nunca vi tal formatação para Data
Msg1 = Msg1 & [Ô]Confirmar alteração do cadastro [Ô] & Format[txt-color=#e80000](Rs.Fields([Ô]CODIGO[Ô][/txt-color]), [Ô]000[Ô]) & [Ô].[Ô] & vbNewLine Isto vai da erro, pois não abriu tabela e o desejado
não vai acontecer.

JPAULO101 31/05/2015 16:05:38
#447226
[txt-color=#0000f0]Olá OMAR2011, fiz as alterações como você recomendou, mais continua dando o mesmo erro. Na formatação da data, caso altere gerar outro erro, só está gravando como essa formação. Segue anexo exemplo.[/txt-color]

Private Sub cmdAlterar_Click()

Dim sSQL As String
On Error GoTo erro

If MsgBox([Ô]Confirmar alteração do cadastro? [Ô] & txtCodigo.Text & [Ô] [Ô], vbExclamation + vbDefaultButton3 + vbYesNoCancel, [Ô]Aviso[Ô]) = vbYes Then

sSQL = sSQL & [Ô]UPDATE TBLFUNCIONARIO SET [Ô]
sSQL = sSQL & [Ô]NOME=[ô][Ô] & txtNome.Text & [Ô][ô],[Ô]
sSQL = sSQL & [Ô]RG=[ô][Ô] & txtRG.Text & [Ô][ô],[Ô]
sSQL = sSQL & [Ô]CPF=[ô][Ô] & txtCPF.Text & [Ô][ô],[Ô]

sSQL = sSQL & [Ô]DTNASCIMENTO=[Ô] & IIf(MskNascimento.Text = [Ô][Ô], [Ô]Null[Ô], [Ô][ô][Ô] & Format(MskNascimento, [Ô]dd.mm.yyyy[Ô]) & [Ô][ô],[Ô])
sSQL = sSQL & [Ô]DTNASCIMENTO=[Ô] & IIf(MskAdmissao.Text = [Ô][Ô], [Ô]Null[Ô], [Ô][ô][Ô] & Format(MskAdmissao, [Ô]dd.mm.yyyy[Ô]) & [Ô][ô],[Ô])
sSQL = sSQL & [Ô]DTNASCIMENTO=[Ô] & IIf(MskCadastro.Text = [Ô][Ô], [Ô]Null[Ô], [Ô][ô][Ô] & Format(MskCadastro, [Ô]dd.mm.yyyy[Ô]) & [Ô][ô],[Ô])

sSQL = sSQL & [Ô]CTPS=[ô][Ô] & txtCTPS.Text & [Ô][ô],[Ô]
sSQL = sSQL & [Ô]SERIE=[ô][Ô] & txtSerie.Text & [Ô][ô],[Ô]
sSQL = sSQL & [Ô]TELEFONE1=[ô][Ô] & txtTelefone1.Text & [Ô][ô],[Ô]
sSQL = sSQL & [Ô]TELEFONE2=[ô][Ô] & txtTelefone2.Text & [Ô][ô],[Ô]
sSQL = sSQL & [Ô]CARGO=[ô][Ô] & CboCargo.Text & [Ô][ô],[Ô]
sSQL = sSQL & [Ô]SETOR=[ô][Ô] & txtSetor.Text & [Ô][ô],[Ô]
sSQL = sSQL & [Ô]EMAIL=[ô][Ô] & txtEmail.Text & [Ô][ô],[Ô]
sSQL = sSQL & [Ô]ATIVO=[ô][Ô] & OptAtivo.Value & [Ô][ô],[Ô]
sSQL = sSQL & [Ô]INATIVO=[ô][Ô] & OptInativo.Value & [Ô][ô],[Ô]
sSQL = sSQL & [Ô]CEP=[ô][Ô] & txtcep.Text & [Ô][ô],[Ô]
sSQL = sSQL & [Ô]TIPOVIA=[ô][Ô] & CboTipo.Text & [Ô][ô],[Ô]
sSQL = sSQL & [Ô]LOGRADOURO=[ô][Ô] & txtlogradouro.Text & [Ô][ô],[Ô]
sSQL = sSQL & [Ô]MUNICIPIO=[ô][Ô] & txtmunicipio.Text & [Ô][ô],[Ô]
sSQL = sSQL & [Ô]NUMERO=[ô][Ô] & txtnumero.Text & [Ô][ô],[Ô]
sSQL = sSQL & [Ô]BAIRRO=[ô][Ô] & txtbairro.Text & [Ô][ô],[Ô]
sSQL = sSQL & [Ô]COMPLEMENTO=[ô][Ô] & txtcomplemento.Text & [Ô][ô],[Ô]
sSQL = sSQL & [Ô]UF=[ô][Ô] & txtuf.Text & [Ô][ô],[Ô]
sSQL = sSQL & [Ô]CIDADE=[ô][Ô] & txtResp.Text & [Ô][ô],[Ô]

sSQL = sSQL & [Ô]E1=[Ô] & IIf(txtentrada1.Text = [Ô][Ô], [Ô]Null[Ô], [Ô][ô][Ô] & Format(txtentrada1, [Ô]hh:mm:ss[Ô]) & [Ô][ô],[Ô])
sSQL = sSQL & [Ô]E2=[Ô] & IIf(txtentrada2.Text = [Ô][Ô], [Ô]Null[Ô], [Ô][ô][Ô] & Format(txtentrada2, [Ô]hh:mm:ss[Ô]) & [Ô][ô],[Ô])
sSQL = sSQL & [Ô]S1=[Ô] & IIf(txtsaida1.Text = [Ô][Ô], [Ô]Null[Ô], [Ô][ô][Ô] & Format(txtsaida1, [Ô]hh:mm:ss[Ô]) & [Ô][ô],[Ô])
sSQL = sSQL & [Ô]S2=[Ô] & IIf(txtsaida2.Text = [Ô][Ô], [Ô]Null[Ô], [Ô][ô][Ô] & Format(txtsaida2, [Ô]hh:mm:ss[Ô]) & [Ô][ô],[Ô])

sSQL = sSQL & [Ô]SEGUNDA=[ô][Ô] & IIf(chkSegunda.Value, 1, 0) & [Ô][ô],[Ô]
sSQL = sSQL & [Ô]TERCA=[ô][Ô] & IIf(chkTerca.Value, 1, 0) & [Ô][ô],[Ô]
sSQL = sSQL & [Ô]QUARTA=[ô][Ô] & IIf(chkQuarta.Value, 1, 0) & [Ô][ô],[Ô]
sSQL = sSQL & [Ô]QUINTA=[ô][Ô] & IIf(chkQuinta.Value, 1, 0) & [Ô][ô] [Ô]
sSQL = sSQL & [Ô]SEXTA=[ô][Ô] & IIf(chkSexta.Value, 1, 0) & [Ô][ô] [Ô]
sSQL = sSQL & [Ô]SABADO=[ô][Ô] & IIf(chkSabado.Value, 1, 0) & [Ô][ô] [Ô]
sSQL = sSQL & [Ô]DOMINGO=[ô][Ô] & IIf(chkDomingo.Value, 1, 0) & [Ô][ô] [Ô]
sSQL = sSQL & [Ô]WHERE CODIGO=[Ô] & Int(txtCodigo.Text)

conexao.BeginTrans
conexao.Execute sSQL
conexao.CommitTrans

MsgBox [Ô]Registro alterado com sucesso![Ô], vbInformation, [Ô]Cadastro de Funcionário[Ô]

End If
Exit Sub
erro:
conexao.RollbackTrans
MsgBox [Ô]Ocorreu um erro ao alterar o cadastro[Ô] & vbCrLf & Err.Description, vbExclamation, [Ô]Erro[Ô]
End Sub
JPAULO101 01/06/2015 10:27:59
#447246
Olá pessoal, final de senha tranquilo, olha fiz alguns ajuste na rotina, mais quando fui rodar para fazer teste de UPDATE, mostra esse erro.
JPAULO101 01/06/2015 11:13:40
#447247
Caso alguém queira verificar como ficou a rotina, estou encaminhando para baixar. Desde já agradeço.
JPAULO101 01/06/2015 17:42:36
#447263
Olá pessoal, alguém poderia mim da uma força. Fico muito agradecido.

Abraço.
OMAR2011 01/06/2015 20:27:05
#447268
Tive que alterar.
Preencha todas as caixa de texto e vai retirando cada valor da caixa para verificar o erro.
Private Sub cmdAlterar_Click()

On Error GoTo erro

If MsgBox([Ô]Confirmar alteração do cadastro? [Ô] & txtCodigo.Text & [Ô] [Ô], vbExclamation + vbDefaultButton3 + vbYesNoCancel, [Ô]Aviso[Ô]) = vbYes Then

sSQL = sSQL & [Ô]UPDATE TBLFUNCIONARIO SET [Ô]
sSQL = sSQL & [Ô]NOME=[ô][Ô] & txtNome.Text & [Ô][ô],[Ô]
sSQL = sSQL & [Ô]RG=[ô][Ô] & txtRG.Text & [Ô][ô],[Ô]
sSQL = sSQL & [Ô]CPF=[ô][Ô] & txtCPF.Text & [Ô][ô],[Ô]
sSQL = sSQL & [Ô]DTNASCIMENTO=[Ô] & IIf(txtdata_nascimento.Text = [Ô][Ô], [Ô]Null[Ô], [Ô][ô][Ô] & Format(txtdata_nascimento.Text, [Ô]yyyy/mm/dd[Ô])) & [Ô][ô],[Ô]
sSQL = sSQL & [Ô]DTADMISSAO=[Ô] & IIf(txtdata_Admissao.Text = [Ô][Ô], [Ô]Null[Ô], [Ô][ô][Ô] & Format(txtdata_Admissao.Text, [Ô]yyyy/mm/dd[Ô])) & [Ô][ô],[Ô]
sSQL = sSQL & [Ô]DTCADASTRO=[Ô] & IIf(txtdata_Cadastro.Text = [Ô][Ô], [Ô]Null[Ô], [Ô][ô][Ô] & Format(txtdata_Cadastro.Text, [Ô]yyyy/mm/dd[Ô]) & [Ô][ô],[Ô])


sSQL = sSQL & [Ô]CTPS=[ô][Ô] & txtCTPS.Text & [Ô][ô],[Ô]
sSQL = sSQL & [Ô]SERIE=[ô][Ô] & txtSerie.Text & [Ô][ô],[Ô]
sSQL = sSQL & [Ô]TELEFONE1=[ô][Ô] & txtTelefone1.Text & [Ô][ô],[Ô]
sSQL = sSQL & [Ô]TELEFONE2=[ô][Ô] & txtTelefone2.Text & [Ô][ô],[Ô]
sSQL = sSQL & [Ô]CARGO=[ô][Ô] & CboCargo.Text & [Ô][ô],[Ô]
sSQL = sSQL & [Ô]SETOR=[ô][Ô] & txtSetor.Text & [Ô][ô],[Ô]
sSQL = sSQL & [Ô]EMAIL=[ô][Ô] & txtEmail.Text & [Ô][ô],[Ô]
sSQL = sSQL & [Ô]ATIVO=[ô][Ô] & IIf(OptAtivo.Value, 1, 0) & [Ô][ô],[Ô]
sSQL = sSQL & [Ô]INATIVO=[ô][Ô] & IIf(OptInativo.Value, 1, 0) & [Ô][ô],[Ô]
sSQL = sSQL & [Ô]CEP=[ô][Ô] & txtcep.Text & [Ô][ô],[Ô]
sSQL = sSQL & [Ô]TIPOVIA=[ô][Ô] & CboTipo.Text & [Ô][ô],[Ô]
sSQL = sSQL & [Ô]LOGRADOURO=[ô][Ô] & txtlogradouro.Text & [Ô][ô],[Ô]
sSQL = sSQL & [Ô]MUNICIPIO=[ô][Ô] & txtmunicipio.Text & [Ô][ô],[Ô]
sSQL = sSQL & [Ô]NUMERO=[ô][Ô] & txtnumero.Text & [Ô][ô],[Ô]
sSQL = sSQL & [Ô]BAIRRO=[ô][Ô] & txtbairro.Text & [Ô][ô],[Ô]
sSQL = sSQL & [Ô]COMPLEMENTO=[ô][Ô] & txtcomplemento.Text & [Ô][ô],[Ô]

sSQL = sSQL & [Ô]CIDADE=[ô][Ô] & txtcidade.Text & [Ô][ô],[Ô]

sSQL = sSQL & [Ô]E1=[Ô] & IIf(txtentrada1.Text = [Ô][Ô], [Ô]Null[Ô], [Ô][ô][Ô] & Format(txtentrada1, [Ô]hh:mm:ss[Ô]) & [Ô][ô],[Ô])
sSQL = sSQL & [Ô]E2=[Ô] & IIf(txtentrada2.Text = [Ô][Ô], [Ô]Null[Ô], [Ô][ô][Ô] & Format(txtentrada2, [Ô]hh:mm:ss[Ô]) & [Ô][ô],[Ô])
sSQL = sSQL & [Ô]S1=[Ô] & IIf(txtsaida1.Text = [Ô][Ô], [Ô]Null[Ô], [Ô][ô][Ô] & Format(txtsaida1, [Ô]hh:mm:ss[Ô]) & [Ô][ô],[Ô])
sSQL = sSQL & [Ô]S2=[Ô] & IIf(txtsaida2.Text = [Ô][Ô], [Ô]Null[Ô], [Ô][ô][Ô] & Format(txtsaida2, [Ô]hh:mm:ss[Ô]) & [Ô][ô],[Ô])

sSQL = sSQL & [Ô]SEGUNDA=[ô][Ô] & IIf(chkSegunda.Value, 1, 0) & [Ô][ô],[Ô]
sSQL = sSQL & [Ô]TERCA=[ô][Ô] & IIf(chkTerca.Value, 1, 0) & [Ô][ô],[Ô]
sSQL = sSQL & [Ô]QUARTA=[ô][Ô] & IIf(chkQuarta.Value, 1, 0) & [Ô][ô],[Ô]
sSQL = sSQL & [Ô]QUINTA=[ô][Ô] & IIf(chkQuinta.Value, 1, 0) & [Ô][ô], [Ô]
sSQL = sSQL & [Ô]SEXTA=[ô][Ô] & IIf(chkSexta.Value, 1, 0) & [Ô][ô],[Ô]
sSQL = sSQL & [Ô]SABADO=[ô][Ô] & IIf(chkSabado.Value, 1, 0) & [Ô][ô], [Ô]
sSQL = sSQL & [Ô]DOMINGO=[ô][Ô] & IIf(chkDomingo.Value, 1, 0) & [Ô][ô], [Ô]
sSQL = sSQL & [Ô]UF=[ô][Ô] & txtuf.Text & [Ô][ô] WHERE CODIGO=[ô][Ô] & txtCodigo.Text & [Ô][ô][Ô]

conexao.BeginTrans
conexao.Execute sSQL
conexao.CommitTrans

MsgBox [Ô]Registro alterado com sucesso![Ô], vbInformation, [Ô]Cadastro de Funcionário[Ô]

End If
Exit Sub
erro:
conexao.RollbackTrans
MsgBox [Ô]Ocorreu um erro ao alterar o cadastro[Ô] & vbCrLf & Err.Description, vbExclamation, [Ô]Erro[Ô]
End Sub
JPAULO101 01/06/2015 22:17:30
#447275
Obrigado OMAR2011, cara funcionou direitinho analisei de acordo com sua dica, era os formatos de data e hora que o banco não estava reconhecendo. Obrigado mesmo.
Tópico encerrado , respostas não são mais permitidas