CONEXCAO SQL

NSTOLBERG 02/07/2013 14:32:29
#425467
Boa Tarde,

Estou tentando fazer uma conexão SQL com uma planilha do excel e trazer um valor específico de uma celula, mas não estou conseguindo escrever a instrução sql, apesar de já ter procurado bastante.
A galera ai pode ajudar?

Dim strSQL As String
Origem = [Ô]C:\Users\User\Desktop\Nova pasta\FR-054.xls[Ô]

Set cn = New ADODB.Connection
Set rs = New ADODB.Recordset

[txt-color=#007100][ô]abre uma conexão com a planilha do Excel[/txt-color]
cn.ConnectionString = [Ô]Provider=Microsoft.Jet.OLEDB.4.0;[Ô] & [Ô]Data Source=[Ô] & Origem & [Ô];[Ô] & [Ô]Extended Properties=Excel 8.0[Ô]
cn.Open

[txt-color=#007100][ô]monta a instrução SQL que irá pegar os dados[/txt-color]
strSQL = [Ô]SELECT * FROM [IDF$F9] [Ô] [txt-color=#e80000][ô]quero pegar o valor desta planilha (IDF) nesta celula (F9).[/txt-color]
Set rs = cn.Execute(strSQL)

Range([Ô]A1[Ô]).Value =[txt-color=#e80000] [ô]preciso colocar o resultado aqui.[/txt-color]

[txt-color=#007100][ô]Fecha RecordSet e Conexão[/txt-color]
rs.Close
cn.Close
Exit Sub

Obrigado pela ajuda galera....
Nei.
CASSIOJFF 02/07/2013 15:03:56
#425468
So olhando por cima, nao testando ta mas sera q vc nao montou errado strSQL = [Ô]SELECT * FROM [IDF$F9][Ô], pois acho que deveria ser assim strSQL = [Ô]SELECT * FROM [Ô] & Range([Ô]AA23[Ô]).Value
supondo que esse endereço [IDF$F9] seja AA23
NSTOLBERG 02/07/2013 15:11:21
#425469
Cassio,

Obrigado pelo retorno...

Então....o IDF é o nome da Pasta, que neste caso faz papel da Tabela e o F9 a celula que tem o valor que quero.
Supondo que o valor que quero esteja na Range([Ô]AA23[Ô]).value, como você fez, como escrevo a string para informar que a pasta de trabalho que quero é a pasta IDF?

Obrigado.
Sds.
CASSIOJFF 02/07/2013 15:24:10
#425470
A entao se IDF é a pasta de onde vc quer o valor da celular F9, voce pode fazer desse jeito Worksheets([Ô]IDF[Ô]).Cells(9, 6).Value


Espero ter ajudado
NSTOLBERG 02/07/2013 15:33:16
#425471
Ok, mas........como escrevo isso no formato de uma instrução SQL?
Porque vou fazer um loop em umas 50 planilhas e todas elas tem uma pasta chamada IDF e o valor que quero está na celula F9, e preciso despejar estes valores em uma variável [Ô]x[Ô].

Mais uma vez obrigado.

Sds,
CASSIOJFF 02/07/2013 15:52:45
#425475
Entao agora que notei q vc quer fazer isso via SQL, mas vai retornar pra uma planilha pois tem um range.value depois, nao seria necessario por sql vc pode fazer um loop abrindo as planilhas que deseja e pegar o valor que vc deseja daquele local.
Tudo isso so usando VBA,

Tipo uma planilha base, abre a primeira pega o valor e fecha, abre a segunda pega o valor e fecha e assim sucetivamente
NSTOLBERG 02/07/2013 16:00:26
#425476
A ideia é essa...

Na verdade eu já tenho uma rotina que abre cada planilha e pega o valor que quero, mas fica muito demorado eese negócio de abre planilha - fecha planilha.
Me pareceu que com SQL fica mais rápido isso. Ou to enganado?
Mesmo assim queria fazer um teste pra ver o desempenho.

Pela ajuda obrigado.

Sds.
Tópico encerrado , respostas não são mais permitidas