CONFIGURAR BOTAO ALTERAR

DANIELFELIX91 11/11/2011 11:02:27
#388952
Bom Dia,

Estou desenvolvendo um programinha em Visual Basic 2010 e náo consigo terminar o botáo de alterar... funciona da seguinte maneira:

tenho um form4 que é a consulta... digito o codigo e aparece para Eu todos os dados que preciso e os campos textbox todos Enabled = False (para ninguem alterar), ai quando clico no botão alterar ele executa Enabled=True (para alterar os dados)... ate ai tudo bem... Eu altero os dados e quando clico em salvar ele apenas salva o nome que Eu alterei os outros dados não, ja no botão salvar no form de cadastro ele salva todos os dados, mais como existe um ELSE no botão salvar acredito que seja nesta parte que estou errando e como Eu ainda sou leigo no VB preciso da ajuda de vocês... segue abaixo o codigo do botão consultar e botão salvar...
Desde já Muito Obrigado.

CONSULTA
Private Sub btnconsulta_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnconsulta.Click
tabela = New ADODB.Recordset

Dim consulta As String
If txtcodbus.Text <> [Ô][Ô] Then
consulta = [Ô]Select * from movel where codigo= [Ô] & txtcodbus.Text & [Ô][Ô]
ElseIf mskcelbus.Text <> [Ô][Ô] Then
consulta = [Ô]Select * from movel where celular= [ô][Ô] & mskcelbus.Text & [Ô][ô][Ô]
Else
consulta = [Ô][Ô]
MsgBox([Ô]Digite alguma forma de consulta.[Ô] & vbNewLine & [Ô]Codigo ou Nº de Cel.[Ô], MsgBoxStyle.Critical)
Exit Sub
End If

tabela.Open(consulta, conecta, ADODB.CursorTypeEnum.adOpenStatic, ADODB.LockTypeEnum.adLockOptimistic)

If tabela.EOF = False Then
With consulta
txtcod.Text = tabela.Fields([Ô]codigo[Ô]).Value()
mskcel.Text = tabela.Fields([Ô]celular[Ô]).Value()
txtnome.Text = tabela.Fields([Ô]nome[Ô]).Value()
txtfunc.Text = tabela.Fields([Ô]funcao[Ô]).Value()
mskrg.Text = tabela.Fields([Ô]rg[Ô]).Value()
mskcpf.Text = tabela.Fields([Ô]cpf[Ô]).Value()
mskimei.Text = tabela.Fields([Ô]imei[Ô]).Value()
msksimcard.Text = tabela.Fields([Ô]simcard[Ô]).Value()
txtmarca.Text = tabela.Fields([Ô]marca[Ô]).Value()
txtmod.Text = tabela.Fields([Ô]modelo[Ô]).Value()
txtaces.Text = tabela.Fields([Ô]acessorios[Ô]).Value()
txtop.Text = tabela.Fields([Ô]operadora[Ô]).Value()
txtdeb.Text = tabela.Fields([Ô]valordebito[Ô]).Value()
If Not IsDBNull(tabela.Fields([Ô]troca[Ô]).Value()) Then
txttroca.Text = tabela.Fields([Ô]troca[Ô]).Value()
End If
mskdata.Text = tabela.Fields([Ô]data[Ô]).Value()
End With
txtcodbus.Text = [Ô][Ô]
Else
MsgBox([Ô]Registro não Encontrado[Ô])
End If
txtcod.Enabled = False
txtnome.Enabled = False
txtcod.Enabled = False
mskcel.Enabled = False
txtfunc.Enabled = False
mskrg.Enabled = False
mskcpf.Enabled = False
mskimei.Enabled = False
msksimcard.Enabled = False
txtmarca.Enabled = False
txtmod.Enabled = False
txtaces.Enabled = False
txtop.Enabled = False
txtdeb.Enabled = False
mskdata.Enabled = False
txttroca.Enabled = False
End Sub


SALVAR


