ERRO NO COMANDO UPDATE ACCESS

MITSUEDA 12/11/2010 08:10:12
#357268
Você não vai conseguir alterar um campo autonumerico no access, você consegue excluir, mas editar não...

Faça um teste você mesmo, entre no access na sua tabela. E tente mudar um valor no campo autonumerico, na unha mesmo. O Access não vai deixar.

Outra coisa os campos autonumericos não se repetem mais, tipo assim. Existia o código 1, ai vc deletou esse registro. Mesmo que você apague todos os dados da tabela e tente inserir um novo registro. O Access vai passar para você o valor do ultimo registro acrescido de 1.

Para zerar novamente essa contagem, você pode. No design da tabela, alterar o tipo de dado para Long e insere um registro com o numero 0 Zero e depois Compactar e Restaurar o banco, depois você volta no design e muda para autonumerico.

Assim você vai conseguir, zerar a contagem de registros.

Mas, você não consegue editar e nem incluir um valor em um campos autonumerico. Porque o Access faz isso na hora que você adiciona um novo registro.

Abraços
JONATHANSTECKER 12/11/2010 08:26:22
#357269
Mitsueda,

Essa query não está tentando alterar o campo Código que é AutoNumérico, simplesmente está usando este campo como busca.

Dim mycon as New OledbCommand([Ô]Update Contatos set Nome = [ô][Ô] & txtNome.text & [Ô][ô],Telefone = [ô][Ô] & txtTelefone.text & [Ô][ô],Celular = [ô][Ô] & txtcel.text & [Ô][ô],Celular2 = [ô][Ô] & txtCel2.text & [Ô][ô],Email = [ô][Ô] & txtEmail.text  & [Ô][ô] where Código = [ô][Ô] & txtCodigo.text & [Ô][ô][Ô],con)
mycon.ExecuteNonQuery
mycon.dispose
con.close
MITSUEDA 12/11/2010 11:17:33
#357292
Verdade, não tinha reparado.

Então é o seguinte, não utilize [ô] (apostrofo) no access, isso se usa em text do SQL, no access utiliza-se [Ô]

Dim strSql As String = [Ô]Update Contatos set Nome = ?, Telefone = ?, Celular = ?, Celular2 = ?, Email = ? where Código = ?”
Dim mycon as New OledbCommand(strSql, con)
mycon.Parameters.Add(New OleDb.OleDbParameter([Ô]Nome[Ô], txtNome.text))
mycon.Parameters.Add(New OleDb.OleDbParameter([Ô]Telefone[Ô], txtTelefone.text))
mycon.Parameters.Add(New OleDb.OleDbParameter([Ô]Celular[Ô], txtcel.text))
mycon.Parameters.Add(New OleDb.OleDbParameter([Ô]Celular2[Ô], txtCel2.text))
mycon.Parameters.Add(New OleDb.OleDbParameter([Ô]Email[Ô], txtEmail.text))
mycon.Parameters.Add(New OleDb.OleDbParameter([Ô]Código[Ô], Clng(txtCodigo.text)))

mycon.ExecuteNonQuery
mycon.dispose
con.close

Abraços
SERGIO 12/11/2010 12:34:14
#357300
consegui coloquei coloquei ( [Ô] ) no where e funcionou
  Dim mycon as New OledbCommand([Ô]Update Contatos set Nome = [ô][Ô] & txtNome.text & [Ô][ô],Telefone = [ô][Ô] & txtTelefone.text & [Ô][ô],Celular = [ô][Ô] & txtcel.text & [Ô][ô],Celular2 = [ô][Ô] & txtCel2.text & [Ô][ô],Email = [ô][Ô] & txtEmail.text  & [Ô][ô] where Código = [Ô] & txtCodigo.text & [Ô],con)
mycon.ExecuteNonQuery
mycon.dispose
con.close
Página 2 de 2 [14 registro(s)]
Tópico encerrado , respostas não são mais permitidas