CONSULTA SQL NO LOGIN

USUARIO.EXCLUIDOS 30/05/2007 02:15:43
#218799
Ola amigos, alguem sabe como cria uma consulta no login para as pessoas q ja foram cadastradas no login, ex: eu cadastrei o usuario "Lucas", qdo eu digitar a primeira letra, por exemplo, "L" no campo do TxtUsuario, queria q fizesse uma consulta mostrando o nome inteiro, soh q qdo eu digitasse a letra "L" o resto do nome "ucas" aparecesse selecionado para caso for o nome encontrado eh soh mudar de campo, caso for outro usuario com a letra "L" continua digitando e o nome some, ou seja, eu fiz da seguinte forma:

Citação:

abre_banco
SQL = "select user from usuarios where user like '%" & TxtUsuario.Text & "%'"
RS.Open SQL, banconova, adOpenForwardOnly, adLockReadOnly
axar = RS!User

TxtUsuario.Text = Left(axar, 10)



nessa consulta eu consigo axar o registro q ja foi cadastrado pela letra digitada no TxtUsuario... soh q como eu faço para ficar selecionado o resto da palavra, qdo eu digita, eis a questao? alguem pode me ajudar
SILVERDRAGON 30/05/2007 08:40:27
#218810
Assim:

Dim OldLen As Integer

If Not txtArea.Text = "" Then
OldLen = Len(txtArea.Text)

With txtArea

On Error Resume Next
.SetFocus

If .SelText = "" Then
.SelStart = OldLen
Else
.SelStart = InStr(.Text, .SelText)
End If

.SelLength = Len(.Text)
End With


flw...
USUARIO.EXCLUIDOS 30/05/2007 08:53:13
#218813
voce acha isso vantagem cara? seila, se alguem quizer zuar o programa fica mais facil... mas enfim!

abraços
USUARIO.EXCLUIDOS 30/05/2007 09:39:44
#218822
Lucas, eu recomendo você carregar os usuários cadastrados em uma ComboBox, e utilizar a propriedade da combo Style - 2 Dropdown List.
ALMARTI 30/05/2007 09:49:54
#218826
Eu não recomendo. Desculpe.
As relações de pesquisa de login devem ser diretamente ligadas às informações digitadas no ato. Este negocio de listar user pode causar muitos problemas. Vai que alguem ve o cara digitando a senha, é 50% do caminho andado para se burlar o sistema.
Além do que, você vai expor o seu sistema mostrando quem tem acesso. Desculpe meu "tradicionalismo", mas login não é uma coisa para ser facilitada ao usuário.
USUARIO.EXCLUIDOS 30/05/2007 10:40:50
#218843
Mto obrigado pela ajuda SILVERDRAGON, eu entendi o codigo soh q nao tou sabendo usar ele...rsrsrs, eu estou usando da seguinte forma:

  Dim OldLen As Integer

If RS.State = adStateClosed Then
abre_banco
End If

SQL = "select user from usuarios where user like '%" & TxtUsuario.Text & "%'"
RS.Open SQL, banconova, adOpenForwardOnly, adLockReadOnly

If Not TxtUsuario.Text = "" Then

OldLen = Len(TxtUsuario.Text)

With TxtUsuario

On Error Resume Next
.SetFocus

If .SelText = "" Then
.SelStart = OldLen
Else
.SelStart = InStr(.Text, .SelText)
End If

.SelLength = Len(RS!User)


End With
End If

RS.Close
banconova.Close
Set banconova = Nothing


nao estou conseguindo, na hora de jogar pro campo txtusuario nao ta pegando o registro...


Citação:

voce acha isso vantagem cara? seila, se alguem quizer zuar o programa fica mais facil... mas enfim!



Eltao, eu nao sei se isto eh vantagem, soh q ja vi esse codigo implementado em mtos softwares, tipo, se o usuario ja for cadastrado, qdo ele for dar o login de novo, ele soh vai digitar a primeira letra do nome dele ai aparece o restante do nome dele selecionado, soh eu nao entendi pq vc falou q alguem pode zuar o programa..bom mas vlw ai pela dica.. se alguem poder ai me ajudar eu agradeço
USUARIO.EXCLUIDOS 30/05/2007 11:22:58
#218853
Citação:

Lucas, eu recomendo você carregar os usuários cadastrados em uma ComboBox, e utilizar a propriedade da combo Style - 2 Dropdown List.



No combo vai ficar bom tbm, so q eu axo q fica pesado, pq se por exemplo tiver mtos usuarios cadastrados, ele vai ter q carregar todos, e ai pode demorar um poko mais e ainda dificulta o usuario a axar o nome dele... eu estou tentando implementar esse codigo no textbox, se alguem puder me ajudar eu agradeço.. eu citei meu codigo acima...
USUARIO.EXCLUIDOS 30/05/2007 12:00:28
#218871
Resposta escolhida
Cara, eu concordo com o ALMARTI, mas se quiser fazer isso, a forma mais fácil e mais "agradável" ao usuário, seria você populando um combobox com todos os usuários, +/- assim:

abre_banco
SQL = "select codigo, user from usuarios order by user"
RS.Open SQL, banconova, adOpenForwardOnly, adLockReadOnly
axar = RS!User

Do While Not RS.EOF
Seu_Combo.AddItem = RS!user
Seu_Combo.ItemData(Seu_Combo.NewIndex) = RS!codigo
RS.MoveNext
Loop


Daí vc coloca a propriedade Style do combo igual a "0 - DropDown Combo" (a padrão), e usa o código contido na dica: COMBOBOX AUTO-COMPLETAR MUITO FACIL:

Private Sub Seu_Combo_KeyPress(KeyAscii As Integer)
KeyAscii = Combo_AutoCompletar(Seu_Combo, KeyAscii)
End Sub


Uma coisa que eu faria é ao menos colocar uma configuração no sistema pro administrador permitir ou não a listagem dos usuários na tela de login...abços
USUARIO.EXCLUIDOS 30/05/2007 12:16:15
#218873
Isso mesmo q eu queria Matioli, valeu pela dica, mto obrigado
Tópico encerrado , respostas não são mais permitidas