Private Sub btnsalva_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnsalva.Click
Dim strsql As String
If status = True Then
strsql = [Ô]insert into movel (codigo, celular, nome, funcao, rg, cpf, imei, simcard, marca, modelo, acessorios, operadora, valordebito, troca, data)[Ô] & [Ô]values ([Ô] & txtcod.Text & [Ô], [ô][Ô] & mskcel.Text & [Ô][ô], [ô][Ô] & txtnome.Text & [Ô][ô], [ô][Ô] & txtfunc.Text & [Ô][ô], [ô][Ô] & mskrg.Text & [Ô][ô], [ô][Ô] & mskcpf.Text & [Ô][ô], [ô][Ô] & mskimei.Text & [Ô][ô], [ô][Ô] & msksimcard.Text & [Ô][ô], [ô][Ô] & txtmarca.Text & [Ô][ô], [ô][Ô] & txtmod.Text & [Ô][ô], [ô][Ô] & txtaces.Text & [Ô][ô], [ô][Ô] & txtop.Text & [Ô][ô], [ô][Ô] & txtdeb.Text & [Ô][ô], [ô][Ô] & txttroca.Text & [Ô][ô], [ô][Ô] & mskdata.Text & [Ô][ô])[Ô]
conecta.Execute(strsql)
MsgBox([Ô]Seus dados foram incluídos com sucesso[Ô], MsgBoxStyle.Information, [Ô]Dados Gravados[Ô])
ElseIf status = False Then
strsql = [Ô]update movel set nome=[ô][Ô] & txtnome.Text & [Ô][ô] where codigo=[Ô] & txtcod.Text & [Ô][Ô]
conecta.Execute(strsql)
MsgBox([Ô]Registros atualizados com sucesso[Ô], MsgBoxStyle.Information, [Ô]Atualiza[Ô])
End If
limpa()
End Sub
OMAR2011 11/11/2011 13:46:31
#388979
Resposta escolhida
Pelo o que entendi você quer dar um Update em todos os campos do referido registro.Então tem que ser assim.

Private Sub btnsalva_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnsalva.Click
Dim strsql As String
If status = True Then
strsql = [Ô]insert into movel (codigo, celular, nome, funcao, rg, cpf, imei, simcard, marca, modelo, acessorios, operadora, valordebito, troca, data)[Ô] & [Ô]values ([Ô] & txtcod.Text & [Ô], [ô][Ô] & mskcel.Text & [Ô][ô], [ô][Ô] & txtnome.Text & [Ô][ô], [ô][Ô] & txtfunc.Text & [Ô][ô], [ô][Ô] & mskrg.Text & [Ô][ô], [ô][Ô] & mskcpf.Text & [Ô][ô], [ô][Ô] & mskimei.Text & [Ô][ô], [ô][Ô] & msksimcard.Text & [Ô][ô], [ô][Ô] & txtmarca.Text & [Ô][ô], [ô][Ô] & txtmod.Text & [Ô][ô], [ô][Ô] & txtaces.Text & [Ô][ô], [ô][Ô] & txtop.Text & [Ô][ô], [ô][Ô] & txtdeb.Text & [Ô][ô], [ô][Ô] & txttroca.Text & [Ô][ô], [ô][Ô] & mskdata.Text & [Ô][ô])[Ô]
conecta.Execute(strsql)
MsgBox([Ô]Seus dados foram incluídos com sucesso[Ô], MsgBoxStyle.Information, [Ô]Dados Gravados[Ô])
ElseIf status = False Then
strsql = [Ô]update movel Set codigo=[Ô] & txtcod.Text & [Ô], celular=[ô][Ô] & mskcel.Text & [Ô][ô], nome=[ô][Ô] & txtNome.Text & [Ô][ô], funcao=[ô][Ô] & txtfunc.Text & [Ô][ô], rg=[ô][Ô] & mskrg.Text & [Ô][ô], cpf=[ô][Ô] & mskcpf.Text & [Ô][ô], imei=[ô][Ô] & mskimei.Text & [Ô][ô], simcard=[ô][Ô] & msksimcard.Text & [Ô][ô], marca=[ô][Ô] & txtmarca.Text & [Ô][ô], modelo=[ô][Ô] & txtmod.Text & [Ô][ô], acessorios=[ô][Ô] & txtaces.Text & [Ô][ô], operadora=[ô][Ô] & txtop.Text & [Ô][ô], valordebito=[ô][Ô] & txtdeb.Text & [Ô][ô], troca=[ô][Ô] & txttroca.Text & [Ô][ô], data=[ô][Ô] & mskdata.Text & [Ô][ô] Where Codigo=codigo=[Ô] & txtcod.Text

