ERRO AO APLICAR UPDATE C/ MYSQL - RUN-TIMER ERRO -

JLSMA 23/04/2010 17:58:31
#340076
RUN-TIMER ERRO -2147217864(80040e38)

A LINHA NÃO PODE SER LOCALIZADA PARA ATUALIZAÇÃO. ALGUNS VALORES PODEM TER SIDO ALTERADOS DESDE QUE ELA FOI LIDA PELA ULTIMA VEZ.

ESTOU CONECTANDO AO DB E NA TABELA DESSA FORMA

Set MyDB = New ADODB.Connection
MyDB.ConnectionString = [Ô]Driver=MySQL ODBC 5.1 Driver; DATABASE=Sudoeste; SERVER=localhost; UID=root; PASSWORD=j12345l[Ô]
MyDB.Open


Set RS = New ADODB.Recordset
RS.CursorLocation = adUseClient
RS.Open [Ô]select * from empresa[Ô], MyDB, adOpenStatic, adLockOptimistic, adCmdText

RS!Nom = txtNom.Text
RS!End = txtEnd.Text
RS!num = txtNum.Text
RS!bai = txtBai.Text
RS!Cid = txtCid.Text
RS!CNPJ = txtCnpj.Text
RS!Ie = txtIe.Text
RS!Tel = txtTel.Text
RS.Update
ADHEL 23/04/2010 18:11:09
#340078
D á uma olhada nisso
http://www.vbweb.com.br/forum_resp.asp?Codigo=217955&PaginaResp=1
Se for possível mude de DAO para ADO
EDERMIR 23/04/2010 20:32:38
#340081
Você está abrindo TODA a tabela mas não está indicando qual o procedimento: INSERIR ou ALTERAR.

No caso de alterar, você deve selecionar QUAL o registro para a alteração e não TODOS da tabela (ao menos desta forma).
MOREIRA 24/04/2010 03:02:45
#340093
Resposta escolhida
eu uso assim....

Sql = [Ô]UpDate Tbl_Cliente Set [Ô]
Sql = Sql & [Ô]Cpf = [ô][Ô] & TxtCpf.Text & [Ô][ô],[Ô]
Sql = Sql & [Ô]Cliente = [ô][Ô] & TxtCliente.Text & [Ô][ô],[Ô]
Sql = Sql & [Ô]Apelido=[ô][Ô] & TxtApelido.Text & [Ô][ô],[Ô]
Sql = Sql & [Ô]End = [ô][Ô] & TxtEnd.Text & [Ô][ô],[Ô]
Sql = Sql & [Ô]Num = [ô][Ô] & TxtNum.Text & [Ô][ô],[Ô]
Sql = Sql & [Ô]Compl = [ô][Ô] & TxtCompl.Text & [Ô][ô],[Ô]
Sql = Sql & [Ô]Cidade = [ô][Ô] & TxtCidade.Text & [Ô][ô],[Ô]
Sql = Sql & [Ô]Ref = [ô][Ô] & TxtRef.Text & [Ô][ô],[Ô]
Sql = Sql & [Ô]RG = [ô][Ô] & TxtRg.Text & [Ô][ô],[Ô]
Sql = Sql & [Ô]Org_Emis = [ô][Ô] & TxtOrg_Emis.Text & [Ô][ô],[Ô]
Sql = Sql & [Ô]Dt_Emis = [ô][Ô] & Format(TxtDt_Emis.Text, [Ô]yyyy-mm-dd[Ô]) & [Ô][ô],[Ô]
Sql = Sql & [Ô]Dt_Nasc = [ô][Ô] & Format(TxtDt_Nasc.Text, [Ô]yyyy-mm-dd[Ô]) & [Ô][ô],[Ô]
Sql = Sql & [Ô]Naturalid = [ô][Ô] & TxtNaturalid.Text & [Ô][ô],[Ô]
Sql = Sql & [Ô]Profissao = [ô][Ô] & TxtProfissao.Text & [Ô][ô],[Ô]
Sql = Sql & [Ô]Nome_Mae = [ô][Ô] & TxtNome_Mae.Text & [Ô][ô],[Ô]
Sql = Sql & [Ô]Nome_Pai = [ô][Ô] & TxtNome_Pai.Text & [Ô][ô],[Ô]
Sql = Sql & [Ô]Nome_Conj = [ô][Ô] & TxtNome_Conj.Text & [Ô][ô],[Ô]
Sql = Sql & [Ô]Fone1 = [ô][Ô] & TxtFone1.Text & [Ô][ô],[Ô]
Sql = Sql & [Ô]Fone2 = [ô][Ô] & TxtFone2.Text & [Ô][ô],[Ô]
Sql = Sql & [Ô]Ref_Pessoal = [ô][Ô] & TxtRef_Pessoal.Text & [Ô][ô],[Ô]
Sql = Sql & [Ô]Fone_Ref = [ô][Ô] & TxtFone_Ref.Text & [Ô][ô],[Ô]
Sql = Sql & [Ô]Local_Trab = [ô][Ô] & TxtLocal_Trab.Text & [Ô][ô],[Ô]
Sql = Sql & [Ô]Fone_Trab = [ô][Ô] & TxtFone_Trab.Text & [Ô][ô],[Ô]
Sql = Sql & [Ô]End_Trab = [ô][Ô] & TxtEnd_Trab.Text & [Ô][ô],[Ô]
Sql = Sql & [Ô]Obs = [ô][Ô] & TxtObs.Text & [Ô][ô][Ô]
Sql = Sql & [Ô]Where Id = [ô][Ô] & LblId.Caption & [Ô][ô][Ô]
MsgBox ([Ô]Dados Alterado com Sucesso[Ô]), vbExclamation, [Ô]ATENÇAO[Ô]
Conexao.Execute Sql
TECLA 24/04/2010 08:22:49
#340100
Ao invés de trabalhar assim...
...
RS.Update

