A LINHA NAO PODE SER LOCALIZADA APRA ATUALIZACAO

DAVIDNUNES 27/09/2010 21:33:26
#353954
Ola pessoal boa noite,
estou com um problema com atualização de dados no mysql quando vou da o .update as vez ele da problema se eu deleto a linha e crio novamente ele funciona normal durante um tempo alguem sabe me responder o que pode ser esse problema?
da o seguinte erro
-2147217864
a linha nao pode ser localizada para atualização

grato!
MARCELO.TREZE 27/09/2010 23:52:59
#353958
Resposta escolhida
colega posta seu código
PAULOOLIVEIRA 28/09/2010 13:55:43
#353996
Companheiro,


opcao 1. se voce usa recordset, troca por instrucao sql [Ô]insert, update... etc...[Ô]

opcao2. cria na tabela um campo de nome por exemplo [Ô]sequencial, autonumerico[Ô]..

boa sorte..


flw

t+
RRANGON 28/09/2010 15:18:05
#354006
Amigo, tenta usar um Duplicate Key... e manda sempre o insert
DAVIDNUNES 28/09/2010 23:40:51
#354070
Set rsMySQL = New ADODB.Recordset

rsMySQL.Open [Ô]Select * FROM ContasCaixa WHERE DescricaoContas=[ô][Ô] & Trim(cbo_Banco.Text) & [Ô][ô][Ô], cnn, adOpenKeyset, adLockOptimistic
With rsMySQL

If cbo_Modalidade.Text = [Ô]Receita[Ô] Then
Valor = CDbl(txt_Valor.Text)
Else
Valor = -txt_Valor.Text
End If


!ValoremConta = CDbl(Format(!ValoremConta + Valor, [Ô]########0.00[Ô]))
!DataUltimoLancamento = Date
!HoraUltimoLancamento = Time
.Update

End With

Alguem me da uma ajuda por favor
MARCELO.TREZE 29/09/2010 01:12:57
#354074
bom como o colega PAULO OLIVEIRA tente a instrução update na query assim


If cbo_Modalidade.Text = [Ô]Receita[Ô] Then
Valor = CDbl(txt_Valor.Text)
Else
Valor = -txt_Valor.Text
End If

sSQL =.[Ô]UPDATE ContasCaixa SET [Ô]
sSQL = sSQL & [Ô]ValoremConta = ValoremConta + [ô][Ô] & CDbl(Format(Valor, [Ô]########0.00[Ô])) & [Ô][ô],[Ô]
sSQL = sSQL & [Ô]DataUltimoLancamento = [ô][Ô] & Date & [Ô][ô],[Ô]
sSQL = sSQL & [Ô]HoraUltimoLancamento = [ô][Ô] & Time & [ô][Ô]
sSQL = sSQL & [Ô] WHERE DescricaoContas =[ô][Ô] & cbo_Banco.Text & [Ô][ô][Ô]

cnn.Open sSQL,dOpenKeyset, adLockOptimistic


PS: os campos deverão seguir certas formatações conforme seu tipo

ex:

se o campo DataUltimoLancamento for do tipo date/time deveria ser assim

sSQL = sSQL & [Ô]DataUltimoLancamento = [ô][Ô] & Format(Date,[Ô]YYYY-MM-DD[Ô]) & [Ô][ô],[Ô]


veja se funciona da forma mencionada acima
THIGO 29/09/2010 08:48:18
#354085
Amigo concordo com o Marcelo use o metodo upadate e não direto do Recordset para evitar esse tipo de problemas.

Já tive muitos problemas com isso então não uso mais.

Ficara assim

Set rsMySQL = New ADODB.Recordset

rsMySQL.Open [Ô]Select * FROM ContasCaixa WHERE DescricaoContas=[ô][Ô] & Trim(cbo_Banco.Text) & [Ô][ô][Ô], cnn, adOpenKeyset, adLockOptimistic
With rsMySQL

If cbo_Modalidade.Text = [Ô]Receita[Ô] Then
Valor = CDbl(txt_Valor.Text)
Else
Valor = -txt_Valor.Text
End If

[ô]Aqui voce realiza o update sem ser via recordset

sSQL =.[Ô]UPDATE ContasCaixa SET [Ô]
sSQL = sSQL & [Ô]ValoremConta = ValoremConta + [ô][Ô] & CDbl(Format(Valor, [Ô]########0.00[Ô])) & [Ô][ô],[Ô]
sSQL = sSQL & [Ô]DataUltimoLancamento = [ô][Ô] & Date & [Ô][ô],[Ô]
sSQL = sSQL & [Ô]HoraUltimoLancamento = [ô][Ô] & Time & [ô][Ô]
sSQL = sSQL & [Ô] WHERE DescricaoContas =[ô][Ô] & cbo_Banco.Text & [Ô][ô][Ô]

cnn.begintrans
cnn.execute sSQL
cnn.Commitrans

End With


flw
Tópico encerrado , respostas não são mais permitidas