Ce code fonctionne correctement vers une base Oracle par ODBC.
Mais vers SQL Server par OLEDB une erreur apparait sur la dernière ligne :
"Erreur d'exécution '1004'
Erreur définie par l'application ou par l'objet"
["xxx" remplace des données privées]
[Environnement :
Windows 2000 Pro SP4 FR / Office 2000 SR1 FR / MDAC 2.8 FR]
Dim qt As Excel.QueryTable
Dim strSQL As String
Dim strConnexion As String
strSQL = "SELECT Id, Libelle FROM Profil"
strConnexion = "Provider=sqloledb;Data Source=xxx.xxx.xxx.xxx;Initial
Catalog=xxx;User Id=xxx;Password=xxx"
Set qt = ActiveSheet.QueryTables.Add(Connection:=strConnexion,
Destination:¬tiveSheet.Range("A1"), Sql:=strSQL)
Une idée ?
Avec :
strSQL = "titi"
strConnexion = "toto"
--> même message.
Merci.
Jacques.
Ce code fonctionne correctement vers une base Oracle par ODBC.
Mais vers SQL Server par OLEDB une erreur apparait sur la dernière ligne :
"Erreur d'exécution '1004'
Erreur définie par l'application ou par l'objet"
["xxx" remplace des données privées]
[Environnement :
Windows 2000 Pro SP4 FR / Office 2000 SR1 FR / MDAC 2.8 FR]
Dim qt As Excel.QueryTable
Dim strSQL As String
Dim strConnexion As String
strSQL = "SELECT Id, Libelle FROM Profil"
strConnexion = "Provider=sqloledb;Data Source=xxx.xxx.xxx.xxx;Initial
Catalog=xxx;User Id=xxx;Password=xxx"
Set qt = ActiveSheet.QueryTables.Add(Connection:=strConnexion,
Destination:¬tiveSheet.Range("A1"), Sql:=strSQL)
Une idée ?
Avec :
strSQL = "titi"
strConnexion = "toto"
--> même message.
Merci.
Jacques.
Ce code fonctionne correctement vers une base Oracle par ODBC.
Mais vers SQL Server par OLEDB une erreur apparait sur la dernière ligne :
"Erreur d'exécution '1004'
Erreur définie par l'application ou par l'objet"
["xxx" remplace des données privées]
[Environnement :
Windows 2000 Pro SP4 FR / Office 2000 SR1 FR / MDAC 2.8 FR]
Dim qt As Excel.QueryTable
Dim strSQL As String
Dim strConnexion As String
strSQL = "SELECT Id, Libelle FROM Profil"
strConnexion = "Provider=sqloledb;Data Source=xxx.xxx.xxx.xxx;Initial
Catalog=xxx;User Id=xxx;Password=xxx"
Set qt = ActiveSheet.QueryTables.Add(Connection:=strConnexion,
Destination:¬tiveSheet.Range("A1"), Sql:=strSQL)
Une idée ?
Avec :
strSQL = "titi"
strConnexion = "toto"
--> même message.
Merci.
Jacques.
Bonjour
As-tu essayé en remplaçant DataSource par Database ?
--
Pierre Fauconnier ()
"Le bonheur n'est pas au bout du chemin. Le bonheur EST le chemin (
proverbe
zen )
Remplacez nospam.nospam par pfi.be pour répondre. Merci
"Vuillermet Jacques" a écrit dans le message de news:
O1gAwj%Ce code fonctionne correctement vers une base Oracle par ODBC.
Mais vers SQL Server par OLEDB une erreur apparait sur la dernière ligne
:
"Erreur d'exécution '1004'
Erreur définie par l'application ou par l'objet"
["xxx" remplace des données privées]
[Environnement :
Windows 2000 Pro SP4 FR / Office 2000 SR1 FR / MDAC 2.8 FR]
Dim qt As Excel.QueryTable
Dim strSQL As String
Dim strConnexion As String
strSQL = "SELECT Id, Libelle FROM Profil"
strConnexion = "Provider=sqloledb;Data Source=xxx.xxx.xxx.xxx;Initial
Catalog=xxx;User Id=xxx;Password=xxx"
Set qt = ActiveSheet.QueryTables.Add(Connection:=strConnexion,
Destination:¬tiveSheet.Range("A1"), Sql:=strSQL)
Une idée ?
Avec :
strSQL = "titi"
strConnexion = "toto"
--> même message.
Merci.
Jacques.
Bonjour
As-tu essayé en remplaçant DataSource par Database ?
--
Pierre Fauconnier (pierre.fauconnier@nospam.nospam)
"Le bonheur n'est pas au bout du chemin. Le bonheur EST le chemin (
proverbe
zen )
Remplacez nospam.nospam par pfi.be pour répondre. Merci
"Vuillermet Jacques" <nospam@nospam.com> a écrit dans le message de news:
O1gAwj%23HFHA.2984@TK2MSFTNGP15.phx.gbl...
Ce code fonctionne correctement vers une base Oracle par ODBC.
Mais vers SQL Server par OLEDB une erreur apparait sur la dernière ligne
:
"Erreur d'exécution '1004'
Erreur définie par l'application ou par l'objet"
["xxx" remplace des données privées]
[Environnement :
Windows 2000 Pro SP4 FR / Office 2000 SR1 FR / MDAC 2.8 FR]
Dim qt As Excel.QueryTable
Dim strSQL As String
Dim strConnexion As String
strSQL = "SELECT Id, Libelle FROM Profil"
strConnexion = "Provider=sqloledb;Data Source=xxx.xxx.xxx.xxx;Initial
Catalog=xxx;User Id=xxx;Password=xxx"
Set qt = ActiveSheet.QueryTables.Add(Connection:=strConnexion,
Destination:¬tiveSheet.Range("A1"), Sql:=strSQL)
Une idée ?
Avec :
strSQL = "titi"
strConnexion = "toto"
--> même message.
Merci.
Jacques.
Bonjour
As-tu essayé en remplaçant DataSource par Database ?
--
Pierre Fauconnier ()
"Le bonheur n'est pas au bout du chemin. Le bonheur EST le chemin (
proverbe
zen )
Remplacez nospam.nospam par pfi.be pour répondre. Merci
"Vuillermet Jacques" a écrit dans le message de news:
O1gAwj%Ce code fonctionne correctement vers une base Oracle par ODBC.
Mais vers SQL Server par OLEDB une erreur apparait sur la dernière ligne
:
"Erreur d'exécution '1004'
Erreur définie par l'application ou par l'objet"
["xxx" remplace des données privées]
[Environnement :
Windows 2000 Pro SP4 FR / Office 2000 SR1 FR / MDAC 2.8 FR]
Dim qt As Excel.QueryTable
Dim strSQL As String
Dim strConnexion As String
strSQL = "SELECT Id, Libelle FROM Profil"
strConnexion = "Provider=sqloledb;Data Source=xxx.xxx.xxx.xxx;Initial
Catalog=xxx;User Id=xxx;Password=xxx"
Set qt = ActiveSheet.QueryTables.Add(Connection:=strConnexion,
Destination:¬tiveSheet.Range("A1"), Sql:=strSQL)
Une idée ?
Avec :
strSQL = "titi"
strConnexion = "toto"
--> même message.
Merci.
Jacques.
Bonjour Jacques,
Tu dois ajouter la référence suivante à ton projet VBA
"Microsoft Activex Data Object 2.0 librairy"
Ceci n'a pas été testé...
La chaîne de connexion peut varier un peu selon la sécurité de la base de
données.
Pour plus d'informations sur la chaîne à utiliser :
http://www.able-consulting.com/MDAC/ADO/Connection/OLEDB_Providers.htm#OLEDB
'--------------------------
Dim strConnexion As New ADODB.Connection
Dim Requete As String
Dim Rst As ADODB.Recordset
Dim Qt As QueryTable
strConnexion.Open "Provider=sqloledb;" & _
"Data Source=myServerName;" & _
"Initial Catalog=myDatabaseName;" & _
"User Id=myUsername;" & _
"Password=myPassword"
Requete = "SELECT Id, Libelle FROM Profil"
Rst.Open Requete, strConnexion, adOpenStatic, adLockOptimistic
With ActiveSheet
Set Qt = .QueryTables.Add(Rst, .Range("A1"))
End With
With Qt
.Name = "Recherche des Noms"
.FieldNames = False
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlOverwriteCells
.SavePassword = True
.SaveData = True
.AdjustColumnWidth = False
.RefreshPeriod = 0
.PreserveColumnInfo = True
.Refresh BackgroundQuery:úlse
End With
Rst.Close: strConnexion.Close: Set Qt = Nothing
Set Rst = Nothing: Set strConnexion = Nothing
'--------------------------
Salutations!
"Vuillermet Jacques" a écrit dans le message de news:
O1gAwj%
Ce code fonctionne correctement vers une base Oracle par ODBC.
Mais vers SQL Server par OLEDB une erreur apparait sur la dernière ligne :
"Erreur d'exécution '1004'
Erreur définie par l'application ou par l'objet"
["xxx" remplace des données privées]
[Environnement :
Windows 2000 Pro SP4 FR / Office 2000 SR1 FR / MDAC 2.8 FR]
Dim qt As Excel.QueryTable
Dim strSQL As String
Dim strConnexion As String
strSQL = "SELECT Id, Libelle FROM Profil"
strConnexion = "Provider=sqloledb;Data Source=xxx.xxx.xxx.xxx;Initial
Catalog=xxx;User Id=xxx;Password=xxx"
Set qt = ActiveSheet.QueryTables.Add(Connection:=strConnexion,
Destination:¬tiveSheet.Range("A1"), Sql:=strSQL)
Une idée ?
Avec :
strSQL = "titi"
strConnexion = "toto"
--> même message.
Merci.
Jacques.
Bonjour Jacques,
Tu dois ajouter la référence suivante à ton projet VBA
"Microsoft Activex Data Object 2.0 librairy"
Ceci n'a pas été testé...
La chaîne de connexion peut varier un peu selon la sécurité de la base de
données.
Pour plus d'informations sur la chaîne à utiliser :
http://www.able-consulting.com/MDAC/ADO/Connection/OLEDB_Providers.htm#OLEDB
'--------------------------
Dim strConnexion As New ADODB.Connection
Dim Requete As String
Dim Rst As ADODB.Recordset
Dim Qt As QueryTable
strConnexion.Open "Provider=sqloledb;" & _
"Data Source=myServerName;" & _
"Initial Catalog=myDatabaseName;" & _
"User Id=myUsername;" & _
"Password=myPassword"
Requete = "SELECT Id, Libelle FROM Profil"
Rst.Open Requete, strConnexion, adOpenStatic, adLockOptimistic
With ActiveSheet
Set Qt = .QueryTables.Add(Rst, .Range("A1"))
End With
With Qt
.Name = "Recherche des Noms"
.FieldNames = False
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlOverwriteCells
.SavePassword = True
.SaveData = True
.AdjustColumnWidth = False
.RefreshPeriod = 0
.PreserveColumnInfo = True
.Refresh BackgroundQuery:úlse
End With
Rst.Close: strConnexion.Close: Set Qt = Nothing
Set Rst = Nothing: Set strConnexion = Nothing
'--------------------------
Salutations!
"Vuillermet Jacques" <nospam@nospam.com> a écrit dans le message de news:
O1gAwj%23HFHA.2984@TK2MSFTNGP15.phx.gbl...
Ce code fonctionne correctement vers une base Oracle par ODBC.
Mais vers SQL Server par OLEDB une erreur apparait sur la dernière ligne :
"Erreur d'exécution '1004'
Erreur définie par l'application ou par l'objet"
["xxx" remplace des données privées]
[Environnement :
Windows 2000 Pro SP4 FR / Office 2000 SR1 FR / MDAC 2.8 FR]
Dim qt As Excel.QueryTable
Dim strSQL As String
Dim strConnexion As String
strSQL = "SELECT Id, Libelle FROM Profil"
strConnexion = "Provider=sqloledb;Data Source=xxx.xxx.xxx.xxx;Initial
Catalog=xxx;User Id=xxx;Password=xxx"
Set qt = ActiveSheet.QueryTables.Add(Connection:=strConnexion,
Destination:¬tiveSheet.Range("A1"), Sql:=strSQL)
Une idée ?
Avec :
strSQL = "titi"
strConnexion = "toto"
--> même message.
Merci.
Jacques.
Bonjour Jacques,
Tu dois ajouter la référence suivante à ton projet VBA
"Microsoft Activex Data Object 2.0 librairy"
Ceci n'a pas été testé...
La chaîne de connexion peut varier un peu selon la sécurité de la base de
données.
Pour plus d'informations sur la chaîne à utiliser :
http://www.able-consulting.com/MDAC/ADO/Connection/OLEDB_Providers.htm#OLEDB
'--------------------------
Dim strConnexion As New ADODB.Connection
Dim Requete As String
Dim Rst As ADODB.Recordset
Dim Qt As QueryTable
strConnexion.Open "Provider=sqloledb;" & _
"Data Source=myServerName;" & _
"Initial Catalog=myDatabaseName;" & _
"User Id=myUsername;" & _
"Password=myPassword"
Requete = "SELECT Id, Libelle FROM Profil"
Rst.Open Requete, strConnexion, adOpenStatic, adLockOptimistic
With ActiveSheet
Set Qt = .QueryTables.Add(Rst, .Range("A1"))
End With
With Qt
.Name = "Recherche des Noms"
.FieldNames = False
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlOverwriteCells
.SavePassword = True
.SaveData = True
.AdjustColumnWidth = False
.RefreshPeriod = 0
.PreserveColumnInfo = True
.Refresh BackgroundQuery:úlse
End With
Rst.Close: strConnexion.Close: Set Qt = Nothing
Set Rst = Nothing: Set strConnexion = Nothing
'--------------------------
Salutations!
"Vuillermet Jacques" a écrit dans le message de news:
O1gAwj%
Ce code fonctionne correctement vers une base Oracle par ODBC.
Mais vers SQL Server par OLEDB une erreur apparait sur la dernière ligne :
"Erreur d'exécution '1004'
Erreur définie par l'application ou par l'objet"
["xxx" remplace des données privées]
[Environnement :
Windows 2000 Pro SP4 FR / Office 2000 SR1 FR / MDAC 2.8 FR]
Dim qt As Excel.QueryTable
Dim strSQL As String
Dim strConnexion As String
strSQL = "SELECT Id, Libelle FROM Profil"
strConnexion = "Provider=sqloledb;Data Source=xxx.xxx.xxx.xxx;Initial
Catalog=xxx;User Id=xxx;Password=xxx"
Set qt = ActiveSheet.QueryTables.Add(Connection:=strConnexion,
Destination:¬tiveSheet.Range("A1"), Sql:=strSQL)
Une idée ?
Avec :
strSQL = "titi"
strConnexion = "toto"
--> même message.
Merci.
Jacques.
Bonjour Jacques,
Tu dois ajouter la référence suivante à ton projet VBA
"Microsoft Activex Data Object 2.0 librairy"
Ceci n'a pas été testé...
La chaîne de connexion peut varier un peu selon la sécurité de la base de
données.
Pour plus d'informations sur la chaîne à utiliser :
http://www.able-consulting.com/MDAC/ADO/Connection/OLEDB_Providers.htm#OLEDB
'--------------------------
Dim strConnexion As New ADODB.Connection
Dim Requete As String
Dim Rst As ADODB.Recordset
Dim Qt As QueryTable
strConnexion.Open "Provider=sqloledb;" & _
"Data Source=myServerName;" & _
"Initial Catalog=myDatabaseName;" & _
"User Id=myUsername;" & _
"Password=myPassword"
Requete = "SELECT Id, Libelle FROM Profil"
Rst.Open Requete, strConnexion, adOpenStatic, adLockOptimistic
With ActiveSheet
Set Qt = .QueryTables.Add(Rst, .Range("A1"))
End With
With Qt
.Name = "Recherche des Noms"
.FieldNames = False
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlOverwriteCells
.SavePassword = True
.SaveData = True
.AdjustColumnWidth = False
.RefreshPeriod = 0
.PreserveColumnInfo = True
.Refresh BackgroundQuery:úlse
End With
Rst.Close: strConnexion.Close: Set Qt = Nothing
Set Rst = Nothing: Set strConnexion = Nothing
'--------------------------
Salutations!
"Vuillermet Jacques" a écrit dans le message de news:
O1gAwj%
Ce code fonctionne correctement vers une base Oracle par ODBC.
Mais vers SQL Server par OLEDB une erreur apparait sur la dernière ligne :
"Erreur d'exécution '1004'
Erreur définie par l'application ou par l'objet"
["xxx" remplace des données privées]
[Environnement :
Windows 2000 Pro SP4 FR / Office 2000 SR1 FR / MDAC 2.8 FR]
Dim qt As Excel.QueryTable
Dim strSQL As String
Dim strConnexion As String
strSQL = "SELECT Id, Libelle FROM Profil"
strConnexion = "Provider=sqloledb;Data Source=xxx.xxx.xxx.xxx;Initial
Catalog=xxx;User Id=xxx;Password=xxx"
Set qt = ActiveSheet.QueryTables.Add(Connection:=strConnexion,
Destination:¬tiveSheet.Range("A1"), Sql:=strSQL)
Une idée ?
Avec :
strSQL = "titi"
strConnexion = "toto"
--> même message.
Merci.
Jacques.
Bonjour Jacques,
Tu dois ajouter la référence suivante à ton projet VBA
"Microsoft Activex Data Object 2.0 librairy"
Ceci n'a pas été testé...
La chaîne de connexion peut varier un peu selon la sécurité de la base de
données.
Pour plus d'informations sur la chaîne à utiliser :
http://www.able-consulting.com/MDAC/ADO/Connection/OLEDB_Providers.htm#OLEDB
'--------------------------
Dim strConnexion As New ADODB.Connection
Dim Requete As String
Dim Rst As ADODB.Recordset
Dim Qt As QueryTable
strConnexion.Open "Provider=sqloledb;" & _
"Data Source=myServerName;" & _
"Initial Catalog=myDatabaseName;" & _
"User Id=myUsername;" & _
"Password=myPassword"
Requete = "SELECT Id, Libelle FROM Profil"
Rst.Open Requete, strConnexion, adOpenStatic, adLockOptimistic
With ActiveSheet
Set Qt = .QueryTables.Add(Rst, .Range("A1"))
End With
With Qt
.Name = "Recherche des Noms"
.FieldNames = False
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlOverwriteCells
.SavePassword = True
.SaveData = True
.AdjustColumnWidth = False
.RefreshPeriod = 0
.PreserveColumnInfo = True
.Refresh BackgroundQuery:úlse
End With
Rst.Close: strConnexion.Close: Set Qt = Nothing
Set Rst = Nothing: Set strConnexion = Nothing
'--------------------------
Salutations!
"Vuillermet Jacques" <nospam@nospam.com> a écrit dans le message de news:
O1gAwj%23HFHA.2984@TK2MSFTNGP15.phx.gbl...
Ce code fonctionne correctement vers une base Oracle par ODBC.
Mais vers SQL Server par OLEDB une erreur apparait sur la dernière ligne :
"Erreur d'exécution '1004'
Erreur définie par l'application ou par l'objet"
["xxx" remplace des données privées]
[Environnement :
Windows 2000 Pro SP4 FR / Office 2000 SR1 FR / MDAC 2.8 FR]
Dim qt As Excel.QueryTable
Dim strSQL As String
Dim strConnexion As String
strSQL = "SELECT Id, Libelle FROM Profil"
strConnexion = "Provider=sqloledb;Data Source=xxx.xxx.xxx.xxx;Initial
Catalog=xxx;User Id=xxx;Password=xxx"
Set qt = ActiveSheet.QueryTables.Add(Connection:=strConnexion,
Destination:¬tiveSheet.Range("A1"), Sql:=strSQL)
Une idée ?
Avec :
strSQL = "titi"
strConnexion = "toto"
--> même message.
Merci.
Jacques.
Bonjour Jacques,
Tu dois ajouter la référence suivante à ton projet VBA
"Microsoft Activex Data Object 2.0 librairy"
Ceci n'a pas été testé...
La chaîne de connexion peut varier un peu selon la sécurité de la base de
données.
Pour plus d'informations sur la chaîne à utiliser :
http://www.able-consulting.com/MDAC/ADO/Connection/OLEDB_Providers.htm#OLEDB
'--------------------------
Dim strConnexion As New ADODB.Connection
Dim Requete As String
Dim Rst As ADODB.Recordset
Dim Qt As QueryTable
strConnexion.Open "Provider=sqloledb;" & _
"Data Source=myServerName;" & _
"Initial Catalog=myDatabaseName;" & _
"User Id=myUsername;" & _
"Password=myPassword"
Requete = "SELECT Id, Libelle FROM Profil"
Rst.Open Requete, strConnexion, adOpenStatic, adLockOptimistic
With ActiveSheet
Set Qt = .QueryTables.Add(Rst, .Range("A1"))
End With
With Qt
.Name = "Recherche des Noms"
.FieldNames = False
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlOverwriteCells
.SavePassword = True
.SaveData = True
.AdjustColumnWidth = False
.RefreshPeriod = 0
.PreserveColumnInfo = True
.Refresh BackgroundQuery:úlse
End With
Rst.Close: strConnexion.Close: Set Qt = Nothing
Set Rst = Nothing: Set strConnexion = Nothing
'--------------------------
Salutations!
"Vuillermet Jacques" a écrit dans le message de news:
O1gAwj%
Ce code fonctionne correctement vers une base Oracle par ODBC.
Mais vers SQL Server par OLEDB une erreur apparait sur la dernière ligne :
"Erreur d'exécution '1004'
Erreur définie par l'application ou par l'objet"
["xxx" remplace des données privées]
[Environnement :
Windows 2000 Pro SP4 FR / Office 2000 SR1 FR / MDAC 2.8 FR]
Dim qt As Excel.QueryTable
Dim strSQL As String
Dim strConnexion As String
strSQL = "SELECT Id, Libelle FROM Profil"
strConnexion = "Provider=sqloledb;Data Source=xxx.xxx.xxx.xxx;Initial
Catalog=xxx;User Id=xxx;Password=xxx"
Set qt = ActiveSheet.QueryTables.Add(Connection:=strConnexion,
Destination:¬tiveSheet.Range("A1"), Sql:=strSQL)
Une idée ?
Avec :
strSQL = "titi"
strConnexion = "toto"
--> même message.
Merci.
Jacques.
Bonjour Jacques,
Il faut seulement distinguer qu'ADO (activex data object) peut utiliser
les "Provider" Ole Db, spécifique à Ole DB,
mais on peut aussi utiliser le "Provider (pilote)" ODBC traditionnelle
pour se connecter à une base de données
Selon le "Provider" retenu, il y a quand même des différences notables
entre les 2 méthodes pour créer un QueryTable.
Salutations!
"Vuillermet Jacques" a écrit dans le message de news:
%23PKE%23A$
ça marche !
Je ne sais pas pourquoi mon code ne fonctionnait pas, mais tant pis :
j'opte
pour le tien !
Il ne manquait à ton code que :
Dim Rst As NEW ADODB.Recordset
Merci !
Jacques.
"MichDenis" a écrit dans le message de news:
uN9mK3#Bonjour Jacques,
Tu dois ajouter la référence suivante à ton projet VBA
"Microsoft Activex Data Object 2.0 librairy"
Ceci n'a pas été testé...
La chaîne de connexion peut varier un peu selon la sécurité de la base
de
données.Pour plus d'informations sur la chaîne à utiliser :
http://www.able-consulting.com/MDAC/ADO/Connection/OLEDB_Providers.htm#OLEDB
ProviderForSQLServer
'--------------------------
Dim strConnexion As New ADODB.Connection
Dim Requete As String
Dim Rst As ADODB.Recordset
Dim Qt As QueryTable
strConnexion.Open "Provider=sqloledb;" & _
"Data Source=myServerName;" & _
"Initial Catalog=myDatabaseName;" & _
"User Id=myUsername;" & _
"Password=myPassword"
Requete = "SELECT Id, Libelle FROM Profil"
Rst.Open Requete, strConnexion, adOpenStatic, adLockOptimistic
With ActiveSheet
Set Qt = .QueryTables.Add(Rst, .Range("A1"))
End With
With Qt
.Name = "Recherche des Noms"
.FieldNames = False
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlOverwriteCells
.SavePassword = True
.SaveData = True
.AdjustColumnWidth = False
.RefreshPeriod = 0
.PreserveColumnInfo = True
.Refresh BackgroundQuery:úlse
End With
Rst.Close: strConnexion.Close: Set Qt = Nothing
Set Rst = Nothing: Set strConnexion = Nothing
'--------------------------
Salutations!
"Vuillermet Jacques" a écrit dans le message de
news:
O1gAwj%Ce code fonctionne correctement vers une base Oracle par ODBC.
Mais vers SQL Server par OLEDB une erreur apparait sur la dernière ligne
:
"Erreur d'exécution '1004'
Erreur définie par l'application ou par l'objet"
["xxx" remplace des données privées]
[Environnement :
Windows 2000 Pro SP4 FR / Office 2000 SR1 FR / MDAC 2.8 FR]
Dim qt As Excel.QueryTable
Dim strSQL As String
Dim strConnexion As String
strSQL = "SELECT Id, Libelle FROM Profil"
strConnexion = "Provider=sqloledb;Data
Source=xxx.xxx.xxx.xxx;Initial
Catalog=xxx;User Id=xxx;Password=xxx"
Set qt = ActiveSheet.QueryTables.Add(Connection:=strConnexion,
Destination:¬tiveSheet.Range("A1"), Sql:=strSQL)
Une idée ?
Avec :
strSQL = "titi"
strConnexion = "toto"
--> même message.
Merci.
Jacques.
Bonjour Jacques,
Il faut seulement distinguer qu'ADO (activex data object) peut utiliser
les "Provider" Ole Db, spécifique à Ole DB,
mais on peut aussi utiliser le "Provider (pilote)" ODBC traditionnelle
pour se connecter à une base de données
Selon le "Provider" retenu, il y a quand même des différences notables
entre les 2 méthodes pour créer un QueryTable.
Salutations!
"Vuillermet Jacques" <nospam@nospam.com> a écrit dans le message de news:
%23PKE%23A$HFHA.3364@TK2MSFTNGP10.phx.gbl...
ça marche !
Je ne sais pas pourquoi mon code ne fonctionnait pas, mais tant pis :
j'opte
pour le tien !
Il ne manquait à ton code que :
Dim Rst As NEW ADODB.Recordset
Merci !
Jacques.
"MichDenis" <michdenis@hotmail.com> a écrit dans le message de news:
uN9mK3#HFHA.980@TK2MSFTNGP12.phx.gbl...
Bonjour Jacques,
Tu dois ajouter la référence suivante à ton projet VBA
"Microsoft Activex Data Object 2.0 librairy"
Ceci n'a pas été testé...
La chaîne de connexion peut varier un peu selon la sécurité de la base
de
données.
Pour plus d'informations sur la chaîne à utiliser :
http://www.able-consulting.com/MDAC/ADO/Connection/OLEDB_Providers.htm#OLEDB
ProviderForSQLServer
'--------------------------
Dim strConnexion As New ADODB.Connection
Dim Requete As String
Dim Rst As ADODB.Recordset
Dim Qt As QueryTable
strConnexion.Open "Provider=sqloledb;" & _
"Data Source=myServerName;" & _
"Initial Catalog=myDatabaseName;" & _
"User Id=myUsername;" & _
"Password=myPassword"
Requete = "SELECT Id, Libelle FROM Profil"
Rst.Open Requete, strConnexion, adOpenStatic, adLockOptimistic
With ActiveSheet
Set Qt = .QueryTables.Add(Rst, .Range("A1"))
End With
With Qt
.Name = "Recherche des Noms"
.FieldNames = False
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlOverwriteCells
.SavePassword = True
.SaveData = True
.AdjustColumnWidth = False
.RefreshPeriod = 0
.PreserveColumnInfo = True
.Refresh BackgroundQuery:úlse
End With
Rst.Close: strConnexion.Close: Set Qt = Nothing
Set Rst = Nothing: Set strConnexion = Nothing
'--------------------------
Salutations!
"Vuillermet Jacques" <nospam@nospam.com> a écrit dans le message de
news:
O1gAwj%23HFHA.2984@TK2MSFTNGP15.phx.gbl...
Ce code fonctionne correctement vers une base Oracle par ODBC.
Mais vers SQL Server par OLEDB une erreur apparait sur la dernière ligne
:
"Erreur d'exécution '1004'
Erreur définie par l'application ou par l'objet"
["xxx" remplace des données privées]
[Environnement :
Windows 2000 Pro SP4 FR / Office 2000 SR1 FR / MDAC 2.8 FR]
Dim qt As Excel.QueryTable
Dim strSQL As String
Dim strConnexion As String
strSQL = "SELECT Id, Libelle FROM Profil"
strConnexion = "Provider=sqloledb;Data
Source=xxx.xxx.xxx.xxx;Initial
Catalog=xxx;User Id=xxx;Password=xxx"
Set qt = ActiveSheet.QueryTables.Add(Connection:=strConnexion,
Destination:¬tiveSheet.Range("A1"), Sql:=strSQL)
Une idée ?
Avec :
strSQL = "titi"
strConnexion = "toto"
--> même message.
Merci.
Jacques.
Bonjour Jacques,
Il faut seulement distinguer qu'ADO (activex data object) peut utiliser
les "Provider" Ole Db, spécifique à Ole DB,
mais on peut aussi utiliser le "Provider (pilote)" ODBC traditionnelle
pour se connecter à une base de données
Selon le "Provider" retenu, il y a quand même des différences notables
entre les 2 méthodes pour créer un QueryTable.
Salutations!
"Vuillermet Jacques" a écrit dans le message de news:
%23PKE%23A$
ça marche !
Je ne sais pas pourquoi mon code ne fonctionnait pas, mais tant pis :
j'opte
pour le tien !
Il ne manquait à ton code que :
Dim Rst As NEW ADODB.Recordset
Merci !
Jacques.
"MichDenis" a écrit dans le message de news:
uN9mK3#Bonjour Jacques,
Tu dois ajouter la référence suivante à ton projet VBA
"Microsoft Activex Data Object 2.0 librairy"
Ceci n'a pas été testé...
La chaîne de connexion peut varier un peu selon la sécurité de la base
de
données.Pour plus d'informations sur la chaîne à utiliser :
http://www.able-consulting.com/MDAC/ADO/Connection/OLEDB_Providers.htm#OLEDB
ProviderForSQLServer
'--------------------------
Dim strConnexion As New ADODB.Connection
Dim Requete As String
Dim Rst As ADODB.Recordset
Dim Qt As QueryTable
strConnexion.Open "Provider=sqloledb;" & _
"Data Source=myServerName;" & _
"Initial Catalog=myDatabaseName;" & _
"User Id=myUsername;" & _
"Password=myPassword"
Requete = "SELECT Id, Libelle FROM Profil"
Rst.Open Requete, strConnexion, adOpenStatic, adLockOptimistic
With ActiveSheet
Set Qt = .QueryTables.Add(Rst, .Range("A1"))
End With
With Qt
.Name = "Recherche des Noms"
.FieldNames = False
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlOverwriteCells
.SavePassword = True
.SaveData = True
.AdjustColumnWidth = False
.RefreshPeriod = 0
.PreserveColumnInfo = True
.Refresh BackgroundQuery:úlse
End With
Rst.Close: strConnexion.Close: Set Qt = Nothing
Set Rst = Nothing: Set strConnexion = Nothing
'--------------------------
Salutations!
"Vuillermet Jacques" a écrit dans le message de
news:
O1gAwj%Ce code fonctionne correctement vers une base Oracle par ODBC.
Mais vers SQL Server par OLEDB une erreur apparait sur la dernière ligne
:
"Erreur d'exécution '1004'
Erreur définie par l'application ou par l'objet"
["xxx" remplace des données privées]
[Environnement :
Windows 2000 Pro SP4 FR / Office 2000 SR1 FR / MDAC 2.8 FR]
Dim qt As Excel.QueryTable
Dim strSQL As String
Dim strConnexion As String
strSQL = "SELECT Id, Libelle FROM Profil"
strConnexion = "Provider=sqloledb;Data
Source=xxx.xxx.xxx.xxx;Initial
Catalog=xxx;User Id=xxx;Password=xxx"
Set qt = ActiveSheet.QueryTables.Add(Connection:=strConnexion,
Destination:¬tiveSheet.Range("A1"), Sql:=strSQL)
Une idée ?
Avec :
strSQL = "titi"
strConnexion = "toto"
--> même message.
Merci.
Jacques.
Bonjour Jacques,
Il faut seulement distinguer qu'ADO (activex data object) peut utiliser
les "Provider" Ole Db, spécifique à Ole DB,
mais on peut aussi utiliser le "Provider (pilote)" ODBC traditionnelle
pour se connecter à une base de données
Selon le "Provider" retenu, il y a quand même des différences notables
entre les 2 méthodes pour créer un QueryTable.
Salutations!
"Vuillermet Jacques" a écrit dans le message de news:
%23PKE%23A$
ça marche !
Je ne sais pas pourquoi mon code ne fonctionnait pas, mais tant pis :
j'opte
pour le tien !
Il ne manquait à ton code que :
Dim Rst As NEW ADODB.Recordset
Merci !
Jacques.
"MichDenis" a écrit dans le message de news:
uN9mK3#Bonjour Jacques,
Tu dois ajouter la référence suivante à ton projet VBA
"Microsoft Activex Data Object 2.0 librairy"
Ceci n'a pas été testé...
La chaîne de connexion peut varier un peu selon la sécurité de la base
de
données.Pour plus d'informations sur la chaîne à utiliser :
http://www.able-consulting.com/MDAC/ADO/Connection/OLEDB_Providers.htm#OLEDB
ProviderForSQLServer
'--------------------------
Dim strConnexion As New ADODB.Connection
Dim Requete As String
Dim Rst As ADODB.Recordset
Dim Qt As QueryTable
strConnexion.Open "Provider=sqloledb;" & _
"Data Source=myServerName;" & _
"Initial Catalog=myDatabaseName;" & _
"User Id=myUsername;" & _
"Password=myPassword"
Requete = "SELECT Id, Libelle FROM Profil"
Rst.Open Requete, strConnexion, adOpenStatic, adLockOptimistic
With ActiveSheet
Set Qt = .QueryTables.Add(Rst, .Range("A1"))
End With
With Qt
.Name = "Recherche des Noms"
.FieldNames = False
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlOverwriteCells
.SavePassword = True
.SaveData = True
.AdjustColumnWidth = False
.RefreshPeriod = 0
.PreserveColumnInfo = True
.Refresh BackgroundQuery:úlse
End With
Rst.Close: strConnexion.Close: Set Qt = Nothing
Set Rst = Nothing: Set strConnexion = Nothing
'--------------------------
Salutations!
"Vuillermet Jacques" a écrit dans le message de
news:
O1gAwj%Ce code fonctionne correctement vers une base Oracle par ODBC.
Mais vers SQL Server par OLEDB une erreur apparait sur la dernière ligne
:
"Erreur d'exécution '1004'
Erreur définie par l'application ou par l'objet"
["xxx" remplace des données privées]
[Environnement :
Windows 2000 Pro SP4 FR / Office 2000 SR1 FR / MDAC 2.8 FR]
Dim qt As Excel.QueryTable
Dim strSQL As String
Dim strConnexion As String
strSQL = "SELECT Id, Libelle FROM Profil"
strConnexion = "Provider=sqloledb;Data
Source=xxx.xxx.xxx.xxx;Initial
Catalog=xxx;User Id=xxx;Password=xxx"
Set qt = ActiveSheet.QueryTables.Add(Connection:=strConnexion,
Destination:¬tiveSheet.Range("A1"), Sql:=strSQL)
Une idée ?
Avec :
strSQL = "titi"
strConnexion = "toto"
--> même message.
Merci.
Jacques.
Bonjour Jacques,
Il faut seulement distinguer qu'ADO (activex data object) peut utiliser
les "Provider" Ole Db, spécifique à Ole DB,
mais on peut aussi utiliser le "Provider (pilote)" ODBC traditionnelle
pour se connecter à une base de données
Selon le "Provider" retenu, il y a quand même des différences notables
entre les 2 méthodes pour créer un QueryTable.
Salutations!
"Vuillermet Jacques" <nospam@nospam.com> a écrit dans le message de news:
%23PKE%23A$HFHA.3364@TK2MSFTNGP10.phx.gbl...
ça marche !
Je ne sais pas pourquoi mon code ne fonctionnait pas, mais tant pis :
j'opte
pour le tien !
Il ne manquait à ton code que :
Dim Rst As NEW ADODB.Recordset
Merci !
Jacques.
"MichDenis" <michdenis@hotmail.com> a écrit dans le message de news:
uN9mK3#HFHA.980@TK2MSFTNGP12.phx.gbl...
Bonjour Jacques,
Tu dois ajouter la référence suivante à ton projet VBA
"Microsoft Activex Data Object 2.0 librairy"
Ceci n'a pas été testé...
La chaîne de connexion peut varier un peu selon la sécurité de la base
de
données.
Pour plus d'informations sur la chaîne à utiliser :
http://www.able-consulting.com/MDAC/ADO/Connection/OLEDB_Providers.htm#OLEDB
ProviderForSQLServer
'--------------------------
Dim strConnexion As New ADODB.Connection
Dim Requete As String
Dim Rst As ADODB.Recordset
Dim Qt As QueryTable
strConnexion.Open "Provider=sqloledb;" & _
"Data Source=myServerName;" & _
"Initial Catalog=myDatabaseName;" & _
"User Id=myUsername;" & _
"Password=myPassword"
Requete = "SELECT Id, Libelle FROM Profil"
Rst.Open Requete, strConnexion, adOpenStatic, adLockOptimistic
With ActiveSheet
Set Qt = .QueryTables.Add(Rst, .Range("A1"))
End With
With Qt
.Name = "Recherche des Noms"
.FieldNames = False
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlOverwriteCells
.SavePassword = True
.SaveData = True
.AdjustColumnWidth = False
.RefreshPeriod = 0
.PreserveColumnInfo = True
.Refresh BackgroundQuery:úlse
End With
Rst.Close: strConnexion.Close: Set Qt = Nothing
Set Rst = Nothing: Set strConnexion = Nothing
'--------------------------
Salutations!
"Vuillermet Jacques" <nospam@nospam.com> a écrit dans le message de
news:
O1gAwj%23HFHA.2984@TK2MSFTNGP15.phx.gbl...
Ce code fonctionne correctement vers une base Oracle par ODBC.
Mais vers SQL Server par OLEDB une erreur apparait sur la dernière ligne
:
"Erreur d'exécution '1004'
Erreur définie par l'application ou par l'objet"
["xxx" remplace des données privées]
[Environnement :
Windows 2000 Pro SP4 FR / Office 2000 SR1 FR / MDAC 2.8 FR]
Dim qt As Excel.QueryTable
Dim strSQL As String
Dim strConnexion As String
strSQL = "SELECT Id, Libelle FROM Profil"
strConnexion = "Provider=sqloledb;Data
Source=xxx.xxx.xxx.xxx;Initial
Catalog=xxx;User Id=xxx;Password=xxx"
Set qt = ActiveSheet.QueryTables.Add(Connection:=strConnexion,
Destination:¬tiveSheet.Range("A1"), Sql:=strSQL)
Une idée ?
Avec :
strSQL = "titi"
strConnexion = "toto"
--> même message.
Merci.
Jacques.
Bonjour Jacques,
Il faut seulement distinguer qu'ADO (activex data object) peut utiliser
les "Provider" Ole Db, spécifique à Ole DB,
mais on peut aussi utiliser le "Provider (pilote)" ODBC traditionnelle
pour se connecter à une base de données
Selon le "Provider" retenu, il y a quand même des différences notables
entre les 2 méthodes pour créer un QueryTable.
Salutations!
"Vuillermet Jacques" a écrit dans le message de news:
%23PKE%23A$
ça marche !
Je ne sais pas pourquoi mon code ne fonctionnait pas, mais tant pis :
j'opte
pour le tien !
Il ne manquait à ton code que :
Dim Rst As NEW ADODB.Recordset
Merci !
Jacques.
"MichDenis" a écrit dans le message de news:
uN9mK3#Bonjour Jacques,
Tu dois ajouter la référence suivante à ton projet VBA
"Microsoft Activex Data Object 2.0 librairy"
Ceci n'a pas été testé...
La chaîne de connexion peut varier un peu selon la sécurité de la base
de
données.Pour plus d'informations sur la chaîne à utiliser :
http://www.able-consulting.com/MDAC/ADO/Connection/OLEDB_Providers.htm#OLEDB
ProviderForSQLServer
'--------------------------
Dim strConnexion As New ADODB.Connection
Dim Requete As String
Dim Rst As ADODB.Recordset
Dim Qt As QueryTable
strConnexion.Open "Provider=sqloledb;" & _
"Data Source=myServerName;" & _
"Initial Catalog=myDatabaseName;" & _
"User Id=myUsername;" & _
"Password=myPassword"
Requete = "SELECT Id, Libelle FROM Profil"
Rst.Open Requete, strConnexion, adOpenStatic, adLockOptimistic
With ActiveSheet
Set Qt = .QueryTables.Add(Rst, .Range("A1"))
End With
With Qt
.Name = "Recherche des Noms"
.FieldNames = False
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlOverwriteCells
.SavePassword = True
.SaveData = True
.AdjustColumnWidth = False
.RefreshPeriod = 0
.PreserveColumnInfo = True
.Refresh BackgroundQuery:úlse
End With
Rst.Close: strConnexion.Close: Set Qt = Nothing
Set Rst = Nothing: Set strConnexion = Nothing
'--------------------------
Salutations!
"Vuillermet Jacques" a écrit dans le message de
news:
O1gAwj%Ce code fonctionne correctement vers une base Oracle par ODBC.
Mais vers SQL Server par OLEDB une erreur apparait sur la dernière ligne
:
"Erreur d'exécution '1004'
Erreur définie par l'application ou par l'objet"
["xxx" remplace des données privées]
[Environnement :
Windows 2000 Pro SP4 FR / Office 2000 SR1 FR / MDAC 2.8 FR]
Dim qt As Excel.QueryTable
Dim strSQL As String
Dim strConnexion As String
strSQL = "SELECT Id, Libelle FROM Profil"
strConnexion = "Provider=sqloledb;Data
Source=xxx.xxx.xxx.xxx;Initial
Catalog=xxx;User Id=xxx;Password=xxx"
Set qt = ActiveSheet.QueryTables.Add(Connection:=strConnexion,
Destination:¬tiveSheet.Range("A1"), Sql:=strSQL)
Une idée ?
Avec :
strSQL = "titi"
strConnexion = "toto"
--> même message.
Merci.
Jacques.