ERRO AO SALVAR EDICAO APOS LOCALIZAR REGISTRO
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
Citação:i ID do sou cliente.
carissimo nao entendi o escrito acima quer dizer que o id e um indice do campo id??
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.
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]
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...
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