CARREGA DO BANCO UM COMBOBOX
eu gostaria de carregar no combobox as categorias para quando eu fosse cadastrar um produto, exemplo ja aparecer as categorias conforme as que ja estão cadastradas.
exemplo:
vamos supor que eu tenha cadastrado uma memoria, dois processadores, dois hd.
ai no combo eu gostaria que mostrasse apenas tres categorias sem repetir, Memoria, Processador, HD.
e não Memoria, Processador, Processador, HD, HD.
e que eu podesse incluir tbm como estou incluindo, na mesma tabela, a ideia é só na hora de buscar e não salvar, eu quero que seja salva no mesmo campo da mesma tabela e só na hora de mostrar mostrar assim, eu sei que tem um comando distinct mais não sei como usar...
exemplo:
vamos supor que eu tenha cadastrado uma memoria, dois processadores, dois hd.
ai no combo eu gostaria que mostrasse apenas tres categorias sem repetir, Memoria, Processador, HD.
e não Memoria, Processador, Processador, HD, HD.
e que eu podesse incluir tbm como estou incluindo, na mesma tabela, a ideia é só na hora de buscar e não salvar, eu quero que seja salva no mesmo campo da mesma tabela e só na hora de mostrar mostrar assim, eu sei que tem um comando distinct mais não sei como usar...
Private Sub sub_Adiciona_Categorias()
Dim objRecord As New ADODB.Recordset
Dim sSql As String
[ô]
sSql = [Ô]Select Distinct(Categoria) From Produtos[Ô]
objRecord.Open sSql, bd, adOpenStatic
[ô]
Do While Not objRecord.EOF
[ô]
categoria.AddItem objRecord!categoria
objRecord.MoveNext
[ô]
Loop
[ô]
objRecord.Close
Set objRecord = Nothing
[ô]
End Sub
Posso te dar uma idéia .....
Crie um cadastro de CATEGORIA, ou seja, uma tabela aparte da tabela PRODUTOS.
Da forma que você esta querendo fazer ( e da forma que o ASHKATCHUP sugeriu) , se tiver cadastro, por exemplo, na tabela produtos MEMÓRIA DDR 256, MEMÓRIA DDR 512, MEMÓRIA KINGSTON 512 ...... vai aparecer da mesma forma no campo CATEGORIA, pois os nomes das memórias são distintos (parecidos porém distintos).
Então minha dica: Cria uma tabela chamada CATEGORIA com os campo CODIGO e CATEGORIA e utilize o código do ASHKATCHUP da seguinte forma:
Private Sub sub_Adiciona_Categorias()
Dim objRecord As New ADODB.Recordset
Dim sSql As String
[ô]
sSql = [Ô]Select categoria From CATEGORIA[Ô]
objRecord.Open sSql, bd, adOpenStatic
[ô]
Do While Not objRecord.EOF
[ô]
categoria.AddItem objRecord!categoria
objRecord.MoveNext
[ô]
Loop
[ô]
objRecord.Close
Set objRecord = Nothing
[ô]
End Sub
Crie um cadastro de CATEGORIA, ou seja, uma tabela aparte da tabela PRODUTOS.
Da forma que você esta querendo fazer ( e da forma que o ASHKATCHUP sugeriu) , se tiver cadastro, por exemplo, na tabela produtos MEMÓRIA DDR 256, MEMÓRIA DDR 512, MEMÓRIA KINGSTON 512 ...... vai aparecer da mesma forma no campo CATEGORIA, pois os nomes das memórias são distintos (parecidos porém distintos).
Então minha dica: Cria uma tabela chamada CATEGORIA com os campo CODIGO e CATEGORIA e utilize o código do ASHKATCHUP da seguinte forma:
Private Sub sub_Adiciona_Categorias()
Dim objRecord As New ADODB.Recordset
Dim sSql As String
[ô]
sSql = [Ô]Select categoria From CATEGORIA[Ô]
objRecord.Open sSql, bd, adOpenStatic
[ô]
Do While Not objRecord.EOF
[ô]
categoria.AddItem objRecord!categoria
objRecord.MoveNext
[ô]
Loop
[ô]
objRecord.Close
Set objRecord = Nothing
[ô]
End Sub
amigo eu chamei essa função no evento click do combobox categoria, como eu faço para carregar na combobox os dados do campo categoria sem repetir eu sei que usa o distinct mais não estou sabendo como usar essa função que vc criou....
cara tenta assim
Private WithEvents rsMySQL2 As ADODB.Recordset
Private Sub Cboadd()
Set rsMySQL2 = New ADODB.Recordset
rsMySQL2.Open [Ô]select * from tabela ORDER BY codigo ASC[Ô], cnn
With rsMySQL2
.MoveFirst
If .RecordCount > 0 Then
cbo_add.Clear
For i = 1 To .RecordCount
If !Ativo = 1 Then
cbo_add.AddItem !Produto
End If
.MoveNext
Next i
End If
End With
End Sub
Private WithEvents rsMySQL2 As ADODB.Recordset
Private Sub Cboadd()
Set rsMySQL2 = New ADODB.Recordset
rsMySQL2.Open [Ô]select * from tabela ORDER BY codigo ASC[Ô], cnn
With rsMySQL2
.MoveFirst
If .RecordCount > 0 Then
cbo_add.Clear
For i = 1 To .RecordCount
If !Ativo = 1 Then
cbo_add.AddItem !Produto
End If
.MoveNext
Next i
End If
End With
End Sub
amigos desculpem mais eu ja tinha conseguido com a ajuda do ash katchup antes de ver suas resposta mais muito obrigado assim mesmo....
Tópico encerrado , respostas não são mais permitidas