Estou tendo um problema pois quando trabalhava com o Excel 2007 executava conexoes para visual basic e não tinha nenhum problema
Porém agora com o 2010 em diante, tento abrir o mesmo arquivo e não estou conseguindo. ele me acusa um "Erro em tempo de execução 3706. Provedor não encontrado.."
não sei mais o que fazer. já tentei pelas referências, etc mas não estou conseguindo.
Um exemplo da compilação aonde funcionava no 2007 e não funciona mais no 2010 é esta funçao:
Private Sub PopulaCidades() 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=" & ThisWorkbook.FullName & ";Extended Properties=Excel 8.0;" .Open End With
sql = "SELECT DISTINCT Cidade FROM [Fornecedores$]"
Set rst = New ADODB.Recordset With rst .ActiveConnection = conn .Open sql, conn, adOpenDynamic, _ adLockBatchOptimistic End With
Do While Not rst.EOF If Not IsNull(rst(0).Value) Then lstCidades.AddItem rst(0).Value End If rst.MoveNext Loop
' Fecha o conjunto de registros. Set rst = Nothing ' Fecha a conexão. conn.Close
Pergunta
gilbapg
Bom dia pessoal,
Estou tendo um problema pois quando trabalhava com o Excel 2007 executava conexoes para visual basic e não tinha nenhum problema
Porém agora com o 2010 em diante, tento abrir o mesmo arquivo e não estou conseguindo. ele me acusa um "Erro em tempo de execução 3706. Provedor não encontrado.."
não sei mais o que fazer. já tentei pelas referências, etc mas não estou conseguindo.
Um exemplo da compilação aonde funcionava no 2007 e não funciona mais no 2010 é esta funçao:
Private Sub PopulaCidades()
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=" & ThisWorkbook.FullName & ";Extended Properties=Excel 8.0;"
.Open
End With
sql = "SELECT DISTINCT Cidade FROM [Fornecedores$]"
Set rst = New ADODB.Recordset
With rst
.ActiveConnection = conn
.Open sql, conn, adOpenDynamic, _
adLockBatchOptimistic
End With
Do While Not rst.EOF
If Not IsNull(rst(0).Value) Then
lstCidades.AddItem rst(0).Value
End If
rst.MoveNext
Loop
' Fecha o conjunto de registros.
Set rst = Nothing
' Fecha a conexão.
conn.Close
End Sub
Obrigado,
Gilberto
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.