FILTRAR DADOS NO COMBOBOX COM SQL

CLLEVER10 04/07/2012 20:01:47
#405546
Olá Pessoal
Preciso de uma ajuda.
Tenho 2 combos.O primeiro é estatico,nunca muda,tem 10 itens.
O segundo é um filtro do que se escolheu no primeiro.
E quando selecionar o item no combo2 ele filtra os dados e mostra no dblist ,a partir daí é o que eu já tenho.
to filtrando com a função distinct pra evitar repetiçoes.
Meu dblist esta conectado pelo data1 e não consigo fazer o filtro usando sql.

Grato
MARCELO.TREZE 04/07/2012 20:02:51
#405547
poste o código que tentou até agora
CLLEVER10 04/07/2012 20:22:59
#405552
Segue os codigos.
Private Sub cboselecao_Click()
Dim SQL As String

SQL = [Ô]select nome from cadastro where FABRICANTE= [Ô] & cboselecao.ItemData(cboselecao.ListIndex)

Data1.DatabaseName = App.Path & [Ô]\iscas artificiais.mdb[Ô]
Data1.RecordSource = SQL

End Sub

Private Sub cboselecao_GotFocus()
Dim AreaTrabalho As Workspace
Dim query As String
Dim dyn As Dynaset


Set AreaTrabalho = DBEngine.Workspaces(0)
Set xxbco = AreaTrabalho.OpenDatabase(App.Path & [Ô]\iscas artificiais.mdb[Ô], False, False)

query = [Ô]select DISTINCT FABRICANTE from cadastro[Ô]
Set dyn = xxbco.CreateDynaset(query)

While Not dyn.EOF
cboselecao.AddItem dyn([Ô]FABRICANTE[Ô]) & [Ô][Ô]
dyn.MoveNext
Wend
xxbco.Close
End Sub

o combo2(cboselecao) esta recebendo os dados filtrados, o problema é que são 10 itens é não tenho a menor ideia de como fazer para filtrar os 10.
Agora não vai de jeito nenhum o filtro para mostrar a escolha do combo2 cboselecao.
FILMAN 05/07/2012 12:29:25
#405587
Quais os dados mostraria no DBList ao selecionar o item
CLLEVER10 05/07/2012 16:58:17
#405611
Vamos lá.
Combo1=fabricante,tipo,tamanho e mais 6 itens
Combo2=se a escolha foi fabricante(Kv,Aicas e Etc)
DBlist=Nome das iscas conforme o fabricante.

Eu fiz assim:
Private Sub cboselecao_GotFocus()
Dim AreaTrabalho As Workspace
Dim query As String
Dim dyn As Dynaset

Set AreaTrabalho = DBEngine.Workspaces(0)
Set xxbco = AreaTrabalho.OpenDatabase(App.Path & [Ô]\iscas artificiais.mdb[Ô], False, False)

cboselecao.Clear

If cbofiltro.Text = [Ô]FABRICANTE[Ô] Then
query = [Ô]select DISTINCT FABRICANTE from cadastro[Ô]
Set dyn = xxbco.CreateDynaset(query)
While Not dyn.EOF
cboselecao.AddItem dyn([Ô]FABRICANTE[Ô]) & [Ô][Ô]
dyn.MoveNext
Wend
End If

Fiz isso para cada nome que tenho no primeiro combo.

Private Sub cboselecao_Click()
Data1.DatabaseName = App.Path & [Ô]\iscas artificiais.mdb[Ô]

If cbofiltro.Text = [Ô]FABRICANTE[Ô] Then
Data1.RecordSource = [Ô]select NOME from cadastro WHERE FABRICANTE= [ô][Ô] & cboselecao & [Ô][ô][Ô]
Data1.Refresh [ô]
End If

Tambem fiz uma pra cada nome do primeiro combo.

Funcionou mas ficou bem grande,não sei se da pra simplificar e se assim pode ficar carregado ,deixando o programa lento.

Abraço
Tópico encerrado , respostas não são mais permitidas