DUVIDA SOBRE COMANDOS

NALDO 28/09/2010 16:09:08
#354013
Private Sub subAlterar()
Dim sSQL As String
Dim rs As New ADODB.Recordset

sSQL = [Ô][Ô]
sSQL = sSQL & [Ô] SELECT [Ô]
sSQL = sSQL & [Ô] senha [Ô]
sSQL = sSQL & [Ô] FROM [Ô]
sSQL = sSQL & [Ô] loguin [Ô]
sSQL = sSQL & [Ô] WHERE [Ô]
sSQL = sSQL & [Ô] cod=[Ô] & txt(0).Text & [Ô] [Ô]

If rs.State = 1 Then rs.Close

rs.Open sSQL, Conn, adOpenDynamic

If rs.EOF = False Then
If rs(0) = txt(2).Text Then

sSQL = [Ô][Ô]
sSQL = sSQL & [Ô] UPDATE [Ô]
sSQL = sSQL & [Ô] loguin[Ô]
sSQL = sSQL & [Ô] SET [Ô]
sSQL = sSQL & [Ô] senha=[ô][Ô] & txt(1).Text & [Ô][ô] [Ô]
sSQL = sSQL & [Ô] WHERE [Ô]
sSQL = sSQL & [Ô] cod=[ô][Ô] & txt(0).Text & [Ô][ô] AND[Ô]
sSQL = sSQL & [Ô] senha=[ô][Ô] & txt(2).Text & [Ô][ô] [Ô]

Conn.Execute sSQL, , 128 + 1
MsgBox [Ô]Senha alterada com sucesso![Ô], vbInformation, [Ô]Senha Alterada[Ô]
Else
MsgBox [Ô]Senha não alterada![Ô], vbCritical, [Ô]Dados Incorretos[Ô]
Unload Me
End If
End If
End Sub


Esse frm está funcionando corretamente, ele server para alterar senha de um usuário que esteja logado usando um código, só que em especial esses em negrito eu tenho dúvida e não saberia como usar... será que alguém com mais experiência poderia estar me postando o que eles fazem o significado ou até mesmo me postar o código comentado para que eu possa salvar em meu projeto...
THIGO 28/09/2010 16:22:59
#354017
Resposta escolhida
Certo amigo ae vai

[ô]Verifica se o recordset esta aberto caso o state esteje 1 ele fecha com o close
If rs.State = 1 Then rs.Close

[ô]Abre a conexao recordset da pesquisa sql
rs.Open sSQL, Conn, adOpenDynamic

[ô]Aqui o ideal seria testar o EOF e o BOF, verifica se possui registro no recordset
[ô]If (rsPos.BOF) = False Or (rsPos.EOF) = False Then, caso queira usar dessa maneira da certo também
If rs.EOF = False Then
[ô]Verifca se o atributo senha do recordset está em branco sem valor
If rs(0) = txt(2).Text Then
sSQL = [Ô][Ô]
sSQL = sSQL & [Ô] UPDATE [Ô]
sSQL = sSQL & [Ô] loguin[Ô]
sSQL = sSQL & [Ô] SET [Ô]
sSQL = sSQL & [Ô] senha=[ô][Ô] & txt(1).Text & [Ô][ô] [Ô]
sSQL = sSQL & [Ô] WHERE [Ô]
sSQL = sSQL & [Ô] cod=[ô][Ô] & txt(0).Text & [Ô][ô] AND[Ô]
sSQL = sSQL & [Ô] senha=[ô][Ô] & txt(2).Text & [Ô][ô] [Ô]

Conn.Execute sSQL, , 128 + 1
MsgBox [Ô]Senha alterada com sucesso![Ô], vbInformation, [Ô]Senha Alterada[Ô]
Else
MsgBox [Ô]Senha não alterada![Ô], vbCritical, [Ô]Dados Incorretos[Ô]
Unload Me
End If
End If
End Sub
NALDO 28/09/2010 16:31:20
#354018
Ok, obrigado, vou esperar para ver se alguém mais responde, mas está bem explicado... Muito Obrigado!
ACG1574 28/09/2010 17:24:53
#354024
[ô]se o recordset estiver aberto (1) ele fecha com o close, pois irá abrir ele abaixo
If rs.State = 1 Then rs.Close
[ô]Abre o recordset
rs.Open sSQL, Conn, adOpenDynamic

[ô]aqui eu uso rs.recordcount > 0
[ô]If rs.recordcount > 0 Then - acho mais seguro
If rs.EOF = False Then
[ô]Verifca se o que foi digitado na caixa de texto é igual ao que esta no recordset , se for ele altera
If rs(0) = txt(2).Text Then
sSQL = [Ô][Ô]
sSQL = sSQL & [Ô] UPDATE [Ô]
sSQL = sSQL & [Ô] loguin[Ô]
sSQL = sSQL & [Ô] SET [Ô]
sSQL = sSQL & [Ô] senha=[ô][Ô] & txt(1).Text & [Ô][ô] [Ô]
sSQL = sSQL & [Ô] WHERE [Ô]
sSQL = sSQL & [Ô] cod=[ô][Ô] & txt(0).Text & [Ô][ô] AND[Ô]
sSQL = sSQL & [Ô] senha=[ô][Ô] & txt(2).Text & [Ô][ô] [Ô]

Conn.Execute sSQL, , 128 + 1
MsgBox [Ô]Senha alterada com sucesso![Ô], vbInformation, [Ô]Senha Alterada[Ô]
Else
MsgBox [Ô]Senha não alterada![Ô], vbCritical, [Ô]Dados Incorretos[Ô]
Unload Me
End If
End If
End Sub
NALDO 28/09/2010 17:27:14
#354026
Obrigado aos 2 !
Tópico encerrado , respostas não são mais permitidas