COMBOBOX ALTERA DADOS DE OUTRO CAMPO
Olá!
Minha dúvida é a seguinte:
Num form tenho um Combobox e um Textbox.
No Load do form são adicionados ao cmbUsuarios os itens do campo Login da tabela Usuarios.
Quero que ao ser selecionado um item de cmbUsuarios o txtTipo seja alterado para o Tipo correspondente ao Login.
A tabela seria assim:
Login | Tipo
joao | Usuário
jose | Administrador
Haida | Usuário
Alguem sabe como fazer isso?
Minha dúvida é a seguinte:
Num form tenho um Combobox e um Textbox.
No Load do form são adicionados ao cmbUsuarios os itens do campo Login da tabela Usuarios.
Quero que ao ser selecionado um item de cmbUsuarios o txtTipo seja alterado para o Tipo correspondente ao Login.
A tabela seria assim:
Login | Tipo
joao | Usuário
jose | Administrador
Haida | Usuário
Alguem sabe como fazer isso?
Esses dados ja estao cadastrados na tabela ?
Seria os campos da tabela:
Usuario (chave primaria - IndUsuario)
Tipo
entao voce faria assim:
Entao voce colocaria esse sub no evento Click no combo
com isso seria assim a lógica:
no sub Mostrar eu puxo os dados de acordo com que esta na tabela.
no evendo click do combo, eu faço a procura de acordo com o texto do combo
com isso ele puxa o sub mostrar e mostra de acordo com o procurado na tabela.
bem simples assim
seria isso o que queria ?
Seria os campos da tabela:
Usuario (chave primaria - IndUsuario)
Tipo
entao voce faria assim:
Private sub Mostrar()
combo1.text = tabela!usuario
text1.text= tabela!tipo
end sub
Entao voce colocaria esse sub no evento Click no combo
Private sub Combo1_Click()
tabela.index(indusuario)
tabela.seek [Ô]=[Ô], combo1.text
mostrar
end sub
com isso seria assim a lógica:
no sub Mostrar eu puxo os dados de acordo com que esta na tabela.
no evendo click do combo, eu faço a procura de acordo com o texto do combo
com isso ele puxa o sub mostrar e mostra de acordo com o procurado na tabela.
bem simples assim
seria isso o que queria ?
errei la em cima seria
tabela!index = [Ô]indusuario[Ô]
tabela!index = [Ô]indusuario[Ô]
Charleston,
Obrigado pela ajuda,
Fiz o que você disse, mas na execução ele não reconheceu a tabela usuário.
Meu código ficou assim:
Private Sub cmbUsuario_Click()
Usuarios!Index = [Ô]idusuario[Ô]
Usuarios.Seek [Ô]=[Ô], cmbUsuarios.Text
Call Mostrar
End Sub
Private Sub Mostrar()
cmbUsuario.Text = Usuarios!login
txtTipo.Text = Usuarios!tipo
End Sub
porque não reconheceu a tabela?
Obrigado pela ajuda,
Fiz o que você disse, mas na execução ele não reconheceu a tabela usuário.
Meu código ficou assim:
Private Sub cmbUsuario_Click()
Usuarios!Index = [Ô]idusuario[Ô]
Usuarios.Seek [Ô]=[Ô], cmbUsuarios.Text
Call Mostrar
End Sub
Private Sub Mostrar()
cmbUsuario.Text = Usuarios!login
txtTipo.Text = Usuarios!tipo
End Sub
porque não reconheceu a tabela?
Barreto, posta como vc preenche a cmbUsuários?.
Citação::
Barreto, posta como vc preenche a cmbUsuários?.
Marcelo, faço da seguinte forma:
Private Sub Form_Load()
Dim r As New ADODB.Recordset
If r.State <> 1 Then [ô]o banco de dados está fechado
r.Open [Ô]Usuarios[Ô], c, adOpenDynamic, adLockOptimistic, adCmdTable
End If
r.MoveFirst
Do While Not r.EOF
cmbUsuario.AddItem r![Login]
r.MoveNext
Loop
End Sub
Entendi!
Voce tem a tabela usuario criada ?
Caso sim.
No momento do codigo vc tem q chamar de acordo com q vc declarou no seu projeto
imagine existe uma tabela Usuario no seu banco de dados porem vc declarou ela como [Ô]User[Ô] no seu projeto,
entao sempre no codigo vc tem que chamar como User nao com o nome da tabela
Pelo que eu vi vc declarou a tabela Usuarios como [txt-color=#0000f0][Ô]r[Ô][/txt-color], faça assim
na codificação puxa com o [Ô]r[Ô]
Exemplo:
acima !
O nome da tabela é Usuarios no bd mas vc declarou a tabela como r , entao faça o codigo com o r.
;]
é só isso mesmo, até mais - abç
Voce tem a tabela usuario criada ?
Caso sim.
No momento do codigo vc tem q chamar de acordo com q vc declarou no seu projeto
imagine existe uma tabela Usuario no seu banco de dados porem vc declarou ela como [Ô]User[Ô] no seu projeto,
entao sempre no codigo vc tem que chamar como User nao com o nome da tabela
Pelo que eu vi vc declarou a tabela Usuarios como [txt-color=#0000f0][Ô]r[Ô][/txt-color], faça assim
na codificação puxa com o [Ô]r[Ô]
Exemplo:
Private Sub cmbUsuario_Click()
r!Index = [Ô]idusuario[Ô]
r.Seek [Ô]=[Ô], cmbUsuarios.Text
Call Mostrar
End Sub
Private Sub Mostrar()
cmbUsuario.Text = r!login
txtTipo.Text = r!tipo
End Sub
acima !
O nome da tabela é Usuarios no bd mas vc declarou a tabela como r , entao faça o codigo com o r.
;]
é só isso mesmo, até mais - abç
Oi, Charleston,
Mais uma vez obrigado.
O código deu erro no médoto seek
[Ô]Compile error:
Method or data member not found[Ô]
Me parece que este método não está relacionado nos
do recordset.
E agora?
Mais uma vez obrigado.
O código deu erro no médoto seek
[Ô]Compile error:
Method or data member not found[Ô]
Me parece que este método não está relacionado nos
do recordset.
E agora?
A propósito, estou usando o
Microsoft ADO Data Control 6.0 (OLEDB).
Isso influencia?
Microsoft ADO Data Control 6.0 (OLEDB).
Isso influencia?
Eu testei aqui no meu computador, sei qual é o erro, o erro é que estava usando metodo DAO e nao ADO, é que eu estou acostumado e estou mudei a pouco tempo para ADO,
Arrumei aqui e deu certo, quando eu seleciono o Usuario automaticamente muda o campo categoria de acordo com o usuario que escolhi, veja abaixo o código:
Tabela: USUARIOS
Campos: LOGIN, CATEGORIA
Arrumei aqui e deu certo, quando eu seleciono o Usuario automaticamente muda o campo categoria de acordo com o usuario que escolhi, veja abaixo o código:
Tabela: USUARIOS
Campos: LOGIN, CATEGORIA
Option Explicit
Dim Banco As New ADODB.Connection [ô]BD
Dim tbUser As New ADODB.Recordset [ô]Tabela Usuarios
Dim SQLUsuarios, SQLSEEK As String [ô]SEEK = PROCURA
Dim Conexao, Caminho As String
Private Sub cmbUsuarios_Click()
tbUser.Close
SQLSEEK = ([Ô]SELECT * FROM USUARIOS WHERE LOGIN = [ô][Ô] & cmbUsuarios.Text & [Ô][ô][Ô])
tbUser.Open SQLSEEK, Conexao, adOpenDynamic, adLockOptimistic
Mostrar
End Sub
Private Sub Form_Load()
AbrirBD
SQLUsuarios = [Ô]SELECT * FROM USUARIOS[Ô]
tbUser.Open SQLUsuarios, Conexao, adOpenDynamic, adLockOptimistic
PreencheCombo
End Sub
Private Sub AbrirBD() [ô]Abrir Banco de dados
On Error GoTo erro
Caminho = (App.Path & [Ô]\banco.mdb[Ô])
Conexao = [Ô]Provider=Microsoft.Jet.OLEDB.4.0;Data Source=[Ô] & Caminho & [Ô][Ô]
Banco.ConnectionString = Conexao
Banco.Open
erro: [ô]Erro ao abrir banco de dados
If Err.Number <> 0 Then
MsgBox Err.Description & vbCrLf & Err.Number, vbCritical
End If
End Sub
Private Sub FecharBD() [ô]Fechar Banco de dados
On Error GoTo erro
Banco.Close
Set Banco = Nothing [ô]fecha o banco de dados tirando-o da memoria
erro:
If Err.Number <> 0 Then Exit Sub
End Sub
Private Sub PreencheCombo()
Do While Not tbUser.EOF
cmbUsuarios.AddItem tbUser![login]
tbUser.MoveNext
Loop
End Sub
Private Sub Mostrar()
lblCategoria.Caption = tbUser![categoria]
End Sub
Charleston,
Muito obrigado!
O código operou perfeitamente
e fez o que eu precisava.
Tenha um feliz natal e
um excelente 2011!
Abraços
Muito obrigado!
O código operou perfeitamente
e fez o que eu precisava.
Tenha um feliz natal e
um excelente 2011!
Abraços
Tópico encerrado , respostas não são mais permitidas