CONEXCAO SQL
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.
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.
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
supondo que esse endereço [IDF$F9] seja AA23
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.
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.
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
Espero ter ajudado
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,
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,
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
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
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.
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