...dê preferência por QUERY do tipo UPDATE.

Exemplo:
con.Execute [Ô]UPDATE tabela SET campo1=[ô]valor_novo1[ô] WHERE campo2=2[Ô]


Esta forma que estás trabalhando não é das melhores.
JLSMA 24/04/2010 10:43:28
#340111
Então Ficaria dessa forma

Set MyDB = New ADODB.Connection
MyDB.ConnectionString = [Ô]Driver=MySQL ODBC 5.1 Driver; DATABASE=Sudoeste; SERVER=localhost; UID=root; PASSWORD=j12345l[Ô]
MyDB.Open

Set RS = New ADODB.Recordset
RS.CursorLocation = adUseClient
RS.Open [Ô]select * from empresa[Ô], MyDB, adOpenStatic, adLockOptimistic, adCmdText

SQL = [Ô]UPDATE empresa SET [Ô]
SQL = SQL & [Ô]empresa.Nom = [ô][Ô] & txtNom.Text & [Ô][ô], [Ô]
SQL = SQL & [Ô]empresa.end = [ô][Ô] & txtend.Text & [Ô][ô], [Ô]
SQL = SQL & [Ô]empresa.num = [ô][Ô] & txtnum.Text & [Ô][ô], [Ô]
SQL = SQL & [Ô]empresa.bai = [ô][Ô] & txtbai.Text & [Ô][ô] [Ô]
SQL = SQL & [Ô]empresa.cid = [ô][Ô] & txtcidText & [Ô][ô] [Ô]
SQL = SQL & [Ô]empresa.cnpj = [ô][Ô] & txtcnpj.Text & [Ô][ô] [Ô]
SQL = SQL & [Ô]empresa.ie = [ô][Ô] & txtie.Text & [Ô][ô] [Ô]
SQL = SQL & [Ô]empresa.tel = [ô][Ô] & txtTel.Text & [Ô][ô] [Ô]
SQL = SQL & [Ô]WHERE empresa.cod = [Ô] & txtcod.Text

MyDb.Execute Sql
TECLA 24/04/2010 11:21:18
#340112
Esta parte está correta...

