UPDATE EM TABELA ACCESS

JPAULO101 09/06/2011 11:50:20
#376260
BOM DIA GALERA BLZ. TENHO A SEGUINTE ESTRUTURA NA BASE DE DADOS, E A SEGUINTE QUERY PARA ALTERA OS DADOS, MAIS DOIS CAMPOS NÃO ESTÃO ALTERANDO.

CAMPOS:

FONE
OBS

QUERY

AGRADEÇO SE ALGUéM PODER MIM AJUDAR

ABRAÇOS

[th][/th]
Cabecalho
Msg1 = [Ô][Ô]
Msg1 = Msg1 & [Ô] ** AVISO ** [Ô] & vbNewLine & vbNewLine
Msg1 = Msg1 & [Ô]Confirmar alteração do cadastro [Ô] & Format(rs.Fields([Ô]codigo[Ô]), [Ô]000[Ô]) & [Ô].[Ô] & vbNewLine
If MsgBox(Msg1, vbInformation + vbYesNo, [Ô]Pocket[Ô]) = vbYes Then

sSQL = sSQL & [Ô]UPDATE tblpocket SET [Ô]
sSQL = sSQL & [Ô]sml=[ô][Ô] & atxtSml.Text & [Ô][ô],[Ô]
sSQL = sSQL & [Ô]escritorio=[ô][Ô] & atxtEscritorio.Text & [Ô][ô],[Ô]
sSQL = sSQL & [Ô]aparelho=[ô][Ô] & atxtAparelho.Text & [Ô][ô],[Ô]
sSQL = sSQL & [Ô]sn=[ô][Ô] & atxtsn.Text & [Ô][ô],[Ô]
sSQL = sSQL & [Ô]imei=[ô][Ô] & atxtImei.Text & [Ô][ô],[Ô]
sSQL = sSQL & [Ô]chiptimnovo=[ô][Ô] & atxtChip.Text & [Ô][ô],[Ô]
sSQL = sSQL & [Ô]fone=[ô][Ô] & atxtFone.Text & [Ô][ô],[Ô]
sSQL = sSQL & [Ô]obs=[ô][Ô] & txtObs.Text & [Ô][ô],[Ô]
sSQL = sSQL & [Ô]responsavel=[ô][Ô] & atxtResp.Text & [Ô][ô],[Ô]

