Boa tarde amigos, tenho uma combobox chamada txt_uf, nela queria que os dados uf não ficassem duplicados...Alguma idéia amigos?
Segue código que tentei mas não deu certo...
Private Sub UserForm_INITIALIZE()
Dim Dados As ADODB.Recordset
Dim ComandoSQL As String
Set Dados = New ADODB.Recordset
ComandoSQL = "SELECT * FROM tbOrç_Detalhe2" & vbCrLf
ComandoSQL = ComandoSQL & "Order by Nome_Cli"
Caminho = ThisWorkbook.Path & "\Banco.mdb"
Provedor = "Provider=Microsoft.Jet.OLEDB.4.0;DATA SOURCE="
cn.ConnectionString = Provedor & Caminho
cn.Open
Dados.Open ComandoSQL, cn, adOpenForwardOnly, adLockReadOnly, adCmdText
txt_cidade.Clear
txt_uf.Clear
While Not Dados.EOF
txt_cidade.AddItem Dados!Nome_Cli
txt_uf.AddItem Dados!uf
ComandoSQL = "SELECT uf FROM tbOrç_Detalhe2 GROUP BY uf"
Dados.MoveNext
Wend
cn.Close
Iniciar
calc = True
With Me.lstvOrç
.FullRowSelect = True
.View = lvwReport
.Gridlines = True
.Font.Size = 9
.ColumnHeaders.Add Text:="DATA", Width:=50 ', Alignment:=fmAlignmentRight
.ColumnHeaders.Add Text:="CLIENTE", Width:=170
.ColumnHeaders.Add Text:="OBS", Width:=0, Alignment:=fmAlignmentRight
.ColumnHeaders.Add Text:="TELEFONE", Width:=80, Alignment:=fmAlignmentRight
.ColumnHeaders.Add Text:="CONTATO", Width:=0, Alignment:=fmAlignmentRight
.ColumnHeaders.Add Text:="E-MAIL", Width:=130, Alignment:=fmAlignmentRight
.ColumnHeaders.Add Text:="ENDEREÇO", Width:=0, Alignment:=fmAlignmentRight
.ColumnHeaders.Add Text:="CNPJ/CPF", Width:=100, Alignment:=fmAlignmentRight
.ColumnHeaders.Add Text:="I.E.", Width:=0, Alignment:=fmAlignmentRight
.ColumnHeaders.Add Text:="N°", Width:=0, Alignment:=fmAlignmentRight
.ColumnHeaders.Add Text:="BAIRRO", Width:=0, Alignment:=fmAlignmentRight
.ColumnHeaders.Add Text:="CEP", Width:=0, Alignment:=fmAlignmentRight
.ColumnHeaders.Add Text:="CIDADE", Width:=0, Alignment:=fmAlignmentRight
.ColumnHeaders.Add Text:="UF", Width:=0, Alignment:=fmAlignmentRight
.BackColor = RGB(193, 217, 241) 'Azul Office 2007
End With
End Sub
Vídeo recomendado
https://youtu.be/diWPPPhW-9E
https://youtu.be/diWPPPhW-9E
Dados duplicados Combobox
Moderador: joseA
Re: Dados duplicados Combobox
No seu banco as informações estão repetidas? Pode agrupar o resultado com o GROUP BY .
Voce esta tentando usar o GROUP BY mas pelo visto declarou no local errado, tem que declarar no comando antes de executar a consulta SQL. Nessa parte:
Aqui não faz diferença, a consulta ja foi executada e esta apenas descarregando o resultado:
Voce esta tentando usar o GROUP BY mas pelo visto declarou no local errado, tem que declarar no comando antes de executar a consulta SQL. Nessa parte:
Código: Selecionar todos
ComandoSQL = "SELECT * FROM tbOrç_Detalhe2" & vbCrLf
ComandoSQL = ComandoSQL & "Order by Nome_Cli"
Código: Selecionar todos
While Not Dados.EOF
txt_cidade.AddItem Dados!Nome_Cli
txt_uf.AddItem Dados!uf
ComandoSQL = "SELECT uf FROM tbOrç_Detalhe2 GROUP BY uf"
Dados.MoveNext
Wend
Re: Dados duplicados Combobox
Boa noite, obrigado por me ajudar, mas ainda não consegui entender onde devo colocar esta parte do código.
ComandoSQL = "SELECT uf FROM tbOrç_Detalhe2 GROUP BY uf"
ComandoSQL = "SELECT uf FROM tbOrç_Detalhe2 GROUP BY uf"
Re: Dados duplicados Combobox [Resolvido]
Obrigado mais uma vez amigos, deu certo assim:
Private Sub UserForm_INITIALIZE()
Dim Dados As ADODB.Recordset
Dim ComandoSQL As String
Set Dados = New ADODB.Recordset
ComandoSQL = "SELECT * FROM tbOrç_Detalhe2" & vbCrLf
ComandoSQL = ComandoSQL & "Order by Nome_Cli"
ComandoSQL = "SELECT Observaçoes FROM tbOrç_Detalhe2 GROUP BY Observaçoes"
Caminho = ThisWorkbook.Path & "\Banco.mdb"
Provedor = "Provider=Microsoft.Jet.OLEDB.4.0;DATA SOURCE="
cn.ConnectionString = Provedor & Caminho
cn.Open
Dados.Open ComandoSQL, cn, adOpenForwardOnly, adLockReadOnly, adCmdText
'txt_cidade.Clear
txt_uf.Clear
While Not Dados.EOF
'txt_cidade.AddItem Dados!Nome_Cli
txt_uf.AddItem Dados!Observaçoes
Dados.MoveNext
Wend
cn.Close
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
ComandoSQL = "SELECT * FROM tbOrç_Detalhe2" & vbCrLf
ComandoSQL = ComandoSQL & "Order by Nome_Cli"
Caminho = ThisWorkbook.Path & "\Banco.mdb"
Provedor = "Provider=Microsoft.Jet.OLEDB.4.0;DATA SOURCE="
cn.ConnectionString = Provedor & Caminho
cn.Open
Dados.Open ComandoSQL, cn, adOpenForwardOnly, adLockReadOnly, adCmdText
While Not Dados.EOF
txt_cidade.AddItem Dados!Nome_Cli
'txt_uf.AddItem Dados!Observaçoes
Dados.MoveNext
Wend
cn.Close
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Iniciar
calc = True
With Me.lstvOrç
.FullRowSelect = True
.View = lvwReport
.Gridlines = True
.Font.Size = 9
.ColumnHeaders.Add Text:="DATA", Width:=50 ', Alignment:=fmAlignmentRight
.ColumnHeaders.Add Text:="CLIENTE", Width:=170
.ColumnHeaders.Add Text:="OBS", Width:=0, Alignment:=fmAlignmentRight
.ColumnHeaders.Add Text:="TELEFONE", Width:=80, Alignment:=fmAlignmentRight
.ColumnHeaders.Add Text:="CONTATO", Width:=0, Alignment:=fmAlignmentRight
.ColumnHeaders.Add Text:="E-MAIL", Width:=130, Alignment:=fmAlignmentRight
.ColumnHeaders.Add Text:="ENDEREÇO", Width:=0, Alignment:=fmAlignmentRight
.ColumnHeaders.Add Text:="CNPJ/CPF", Width:=100, Alignment:=fmAlignmentRight
.ColumnHeaders.Add Text:="I.E.", Width:=0, Alignment:=fmAlignmentRight
.ColumnHeaders.Add Text:="N°", Width:=0, Alignment:=fmAlignmentRight
.ColumnHeaders.Add Text:="BAIRRO", Width:=0, Alignment:=fmAlignmentRight
.ColumnHeaders.Add Text:="CEP", Width:=0, Alignment:=fmAlignmentRight
.ColumnHeaders.Add Text:="CIDADE", Width:=0, Alignment:=fmAlignmentRight
.ColumnHeaders.Add Text:="UF", Width:=0, Alignment:=fmAlignmentRight
.BackColor = RGB(193, 217, 241) 'Azul Office 2007
End With
End Sub
Private Sub UserForm_INITIALIZE()
Dim Dados As ADODB.Recordset
Dim ComandoSQL As String
Set Dados = New ADODB.Recordset
ComandoSQL = "SELECT * FROM tbOrç_Detalhe2" & vbCrLf
ComandoSQL = ComandoSQL & "Order by Nome_Cli"
ComandoSQL = "SELECT Observaçoes FROM tbOrç_Detalhe2 GROUP BY Observaçoes"
Caminho = ThisWorkbook.Path & "\Banco.mdb"
Provedor = "Provider=Microsoft.Jet.OLEDB.4.0;DATA SOURCE="
cn.ConnectionString = Provedor & Caminho
cn.Open
Dados.Open ComandoSQL, cn, adOpenForwardOnly, adLockReadOnly, adCmdText
'txt_cidade.Clear
txt_uf.Clear
While Not Dados.EOF
'txt_cidade.AddItem Dados!Nome_Cli
txt_uf.AddItem Dados!Observaçoes
Dados.MoveNext
Wend
cn.Close
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
ComandoSQL = "SELECT * FROM tbOrç_Detalhe2" & vbCrLf
ComandoSQL = ComandoSQL & "Order by Nome_Cli"
Caminho = ThisWorkbook.Path & "\Banco.mdb"
Provedor = "Provider=Microsoft.Jet.OLEDB.4.0;DATA SOURCE="
cn.ConnectionString = Provedor & Caminho
cn.Open
Dados.Open ComandoSQL, cn, adOpenForwardOnly, adLockReadOnly, adCmdText
While Not Dados.EOF
txt_cidade.AddItem Dados!Nome_Cli
'txt_uf.AddItem Dados!Observaçoes
Dados.MoveNext
Wend
cn.Close
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Iniciar
calc = True
With Me.lstvOrç
.FullRowSelect = True
.View = lvwReport
.Gridlines = True
.Font.Size = 9
.ColumnHeaders.Add Text:="DATA", Width:=50 ', Alignment:=fmAlignmentRight
.ColumnHeaders.Add Text:="CLIENTE", Width:=170
.ColumnHeaders.Add Text:="OBS", Width:=0, Alignment:=fmAlignmentRight
.ColumnHeaders.Add Text:="TELEFONE", Width:=80, Alignment:=fmAlignmentRight
.ColumnHeaders.Add Text:="CONTATO", Width:=0, Alignment:=fmAlignmentRight
.ColumnHeaders.Add Text:="E-MAIL", Width:=130, Alignment:=fmAlignmentRight
.ColumnHeaders.Add Text:="ENDEREÇO", Width:=0, Alignment:=fmAlignmentRight
.ColumnHeaders.Add Text:="CNPJ/CPF", Width:=100, Alignment:=fmAlignmentRight
.ColumnHeaders.Add Text:="I.E.", Width:=0, Alignment:=fmAlignmentRight
.ColumnHeaders.Add Text:="N°", Width:=0, Alignment:=fmAlignmentRight
.ColumnHeaders.Add Text:="BAIRRO", Width:=0, Alignment:=fmAlignmentRight
.ColumnHeaders.Add Text:="CEP", Width:=0, Alignment:=fmAlignmentRight
.ColumnHeaders.Add Text:="CIDADE", Width:=0, Alignment:=fmAlignmentRight
.ColumnHeaders.Add Text:="UF", Width:=0, Alignment:=fmAlignmentRight
.BackColor = RGB(193, 217, 241) 'Azul Office 2007
End With
End Sub