ERRO AO SALVAR EDICAO APOS LOCALIZAR REGISTRO

VAGNERCOSTA 05/05/2012 11:04:20
#401407
Bom dia pessoal eestou com um probleminha que e o seguinte

Tenho inumeros dados em uma tbl localizo um registro qualquer e exibo ele no formulario ao clicar em editar e auterar qualquer dado quando clico em salvar esta dando a seguinte mensagem
run-time error [ô]-2147217887 (80040e21)[ô]:
nao e possivel atualizar [ô]id[ô]. o campo nao e atualizavel

pergunta: isso e pq o id e auto numeração???
se sim como resolver isso?

Aguardo um breve retorno..

Vagner Costa
ROMERO.KCOAL 05/05/2012 11:28:45
#401412
Resposta escolhida
pelo visto vc esta tentando salvar uma chave primaria de identificação, ou seja... um campo autocomplete, este campo nao pode ser alterado. para resolver retire a edição deste campo e pronto, provavelmente ele deve ser i ID do sou cliente.
VAGNERCOSTA 05/05/2012 11:55:15
#401414
Citação:

i ID do sou cliente.



carissimo nao entendi o escrito acima quer dizer que o id e um indice do campo id??
WCOSTA 05/05/2012 11:58:56
#401415
Vagner,
você não pode altera um campo autonumeração o ideal seria que você mantivesse este campo como está e crie um campo codigo_cliente tipo texto ou número e assim você poderá atribuir um código alfa numérico, por exemplo, a seu cliente.
Volta a dizer um campo autonumeração não é editável.
VAGNERCOSTA 05/05/2012 17:14:16
#401423
Citação:

Vagner,
você não pode altera um campo autonumeração o ideal seria que você mantivesse este campo como está e crie um campo codigo_cliente tipo texto ou número e assim você poderá atribuir um código alfa numérico, por exemplo, a seu cliente.
Volta a dizer um campo autonumeração não é editável.



ok fiz um novo campo para o id porem me deparo agora com a questao do cli_id + 1

[txt-color=#e80000]estou fazendo desta forma: e o mesmo me retorno erro 13 type mismath onde estou errando neste comando???[/txt-color]
[txt-color=#0000f0]Private Sub cmdNovo_Click()
Dim con As New ADODB.Connection, rs As New ADODB.Recordset
con.Open [Ô]Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\SC_Residencial\Banco.mdb[Ô]
libera
If MsgBox([Ô]Você deseja incluir um novo cliente?[Ô], vbYesNo + vbDefaultButton1 + vbQuestion, [Ô]Inclusão de Registro[Ô]) = vbYes Then
libera
ConectarAdo adoclientes, [Ô]select * from tblclientes order by cli_id[Ô], con
With adoclientes.Recordset
If .EOF = False Then
.MoveLast
idatual = adoclientes.Recordset.Fields!cli_id + 1
Else
idatual = 1
End If
.Close
Me.txtid.Text = idatual
txtid.SetFocus
End With
End If[/txt-color]
ADILSOO 06/05/2012 00:49:02
#401437
Bom, se bem entendi, você está tentando alterar o ID_Cliente? Se sim, não sei o porque mas isso não faz sentido, você somente altera o nome e todos os dados que você quiser, menos o ID, porque se você deixar o campo livre sem nenhum controle, ele pode se duplicar por algum motivo dentro do banco e você terá sérios problemas depois, mas se ainda você quer alterar o campo ID, somente retire a chave primaria e marque como Número/Texto, tanto faz, você poderá alterar, até.
VAGNERCOSTA 07/05/2012 10:28:37
#401475
Citação:


[Novato]
[Crystal Reports] [MS ADO Engine] [MySQL]
PRATANIA
[BRAZIL]
Mensagem interna

[Citar na resposta]

Bom, se bem entendi, você está tentando alterar o ID_Cliente? Se sim, não sei o porque mas isso não faz sentido, você somente altera o nome e todos os dados que você quiser, menos o ID, porque se você deixar o campo livre sem nenhum controle, ele pode se duplicar por algum motivo dentro do banco e você terá sérios problemas depois, mas se ainda você quer alterar o campo ID, somente retire a chave primaria e marque como Número/Texto, tanto faz, você poderá alterar, até.

O importante não é oque você sabe hoje, e sim o quanto você pode evoluir amanhã!
Meu MSN: adilson_flip@hotmail.com



Adilson bom dia

Na verdade tenho um campo chamado id como auto numerico e outro campo chamado cli_id como numero e estou tentao fazer o ultimo cli_id + 1 e ai que ele esta me dando a mensagem... obs no cmdNovo que poste o codigo estou tentando pegar o ultimo cli_id que foi gravado exemplo: ultimo cli_id = 100 + 1 que seria = 101 porem ao clicar em salvar ele me retorna a mensagem de erro ja citada...
VAGNERCOSTA 07/05/2012 15:56:07
#401500
GALERA JA RESOLVI A QUESTAO

A SOLUÇÃO FOI A SEGUINTE

Private Sub ADICIONAR()
If MsgBox([Ô]Você deseja incluir um novo cliente?[Ô], vbYesNo + vbDefaultButton1 + vbQuestion, [Ô]Inclusão de Registro[Ô]) = vbYes Then
libera
Else
cmdSair.SetFocus
End If
With adoclientes.Recordset
If .EOF = False Then
LINHA ABAIXO COMENTADA
[ô]ConectarAdo adoclientes, [Ô]select * from tblClientes order by[Ô], con
.MoveLast
idatual = adoclientes.Recordset.Fields![cli_ID] + 1
Else
idatual = 1
End If
Me.txtid.Text = idatual
.Close
End With
End Sub
Private Sub cmdNovo_Click()
ADICIONAR
End Sub
Tópico encerrado , respostas não são mais permitidas