conecta.Execute(strsql)
MsgBox([Ô]Registros atualizados com sucesso[Ô], MsgBoxStyle.Information, [Ô]Atualiza[Ô])
End If
limpa()
End Sub
OMAR2011 11/11/2011 13:48:35
#388980
Saiu errado.
Private Sub btnsalva_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnsalva.Click
Dim strsql As String
If status = True Then
strsql = [Ô]insert into movel (codigo, celular, nome, funcao, rg, cpf, imei, simcard, marca, modelo, acessorios, operadora, valordebito, troca, data)[Ô] & [Ô]values ([Ô] & txtcod.Text & [Ô], [ô][Ô] & mskcel.Text & [Ô][ô], [ô][Ô] & txtnome.Text & [Ô][ô], [ô][Ô] & txtfunc.Text & [Ô][ô], [ô][Ô] & mskrg.Text & [Ô][ô], [ô][Ô] & mskcpf.Text & [Ô][ô], [ô][Ô] & mskimei.Text & [Ô][ô], [ô][Ô] & msksimcard.Text & [Ô][ô], [ô][Ô] & txtmarca.Text & [Ô][ô], [ô][Ô] & txtmod.Text & [Ô][ô], [ô][Ô] & txtaces.Text & [Ô][ô], [ô][Ô] & txtop.Text & [Ô][ô], [ô][Ô] & txtdeb.Text & [Ô][ô], [ô][Ô] & txttroca.Text & [Ô][ô], [ô][Ô] & mskdata.Text & [Ô][ô])[Ô]
conecta.Execute(strsql)
MsgBox([Ô]Seus dados foram incluídos com sucesso[Ô], MsgBoxStyle.Information, [Ô]Dados Gravados[Ô])
ElseIf status = False Then
strsql = [Ô]update movel Set codigo=[Ô] & txtcod.Text & [Ô], celular=[ô][Ô] & mskcel.Text & [Ô][ô], nome=[ô][Ô] & txtNome.Text & [Ô][ô], funcao=[ô][Ô] & txtfunc.Text & [Ô][ô], rg=[ô][Ô] & mskrg.Text & [Ô][ô], cpf=[ô][Ô] & mskcpf.Text & [Ô][ô], imei=[ô][Ô] & mskimei.Text & [Ô][ô], simcard=[ô][Ô] & msksimcard.Text & [Ô][ô], marca=[ô][Ô] & txtmarca.Text & [Ô][ô], modelo=[ô][Ô] & txtmod.Text & [Ô][ô], acessorios=[ô][Ô] & txtaces.Text & [Ô][ô], operadora=[ô][Ô] & txtop.Text & [Ô][ô], valordebito=[ô][Ô] & txtdeb.Text & [Ô][ô], troca=[ô][Ô] & txttroca.Text & [Ô][ô], data=[ô][Ô] & mskdata.Text & [Ô][ô] Where codigo=[Ô] & txtcod.Text

conecta.Execute(strsql)
MsgBox([Ô]Registros atualizados com sucesso[Ô], MsgBoxStyle.Information, [Ô]Atualiza[Ô])
End If
limpa()
End Sub
DANIELFELIX91 11/11/2011 14:45:10
#388981
OMAR2011 - Muito Obrigadooooo... resolveu meu problema, Parabéns!!!

Só para aproveitar... Eu uso a base de dados com uma tabela do Access... Eu instalei o PHPMyAdmin e ele tem Mysql dentro... entao acredito que de para utilizar ele ao inves do Access, já criei a tabela... você sabe como faz isso?

Grato.
OMAR2011 11/11/2011 17:27:10
#388993
Eu uso ACCESS só para testes.Quanto ao MySql do mesmo jeito,e para criar tabelas e outras uso [txt-color=#007100]SQL Manager Lite for MySQL 4.6.01[/txt-color].Banco que gosto de usar
[txt-color=#e80000]FIREBIRD E ORACLE 10G[/txt-color].
DANIELFELIX91 11/11/2011 21:03:14
#389019
Ok,
um erro ainda persiste quanto ao assunto anterior... quando estou alterando um usuário e clico para salvar as alterações aparece esse erro:

as alterações solicitadas para a tabela não foram bem-sucedidas, já que criariam valores duplicados de índice, chave primária ou relação. Altere os dados no campo ou nos campos que contêm dados duplicados, remova o índice, ou redefina-o para permitir entradas duplicadas, e tente novamente

em anexo esta o print da tela, se puder me ajudar agredeço.

Desde já Obrigado.
Tópico encerrado , respostas não são mais permitidas