sSQL = sSQL & [Ô]CAPA=[Ô] & IIf(Check1.Value, 1, 0) & [Ô],[Ô]
sSQL = sSQL & [Ô]BATERIA=[Ô] & IIf(Check2.Value, 1, 0) & [Ô],[Ô]
sSQL = sSQL & [Ô]CARREGADOR=[Ô] & IIf(Check3.Value, 1, 0) & [Ô],[Ô]
sSQL = sSQL & [Ô]CANETA=[Ô] & IIf(Check4.Value, 1, 0)
sSQL = sSQL & [Ô] WHERE codigo=[Ô] & atxtCodigo.Text
[ô]sSQL = sSQL & [Ô]manutencao=[Ô] & IIf(atxtManut.Text = [Ô][Ô], [Ô]Null[Ô], [Ô]#[Ô] & Format(atxtManut, [Ô]mm/dd/yyyy[Ô]) & [Ô]#[Ô]) & [Ô],[Ô]
[ô]sSQL = sSQL & [Ô]reparo=[Ô] & IIf(atxtReparo.Text = [Ô][Ô], [Ô]Null[Ô], [Ô]#[Ô] & Format(atxtReparo, [Ô]mm/dd/yyyy[Ô]) & [Ô]#[Ô])

con.BeginTrans
con.Execute sSQL
con.CommitTrans

MsgBox [Ô]Registro alterado com sucesso![Ô], vbInformation, [Ô]Cadastro de Equipamento[Ô]
KERPLUNK 09/06/2011 11:53:17
#376261
No código, não tem nada errado que eu veja...
JPAULO101 09/06/2011 14:02:36
#376288
OLÁ KERPLUNK, MAIS QUANDO ALTERO TANTO NO TEXTO OBS E FONE E PESSO PARA ALTERAR, MOSTRA O MSGBOX QUE FOI ALTERADO COM SUCESSO, MAIS QUANDO ABRO O PROGRAMA A ALTERAÇÃO NÃO FOI FEITA.

MARCELO.TREZE 09/06/2011 14:43:38
#376298
VC NÃO FECHOU O IF VEJA

Msg1 = [Ô][Ô]
Msg1 = Msg1 & [Ô] ** AVISO ** [Ô] & vbNewLine & vbNewLine
Msg1 = Msg1 & [Ô]Confirmar alteração do cadastro [Ô] & Format(rs.Fields([Ô]codigo[Ô]), [Ô]000[Ô]) & [Ô].[Ô] & vbNewLine
If MsgBox(Msg1, vbInformation + vbYesNo, [Ô]Pocket[Ô]) = vbYes Then

sSQL = sSQL & [Ô]UPDATE tblpocket SET [Ô]
sSQL = sSQL & [Ô]sml=[ô][Ô] & atxtSml.Text & [Ô][ô],[Ô]
sSQL = sSQL & [Ô]escritorio=[ô][Ô] & atxtEscritorio.Text & [Ô][ô],[Ô]
sSQL = sSQL & [Ô]aparelho=[ô][Ô] & atxtAparelho.Text & [Ô][ô],[Ô]
sSQL = sSQL & [Ô]sn=[ô][Ô] & atxtsn.Text & [Ô][ô],[Ô]
sSQL = sSQL & [Ô]imei=[ô][Ô] & atxtImei.Text & [Ô][ô],[Ô]
sSQL = sSQL & [Ô]chiptimnovo=[ô][Ô] & atxtChip.Text & [Ô][ô],[Ô]
sSQL = sSQL & [Ô]fone=[ô][Ô] & atxtFone.Text & [Ô][ô],[Ô]
sSQL = sSQL & [Ô]obs=[ô][Ô] & txtObs.Text & [Ô][ô],[Ô]
sSQL = sSQL & [Ô]responsavel=[ô][Ô] & atxtResp.Text & [Ô][ô],[Ô]

sSQL = sSQL & [Ô]CAPA=[Ô] & IIf(Check1.Value, 1, 0) & [Ô],[Ô]
sSQL = sSQL & [Ô]BATERIA=[Ô] & IIf(Check2.Value, 1, 0) & [Ô],[Ô]
sSQL = sSQL & [Ô]CARREGADOR=[Ô] & IIf(Check3.Value, 1, 0) & [Ô],[Ô]
sSQL = sSQL & [Ô]CANETA=[Ô] & IIf(Check4.Value, 1, 0)
sSQL = sSQL & [Ô] WHERE codigo=[Ô] & atxtCodigo.Text
[ô]sSQL = sSQL & [Ô]manutencao=[Ô] & IIf(atxtManut.Text = [Ô][Ô], [Ô]Null[Ô], [Ô]#[Ô] & Format(atxtManut, [Ô]mm/dd/yyyy[Ô]) & [Ô]#[Ô]) & [Ô],[Ô]
[ô]sSQL = sSQL & [Ô]reparo=[Ô] & IIf(atxtReparo.Text = [Ô][Ô], [Ô]Null[Ô], [Ô]#[Ô] & Format(atxtReparo, [Ô]mm/dd/yyyy[Ô]) & [Ô]#[Ô])

con.BeginTrans
con.Execute sSQL
con.CommitTrans

MsgBox [Ô]Registro alterado com sucesso![Ô], vbInformation, [Ô]Cadastro de Equipamento[Ô]
[txt-color=#e80000]End If[/txt-color]


JPAULO101 09/06/2011 17:57:04
#376340
MARCELO TINHA COLOCADO O END IF NO FINAL MAIS NÃO TINHA POSTADO. SEGUE QUERY COMPLETA

[th][/th]
Cabecalho
Private Sub cmdAlterar_Click()

Dim sSQL As String
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, [Ô]Pocket[Ô]) = vbYes Then

sSQL = sSQL & [Ô]UPDATE tblpocket SET [Ô]
sSQL = sSQL & [Ô]sml=[ô][Ô] & atxtSml.Text & [Ô][ô],[Ô]
sSQL = sSQL & [Ô]escritorio=[ô][Ô] & atxtEscritorio.Text & [Ô][ô],[Ô]
sSQL = sSQL & [Ô]aparelho=[ô][Ô] & atxtAparelho.Text & [Ô][ô],[Ô]
sSQL = sSQL & [Ô]sn=[ô][Ô] & atxtsn.Text & [Ô][ô],[Ô]
sSQL = sSQL & [Ô]imei=[ô][Ô] & atxtImei.Text & [Ô][ô],[Ô]
sSQL = sSQL & [Ô]chiptimnovo=[ô][Ô] & atxtChip.Text & [Ô][ô],[Ô]
sSQL = sSQL & [Ô]fone=[ô][Ô] & atxtFone.Text & [Ô][ô],[Ô]
sSQL = sSQL & [Ô]obs=[ô][Ô] & txtObs.Text & [Ô][ô],[Ô]
sSQL = sSQL & [Ô]responsavel=[ô][Ô] & atxtResp.Text & [Ô][ô],[Ô]

sSQL = sSQL & [Ô]CAPA=[Ô] & IIf(Check1.Value, 1, 0) & [Ô],[Ô]
sSQL = sSQL & [Ô]BATERIA=[Ô] & IIf(Check2.Value, 1, 0) & [Ô],[Ô]
sSQL = sSQL & [Ô]CARREGADOR=[Ô] & IIf(Check3.Value, 1, 0) & [Ô],[Ô]
sSQL = sSQL & [Ô]CANETA=[Ô] & IIf(Check4.Value, 1, 0)
sSQL = sSQL & [Ô] WHERE codigo=[Ô] & atxtCodigo.Text
[ô]sSQL = sSQL & [Ô]manutencao=[Ô] & IIf(atxtManut.Text = [Ô][Ô], [Ô]Null[Ô], [Ô]#[Ô] & Format(atxtManut, [Ô]mm/dd/yyyy[Ô]) & [Ô]#[Ô]) & [Ô],[Ô]
[ô]sSQL = sSQL & [Ô]reparo=[Ô] & IIf(atxtReparo.Text = [Ô][Ô], [Ô]Null[Ô], [Ô]#[Ô] & Format(atxtReparo, [Ô]mm/dd/yyyy[Ô]) & [Ô]#[Ô])

con.BeginTrans
con.Execute sSQL
con.CommitTrans

MsgBox [Ô]Registro alterado com sucesso![Ô], vbInformation, [Ô]Cadastro de Equipamento[Ô]
cmdAlterar.Enabled = False
cmdEditar.Enabled = True
cmdConsulta.Enabled = True
cmdNovo.Enabled = True
cmdExcluir.Enabled = True
cmdImprimir.Enabled = True
Habilita_Caixas
End If
Exit Sub
erro:
con.RollbackTrans
MsgBox [Ô]Ocorreu um erro ao alterar o cadastro[Ô] & vbCrLf & Err.Description, vbExclamation, [Ô]Erro[Ô]

End Sub
KERPLUNK 09/06/2011 18:15:17
#376343
é possível que alguma outra função possa estar [Ô]zerando[Ô] os valores dessas caixas de texto antes de executar essa gravação? Depure o código e veja os valores delas no momento da gravação.
JPAULO101 09/06/2011 18:24:28
#376347
ESSE é O PROBLEMA NÃO ESTÁ DANDO ERRO PARA ALTERAR, INFORMA QUE QUE ALTERAÇÃO FOI REALIZADA COM SUCESSO MAIS QUANDO ABRO NAVAMENTE O PRGRAMA ESTÁ DO MESMO JEITO SEM ALTERAÇÃO.
KERPLUNK 09/06/2011 18:26:49
#376348
Não, vc não entendeu, coloque um breakpoint na linha onde concatena os valores da obs ou do fone, então verifique o valor que está na textbox no momento dessa concatenação, porque pode estar em branco.
MARCELO.TREZE 09/06/2011 18:46:40
#376353
a questão é no banco de dados, a alteração está sendo feita?

TEMPESTADE 09/06/2011 18:48:28
#376354
Ola amigo esperementa no where colocar um CInt() como segue abaixo, estou vendo que sua chave primeira é um Inteiro e na query o Access deve estar interpretando como String, coloca o Cint() como segue abaixo e testa

sSQL = sSQL & [Ô] WHERE codigo=[Ô] & Cint(atxtCodigo.Text)

Espero ter ajudado.
JPAULO101 10/06/2011 08:18:17
#376376
OLÁ TEMPESTADE FIZ ALTERAÇÃO MAIS CONTINUA NÃO ALTERANDO. MARCELO-TREZE NÃO NO BANCO NÃO ESTÁ SENDO ALTERADO, JÁ FIZ VÁRIOS TESTE MAIS SEM SUCESSO.
Página 1 de 4 [37 registro(s)]
Tópico encerrado , respostas não são mais permitidas