SQL = [Ô]UPDATE empresa SET [Ô]
SQL = SQL & [Ô]empresa.Nom = [ô][Ô] & txtNom.Text & [Ô][ô], [Ô]
SQL = SQL & [Ô]empresa.end = [ô][Ô] & txtend.Text & [Ô][ô], [Ô]
SQL = SQL & [Ô]empresa.num = [ô][Ô] & txtnum.Text & [Ô][ô], [Ô]
SQL = SQL & [Ô]empresa.bai = [ô][Ô] & txtbai.Text & [Ô][ô] [Ô]
SQL = SQL & [Ô]empresa.cid = [ô][Ô] & txtcidText & [Ô][ô] [Ô]
SQL = SQL & [Ô]empresa.cnpj = [ô][Ô] & txtcnpj.Text & [Ô][ô] [Ô]
SQL = SQL & [Ô]empresa.ie = [ô][Ô] & txtie.Text & [Ô][ô] [Ô]
SQL = SQL & [Ô]empresa.tel = [ô][Ô] & txtTel.Text & [Ô][ô] [Ô]
SQL = SQL & [Ô]WHERE empresa.cod = [Ô] & txtcod.Text

MyDb.Execute SQL


...só não entendi, o porque do SELECT antes e depois o UPDATE, já que as instruções T-SQL trabalham de forma independente.
MARCELO.TREZE 24/04/2010 14:25:17
#340117
ou

Set RS = New ADODB.Recordset
RS.CursorLocation = adUseClient
SQL = [Ô]UPDATE empresa SET [Ô]
SQL = SQL & [Ô]Nom = [ô][Ô] & txtNom.Text & [Ô][ô], [Ô]
SQL = SQL & [Ô]end = [ô][Ô] & txtend.Text & [Ô][ô], [Ô]
SQL = SQL & [Ô]num = [ô][Ô] & txtnum.Text & [Ô][ô], [Ô]
SQL = SQL & [Ô]bai = [ô][Ô] & txtbai.Text & [Ô][ô], [Ô]
SQL = SQL & [Ô]cid = [ô][Ô] & txtcidText & [Ô][ô], [Ô]
SQL = SQL & [Ô]cnpj = [ô][Ô] & txtcnpj.Text & [Ô][ô], [Ô]
SQL = SQL & [Ô]ie = [ô][Ô] & txtie.Text & [Ô][ô], [Ô]
SQL = SQL & [Ô]tel = [ô][Ô] & txtTel.Text & [Ô][ô] [Ô]
SQL = SQL & [Ô]WHERE cod = [ô][Ô] & txtcod.Text & [Ô][ô][Ô]
RS.Open SQL, MyDB, adOpenStatic, adLockOptimistic, adCmdText

CARLINHOSVS 24/04/2010 14:40:15
#340118
e verdade você esta usando select para fazer um update.
JLSMA 26/04/2010 11:23:07
#340257
Bom dia Pessoal Agradeço a todos pelas dicas, ta funcionando legal aki, também em outras funcioes de atualizações do programa

Sql = [Ô]UPDATE EMPRESA SET [Ô]
Sql = Sql & [Ô]Nom = [ô][Ô] & txtNom.Text & [Ô][ô],[Ô]
Sql = Sql & [Ô]End = [ô][Ô] & txtEnd.Text & [Ô][ô],[Ô]
Sql = Sql & [Ô]Num = [ô][Ô] & txtNum.Text & [Ô][ô],[Ô]
Sql = Sql & [Ô]Bai = [ô][Ô] & txtBai.Text & [Ô][ô],[Ô]
Sql = Sql & [Ô]Cid = [ô][Ô] & txtCid.Text & [Ô][ô],[Ô]
Sql = Sql & [Ô]Cnpj = [ô][Ô] & txtCnpj.Text & [Ô][ô],[Ô]
Sql = Sql & [Ô]Ie = [ô][Ô] & txtIe.Text & [Ô][ô],[Ô]
Sql = Sql & [Ô]cod = [ô][Ô] & txtCod.Text & [Ô][ô][Ô]
MyDB.Execute Sql
Tópico encerrado , respostas não são mais permitidas