PROBLEMA PARA ALTERAR REGISTRO
EStou tentandofazer um botão de alterar no meu programa mas mesmo depois tentar de diversas maneiras não funciona. Sempre o registro ao invés de salvar no codigo do cliente salva no codigo 1.
DEsde já agradeço a atenção
no meu botão coloco a codificação
Dim tabela As integer
Private Sub ABRETABELA()
Set TB = Nothing
Set TB = New Recordset
SQL = [Ô]SELECT * FROM CLIENTE WHERE CODIGO = [Ô] & [Ô]codigo[Ô]
TB.Open SQL, CN, adOpenStatic, adLockPessimistic
If TB.EOF Then
MsgBox [Ô]NENHUM USUÃRIO CADASTRADO[Ô], vbInformation, [Ô]ATENÇÃO[Ô]
Unload Me
Else
TB.MoveFirst
End If
End Sub
Private Sub CMDALTERAR_CLICK()
codigo=lblcodigo.caption
abretabela
TB!NOME = TXTNOME.Text
TB!RUA = TXTRUA.Text
TB!BAIRRO = TXTBAIRRO.Text
If MsgBox([Ô]SALVAR ALTERAÇÃO?[Ô], vbYesNo + vbExclamation, [Ô]ATENÇÃO[Ô]) = vbYes Then
TB.Update
MsgBox [Ô]USUÃRIO ALTERADO[Ô]
Else
MsgBox [Ô]ALTERE ALGUM CAMPO PRIMEIRO[Ô], , [Ô]ATENÇÃO[Ô]
End If
End Sub
DEsde já agradeço a atenção
no meu botão coloco a codificação
Dim tabela As integer
Private Sub ABRETABELA()
Set TB = Nothing
Set TB = New Recordset
SQL = [Ô]SELECT * FROM CLIENTE WHERE CODIGO = [Ô] & [Ô]codigo[Ô]
TB.Open SQL, CN, adOpenStatic, adLockPessimistic
If TB.EOF Then
MsgBox [Ô]NENHUM USUÃRIO CADASTRADO[Ô], vbInformation, [Ô]ATENÇÃO[Ô]
Unload Me
Else
TB.MoveFirst
End If
End Sub
Private Sub CMDALTERAR_CLICK()
codigo=lblcodigo.caption
abretabela
TB!NOME = TXTNOME.Text
TB!RUA = TXTRUA.Text
TB!BAIRRO = TXTBAIRRO.Text
If MsgBox([Ô]SALVAR ALTERAÇÃO?[Ô], vbYesNo + vbExclamation, [Ô]ATENÇÃO[Ô]) = vbYes Then
TB.Update
MsgBox [Ô]USUÃRIO ALTERADO[Ô]
Else
MsgBox [Ô]ALTERE ALGUM CAMPO PRIMEIRO[Ô], , [Ô]ATENÇÃO[Ô]
End If
End Sub
SQL = [Ô]SELECT * FROM CLIENTE WHERE CODIGO = [Ô] & [Ô]codigo[Ô]
Você está colocando a string [Ô]código[Ô] fixa na SQL.
TB.MoveFirst
Isso que faz salvar no primeiro registro.
Esse Código é um critério. Ele deve está sem aspas. Outra coisa é que você não declarou nenhuma variável código nesta rotina. Tambem observe o escopo(alcance) da variável. Se ele está em uma private, não será [Ô]vista[Ô] fara desta sub. Para corrigir:
Declara a variável assim:
A SQL fica assim:
Agora a Variavel Codigo pode receber o valor da label:
Agora deve funcionar.
Vou te mostrar uma outra forma:
Podemos colocar um parâmetro opcional nesta sub AbreTabela. Com isso, se informar o critério, exibe o registro do critério, se não informar, exibe todos registros:
Declara a variável assim:
Dim tabela As integer
Dim Codigo as Long
A SQL fica assim:
SQL = [Ô]SELECT * FROM CLIENTE WHERE CODIGO = [Ô] & Codigo
Agora a Variavel Codigo pode receber o valor da label:
codigo=lblcodigo.caption
Agora deve funcionar.
Vou te mostrar uma outra forma:
Podemos colocar um parâmetro opcional nesta sub AbreTabela. Com isso, se informar o critério, exibe o registro do critério, se não informar, exibe todos registros:
Dim tabela As Integer
Sub AbreTabela(Optional Criterio As Long)
Set TB = Nothing
Set TB = New Recordset
If Criterio = 0 Then
SQL = [Ô]SELECT * FROM CLIENTE[Ô]
Else
SQL = [Ô]SELECT * FROM CLIENTE WHERE CODIGO = [Ô] & Criterio
End If
TB.Open SQL, CN, adOpenStatic, adLockPessimistic
If TB.EOF Then
MsgBox [Ô]NENHUM USUÃRIO CADASTRADO[Ô], vbInformation, [Ô]ATENÇÃO[Ô]
Unload Me
Else
TB.MoveFirst
End If
End Sub
Private Sub CMDALTERAR_CLICK()
AbreTabela Val(lblcodigo.Caption)
TB!Nome = TXTNOME.Text
TB!RUA = TXTRUA.Text
TB!BAIRRO = TXTBAIRRO.Text
If MsgBox([Ô]SALVAR ALTERAÇÃO?[Ô], vbYesNo + vbExclamation, [Ô]ATENÇÃO[Ô]) = vbYes Then
TB.Update
MsgBox [Ô]USUÃRIO ALTERADO[Ô]
Else
MsgBox [Ô]ALTERE ALGUM CAMPO PRIMEIRO[Ô], , [Ô]ATENÇÃO[Ô]
End If
End Sub
Nossa. Funcionou perfeitamente. Muitissimo obrigado mesmo.
Eu estou procurando um bom livro pra me guiar nesse mundo vb. Mas ta dificil. Ja baixei varios na parte de downloads. Vcs poderiam me indicar um bom?
Eu estou procurando um bom livro pra me guiar nesse mundo vb. Mas ta dificil. Ja baixei varios na parte de downloads. Vcs poderiam me indicar um bom?
O Forum funciona como uma Biblioteca. Quando temos dúvidas, primeiro procuramos no forum e, não encontrando, abrimos um tópico. Se seu tópico já foi resolvido, o correto é encerrá-lo e abrir um novo tópico com outra dúvida.
Estou postando um link com diversos tutoriais de vb6. Se não for suficiente, encerre o tópico a abra outro.
Aqui no site há várias apostilas de vb6. Outro site muito visitado é o http://www.macoratti.net/indvb.htm. Para os iniciantes, comece estudanto os artigos do final da página. Além disso, tem uma área do lado direito da tela, onde podemos baixar apostilas etc.
Estou postando um link com diversos tutoriais de vb6. Se não for suficiente, encerre o tópico a abra outro.
Aqui no site há várias apostilas de vb6. Outro site muito visitado é o http://www.macoratti.net/indvb.htm. Para os iniciantes, comece estudanto os artigos do final da página. Além disso, tem uma área do lado direito da tela, onde podemos baixar apostilas etc.
Muito obrigado pela ajuda e pelos links. E me desculpe por abrir outra duvida dentro do topico.
Tópico encerrado , respostas não são mais permitidas