Ir para conteúdo
Fórum Script Brasil
  • 0

Problemas com preenchimento de Combobox


Justiceira

Pergunta

Tenho tres combobox,que recebem dados de um banco de dados access. Estou usando DAO

Gostaria que quando fosse escolhida determinada opção numa combobox a outra fosse ativada/habilitada com os campos correspondentes a essa opção.

igual em alguns cadastros que voce seleciona o estado tipo são PAULO e na proxima carrega as cidades de são paulo

Coloquei o seguinte codigo


Private Sub preencher_combo()
TBatividade.MoveFirst
Do While Not TBatividade.EOF
Comboativ.AddItem TBatividade!InstitucaodaAtividade
Comboarea.AddItem TBatividade!AreadoEntretenimento
Comboloc.AddItem TBatividade!Local
txtdata.AddItem TBatividade!Data
txthorini.AddItem TBatividade!Horarioinicial
txthorfim.AddItem TBatividade!HorarioFinal
TBatividade.MoveNext
Loop
Erro:
If Err.Number <> 0 Then
MsgBox ("Erro #: " & Str(Err.Number) & Err.Description)
Exit Sub
End If
End Sub
[/codebox]

[codebox]
Public Sub CarregarCombo()
Dim TBatividade As Recordset
Set TBatividade = BancoDeDados.OpenRecordset("cadastro de atividades", dbOpenDynaset)
Comboativ.Clear
Do While TBatividade.EOF = False
Comboativ.AddItem Trim(TBatividade("InstitucaodaAtividade"))
Comboativ.ItemData(Comboativ.NewIndex) = TBatividade("codatividade")
TBatividade.MoveNext
Loop
TBatividade.Close
Set TBatividade = Nothing
End Sub


Private Sub Comboativ_Click()
Comboarea.Enabled = True
CarregarCombo
End Sub
[/codebox]

Mas este me retorna TODAS as linhas do access de determinado campo,e as vezes aparece duas vezes(duplicado)

Eu queria que fosse filtrado pra aparecer somente os diferentes no primeiro combobox e nos outros que aparecesse somente as opções q tem haver com a selecionada.

alguém poderia me ajudar??

Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 0

então, justiceira, mas você tem q adicionar o filtro. o q é "cadastro de atividades"?? é o nome de uma tabela ou uma consulta??

não lembro muito bem como se faz em dao, mas acho q seria tipo isso o q você teria q fazer:

Set TBatividade = BancoDeDados.OpenRecordset("Select * From [cadastro de atividades] Where Campo = '" & Comboativ.Text & "'", dbOpenDynaset)

Link para o comentário
Compartilhar em outros sites

  • 0

então, justiceira, na linha q eu passei, Campo foi so um nome de exemplo q eu escrevi. o q você tem q por no lugar de Campo é o nome do campo pelo qual você quer filtrar.

no exemplo dos estados q você comentou. na primero combo, você selecionou SP, por exemplo. na tabela referente ao segundo combo, deve existir algum campo la dentro q aponta q o registro é de SP. seria esse campo q você teria q usar na query.

tenta ai, qualquer coisa poste.

Link para o comentário
Compartilhar em outros sites

  • 0

Resolveu o erro.

Só que continuou do mesmo jeito

Eu tenho um outro formulario que cadastra atividades e areas dela entre outras coisas.

E pra não ter a tabela vazia eu cadastrei tres instituições só pra não ficar em branco

BRADESCO

CENTRAL DE TV

SBT

só essas

mas quando clico no comboativ que recupera ela do banco de dados access aparecem assim e as vezes não.

BRADESCO

BRADESCO

CENTRAL DE TV

CENTRAL DE TV

SBT

SBT

Não entendo,será sujeira isso??

Link para o comentário
Compartilhar em outros sites

  • 0

justiceira, mas isso ocorre quando você chama o preencher_combo() ou o CarregarCombo()??

e, olhando melhor agora seu codigo... não sei se entendi direito o q você quer... no clique no Comboativ, você chama uma sub q preenche o proprio Comboativ. ele não devia preencher um segundo combo??

Link para o comentário
Compartilhar em outros sites

  • 0

Quando eu chamo o preencher combobox

Eu precisava que na hora do cadastro (um exemplo)tenho um campo forum ,um area do forum e um moderador.

E quando fosse clicar na combo forum escolhesse o nome de um existente(porem existem forum que tem moderador em mais areas ou seja esse campo tem repetição no access mas não pode ter no formulario vb.

Bom cliquei no primeiro e vamos supor no proximo não filtrou apareceu tudo da coluna area,então escolho hardware e depois clico no combo moderador e escolho um que nem é do forum nem é da area selecionada.

Estaria tudo errado,porem disponivel pra eu fazer(ate fiz pra testar).

Como posso resolver isso???

Link para o comentário
Compartilhar em outros sites

  • 0

justiceira, tudo isso você ve na hora de fazer o select.

E quando fosse clicar na combo forum escolhesse o nome de um existente(porem existem forum que tem moderador em mais areas ou seja esse campo tem repetição no access mas não pode ter no formulario vb.

então deve ser por isso q tava saindo repetido. então, você teria q fazer um select agrupado, tipo assim:

Set TBatividade = BancoDeDados.OpenRecordset("Select forum From sua_tabela Group By forum", dbOpenDynaset)
ai, no exemplo, se os nomes dos forums estiverem num campo chamado forum, então os nomes virao agrupados. então, se o forum hardware, aparecer 3 vezes na tabela, no select, vira apenas 1. o problema disso, é q eu vi q você preenche outros combos com o mesmo recordset. ai você teria q mudar essa parte do codigo, você teria q chamar esse select so pra carregar o combo dos nomes dos forums. pra carregar os outros combos, você teria q abrir o recordset novamente, da forma como estava fazendo antes.
Bom cliquei no primeiro e vamos supor no proximo não filtrou apareceu tudo da coluna area,então escolho hardware e depois clico no combo moderador e escolho um que nem é do forum nem é da area selecionada.
isso teria q ser resolvido com aquele codigo q passei no post de cima:
Set TBatividade = BancoDeDados.OpenRecordset("Select * From [cadastro de atividades] Where Campo = '" & Comboativ.Text & "'", dbOpenDynaset)

veja ai, qualquer coisa poste.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...