LISTBOX

USUARIO.EXCLUIDOS 28/04/2007 10:20:02
#214178
Olha eu aqui de novo, e tenho certeza que essa é molesa para vocês. já tentei mais não conseguir fazer da forma que quis.

tenho no meu for um listbox e uma caixa de texto, e já concetei o listbox a minha tabela através do ADO e agora queria que quando eu fosse digitando na caixa de texto fosse selecionando o iten da listbox de acordo com que fosse digitando
fiz uma conexao mais ou menos assim

dim tblUsuar as ADODB.recordeset
dim sql as string

sql = "Select nome from usuario"
tblUsuar.open sql, conexao etc...

e agora galera como faço para ListBox funcionar de acordo com meus critérios?

agradeço mais uma vez


GUTO 28/04/2007 10:35:53
#214179
Resposta escolhida
Option Explicit
Dim DelBack As Boolean, ListClick As Boolean


Private Sub txtproprietario_Change()
Dim Rs As Recordset
Dim cnBd As String
Dim i As Integer
On Error GoTo erro
If ListClick Then
ListClick = False
Exit Sub
End If
i = txtproprietario.SelStart
cnBd = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.path & "\Bdimobiliaria.mdb;Persist Security Info=False"
Set Rs = New Recordset
Rs.Open "SELECT Nome FROM Tbl_Proprietarios WHERE Nome LIKE '" & txtproprietario.Text & "%' ORDER BY Nome asc", cnBd
If txtproprietario.Text <> "" And Not DelBack Then txtproprietario.Text = Rs![nome]

List1.Visible = True

List1.Clear

While Not Rs.EOF

List1.AddItem Rs![nome] 'nome no banco do txtproprietario

Rs.MoveNext

Wend

Rs.Close

txtproprietario.SelStart = i
txtproprietario.SelLength = Len(txtproprietario.Text)

Exit Sub
erro:
Select Case Err.Number
Case 3021
List1.Clear
List1.Visible = False
Case Else
MsgBox Err.Number & " - " & Err.Description, vbExclamation
Resume Next
End Select
End Sub



Private Sub List1_Click()   
ListClick = True
txtproprietario.Text = List1.List(List1.ListIndex)
txtproprietario.SetFocus
end Sub


Private Sub txtproprietario_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyDelete Or KeyCode = vbKeyBack Then
DelBack = True
Else
DelBack = False
End If
End Sub


GUTO 28/04/2007 10:43:10
#214182
tem uma parada assim tambem
USUARIO.EXCLUIDOS 28/04/2007 10:59:42
#214183
obrigado cara vou da uma olhada
GUTO 28/04/2007 11:17:33
#214186
Achei esse Codigo agora na net, testa ae pra nois ve

Public Const LB_FINDSTRING As Long = &H18F
Public Const LB_FINDSTRINGEXACT As Long = &H1A2

Public Declare Function SendMessage Lib "user32" _
Alias "SendMessageA" (ByVal hwnd As Long, _
ByVal wMsg As Long, ByVal wParam As Long, _
lParam As Any) As Long

Private Sub Text1_Change()
ListBox1.ListIndex = Sendmessage(ListBox1.hWnd, _
LB_FINDSTRING, -1, _
Byval Text1.Text)
End Sub

USUARIO.EXCLUIDOS 28/04/2007 15:28:26
#214196
caro amigo GUTO agadeço mais uma vez, deu uma testado no código que vc me mandou só que não era exatamente o que eu queria o que eu quero é da seguinte forma, veja minha análise

eu tenho um form chamado login nesse form tenho 3 caixa de texto e 3 botoes de comando

as caixa de texto são as seguinte "Codigo", "Usuario" e "senha"
os botoes são "Entrar", "Cancelar" e "BuscarUsuario"

minha análise é o seguinte quando o usuario clicar no botao buscarusuario vai abri meu outro form "ConsultaUsuario"onde neste form tenha a lista de usuario cadastrados;

nesse form vai existe os seguinte controles uma:
1 "LisBox" 'Onde vai aparecer os usuarios cadastrados
1 "Caixa de texto" onde o usuario vai digitar o usuario para insecao
2 "Command button" 'Um chamado inserir e outra fechar

entao tudo isso já está feito, só basta agora eu fazer o seguinte procedimento, na minha listbox eu fiz uma sql e já esta os usuarios cadastros
agora só falta eu fazer o seguite para quando eu fosse digitando na caixa de texto fosse selecionando o registro que conicidesse com o texto que estou digitando, eu fiz uma forma e deu quase cero so que da forma que fiz fica filtrando adicionadno no listbox, so que nao que add porque ja estao adicionado no envento load do for e quero apenas que selecione e me de o indice dele.
a respeito de quando eu clicasse no inserir fosse para meu form login eu sei fazer. só que eu tive dando uma olhada no meu codigo na minha listbox está aparecendo no meu listbox dois campos o codigo e nome mais isso era para ficar em duas colunas e ta ficando um abaixo do outro por isso estou quase desistindo de fazer..


lembrando que no vba no acces eu fiz tudo isso, entao sei que é possível no vb

tinha como vc me ajudar ou alguem do forum?

GUTO 28/04/2007 15:41:00
#214200
Putz meu desse jeito exato que vc quer eu nao tenho , nao acho dificil fazer nao, embora eu faria listagem usando Listview em vez de Listbox, eu ate tenho um .exe aqui que lembra um pouco oque vc quer , mas nao seria exatamente oque vc precisa, mas da uma olhada cara, quem sabe pode ser uma base.mas noa sei se entendi direito , porque esse mecanismo seu parece ser meio falho veja bem o cara ta no form login e derrepente ele pode acessar todos os logins cadastrados? vai haver nivel de permissao mesmo ?
USUARIO.EXCLUIDOS 28/04/2007 15:58:48
#214207
amigo GUTO coomprendo sua opniao, mais olhe bem esse form que ele vai abrir através do login que se chama consultaUsuario é somente para listar o usuario e colocar no form login ou seja e somente leitura e ja vi muitos programa que funciona assim, mesmo assim cara valeu e vou pontuar vc...
Tópico encerrado , respostas não são mais permitidas