Reinaldo primeiramente grato pela denominação de "Mestre", mas ainda estou longe disto e como citei anteriormente, apesar de lidar com algumas conexões, este recurso em SQL ainda não é o meu forte, por isto solicitei ajuda.
bem interessante a rotina de se verificar a versão e montar a conexão, eu já conhecia as instruções basicas para se verificar a versão mas nunca precisei aliar a uma conexão, valeu pela dica.
Quanto a verificar a versão temos algumas opções, no google encontramos varias formas.
Sub VerificaVersaoExcel ()
If Application.Version = “12.0″ Then
MsgBox “A versão do Excel é 2007.”
ElseIf Application.Version = “11.0″ Then
MsgBox “A versão do Excel é 2003.”
ElseIf Application.Version = “8.0″ Then
MsgBox “A versão do Excel é 97.”
End If
End Sub
Fazendo seu código funcionar em todas as versões de Microsoft Excel
http://www.tomasvasquez.com.br/artigos/ ... versao.htm
Vou deixar só estas, temos varias.
Agora quanto ao meu tópico, agradeço a todos, foi de grande valia, testei e todas me atenderam, e em uma analise mais criteriosa das instruções, para adaptar a rotina que eu ja utilizava, só precisei ajustar poucas instruções, acredito que esta rotina já é conhecida, e ficou da seguinte forma, assim que possível posto um modelo.
Private Sub PopulaBairros()
Dim conn As ADODB.Connection
Dim rst As ADODB.Recordset
Dim sql As String
Set conn = New ADODB.Connection
With conn
.Provider = "Microsoft.JET.OLEDB.4.0"
.ConnectionString = "Data Source=" & caminhoArquivoDados & ";Extended Properties=Excel 8.0;"
.Open
End With
sql = "SELECT DISTINCT Bairro FROM [Realizados$]" 'Bairro
Set rst = New ADODB.Recordset
With rst
.ActiveConnection = conn
.Open sql, conn, adOpenDynamic, _
adLockBatchOptimistic
End With
'Total de registros por nome unico
sql = "Select Count(br1) as Qtde from(Select Distinct(Bairro) as Br1 from [Realizados$]);"
rst.Close
'Retorno qtde repetida de registros
sql = "Select Bairro, Count(Bairro) from [Realizados$] GROUP BY Bairro;"
rst.Open sql, conn ', 0, 1, 1
lstBairros.ColumnCount = 2
lstBairros.ColumnWidths = "3,5 cm;1 cm;"
sCol = 0 'Coluna do ListBox
'Prrenche o ListBox com 2 colunas com o Bairro e a qde de cada um
Do While Not rst.EOF
If Not IsNull(rst(0).Value) Then
lstBairros.AddItem rst(0).Value 'Coluna 1
lstBairros.List(sCol, 1) = rst(1) 'Coluna 2
sCol = sCol + 1
End If
rst.MoveNext
Loop
' Fecha o conjunto de registros.
Set rst = Nothing
' Fecha a conexão.
conn.Close
End Sub
Mais uma vez agradeço e até a próxima.
[]s
Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel
Postado : 03/05/2012 8:58 pm