Je viens du site Excelabo.net (je vais leur faire de la pub vu combien
ce site m'a aidé a reprendre contact avec Excel :)) ) mais je n'ai pas
trouvé la reponse a mon probleme.
J'explique.
J'ai une feuille Excel qui lit/ecrit des données dans une base Oracle.
Je ne suis pas un grand pro de Excel et je ne connais pas grand chose a
Oracle (je sais quand meme faire les requetes de bases).
Le mec avec qui je travaille (ha, le travail a 2...) m'envoie une
procedure stockée que j'arrive tres bien a executer dans Toad (ou sql
plus, ou autres) avec cette commande :
Exec ma_proc_stock(param1);
Je l'execute en tant que script et ca marche. ce n'est pas du SQL. Donc,
si j'essaie de l'executer comme une requete habituelle, ca plante.
actuellement, je me connecte a la base Oracle de cette facon :
dim wrkODBC As DAO.Workspace
dim conPubs As DAO.Database
' Crée un objet Workspace ODBCDirect.
Set wrkODBC = CreateWorkspace("NewODBCWorkspace", _
"admin", "", dbUseODBC)
' Ouvre un objet Connection à l'aide des
' informations fournies
' dans la chaîne de connexion.
Set conPubs = wrkODBC.OpenDatabase("Connection1", _
dbDriverNoPrompt, False, _
"ODBC;DATABASE=" & db_dbname & _
";UID=" & db_login & _
";PWD=" & db_passwd & _
";DSN=" & db_dsn)
Et apres, je requete comme ca (si la requete doit retourner qqchose) :
Dim rstFourn as RecordSet
Set rstFourn = conPubs.OpenRecordset("SELECT * FROM table",
dbOpenForwardOnly)
ou comme ca (si la requete ne retourne rien) :
dim strsql as string
strsql = "INSERT INTO table(champs1) VALUES ('valeur1')"
conPubs.Execute strsql
Ma question est : comment je peux faire pour executer ma proc_stock ?
Visiblement, je ne peux pas passer par un RecordSet ni par execute
Pour info, j'utilise Excel 97 (contrainte client)
J'ai regarde dans les archives de google mais je n'ai rien trouve sur le
sujet sauf un message de 2001 pointant vers differents sites proposant
des produits payant.
Si quelqu'un peut m'aider, ca me depannerait bien :)
Chag
PS : retirez le blahblah de mon adresse mail si vous voulez me repodre
en privé :)
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
chag
Hello,
Des fois que ca interresserait quelqu'un, voici un bout de code qui semble fonctionner. Il faut utiliser ADODB a la place de DAO
Dim cnn1 As ADODB.Connection Dim cmdExeproc As ADODB.Command
Dim Dsn As String Dim Uid As String Dim Pwd As String
Dim ProcName As String Dim ProcParam As String
' Define the DSN Dsn = "dsn" ' Define the Database login Uid = "uid" ' Define the Database Password Pwd = "pwd"
' Define the Stored procedure name ProcName = "Proc" ' Define the value of the parameter (one parameter in this Proc) ProcParam = "123"
' Open connection. Set cnn1 = New ADODB.Connection ' Modify the following line to reflect a DSN within your environment strCnn = "DSN=" & Dsn & "; " & _ "UID=" & Uid & "; " & _ "PWD=" & Pwd & ";"
' In the next set of code, we have to manually set ' the parameter types since ADO and ODBC cannot derive this ' information when calling packaged procedures.
Je viens du site Excelabo.net (je vais leur faire de la pub vu combien ce site m'a aidé a reprendre contact avec Excel :)) ) mais je n'ai pas trouvé la reponse a mon probleme.
J'explique.
J'ai une feuille Excel qui lit/ecrit des données dans une base Oracle. Je ne suis pas un grand pro de Excel et je ne connais pas grand chose a Oracle (je sais quand meme faire les requetes de bases).
Le mec avec qui je travaille (ha, le travail a 2...) m'envoie une procedure stockée que j'arrive tres bien a executer dans Toad (ou sql plus, ou autres) avec cette commande :
Exec ma_proc_stock(param1);
Je l'execute en tant que script et ca marche. ce n'est pas du SQL. Donc, si j'essaie de l'executer comme une requete habituelle, ca plante.
actuellement, je me connecte a la base Oracle de cette facon :
dim wrkODBC As DAO.Workspace dim conPubs As DAO.Database
' Crée un objet Workspace ODBCDirect. Set wrkODBC = CreateWorkspace("NewODBCWorkspace", _ "admin", "", dbUseODBC)
' Ouvre un objet Connection à l'aide des ' informations fournies ' dans la chaîne de connexion. Set conPubs = wrkODBC.OpenDatabase("Connection1", _ dbDriverNoPrompt, False, _ "ODBC;DATABASE=" & db_dbname & _ ";UID=" & db_login & _ ";PWD=" & db_passwd & _ ";DSN=" & db_dsn)
Et apres, je requete comme ca (si la requete doit retourner qqchose) :
Dim rstFourn as RecordSet Set rstFourn = conPubs.OpenRecordset("SELECT * FROM table", dbOpenForwardOnly)
ou comme ca (si la requete ne retourne rien) :
dim strsql as string strsql = "INSERT INTO table(champs1) VALUES ('valeur1')" conPubs.Execute strsql
Ma question est : comment je peux faire pour executer ma proc_stock ? Visiblement, je ne peux pas passer par un RecordSet ni par execute
Pour info, j'utilise Excel 97 (contrainte client)
J'ai regarde dans les archives de google mais je n'ai rien trouve sur le sujet sauf un message de 2001 pointant vers differents sites proposant des produits payant.
Si quelqu'un peut m'aider, ca me depannerait bien :)
Chag
PS : retirez le blahblah de mon adresse mail si vous voulez me repodre en privé :)
Hello,
Des fois que ca interresserait quelqu'un, voici un bout de code qui
semble fonctionner. Il faut utiliser ADODB a la place de DAO
Dim cnn1 As ADODB.Connection
Dim cmdExeproc As ADODB.Command
Dim Dsn As String
Dim Uid As String
Dim Pwd As String
Dim ProcName As String
Dim ProcParam As String
' Define the DSN
Dsn = "dsn"
' Define the Database login
Uid = "uid"
' Define the Database Password
Pwd = "pwd"
' Define the Stored procedure name
ProcName = "Proc"
' Define the value of the parameter (one parameter in this Proc)
ProcParam = "123"
' Open connection.
Set cnn1 = New ADODB.Connection
' Modify the following line to reflect a DSN within your environment
strCnn = "DSN=" & Dsn & "; " & _
"UID=" & Uid & "; " & _
"PWD=" & Pwd & ";"
' In the next set of code, we have to manually set
' the parameter types since ADO and ODBC cannot derive this
' information when calling packaged procedures.
Je viens du site Excelabo.net (je vais leur faire de la pub vu combien
ce site m'a aidé a reprendre contact avec Excel :)) ) mais je n'ai pas
trouvé la reponse a mon probleme.
J'explique.
J'ai une feuille Excel qui lit/ecrit des données dans une base Oracle.
Je ne suis pas un grand pro de Excel et je ne connais pas grand chose a
Oracle (je sais quand meme faire les requetes de bases).
Le mec avec qui je travaille (ha, le travail a 2...) m'envoie une
procedure stockée que j'arrive tres bien a executer dans Toad (ou sql
plus, ou autres) avec cette commande :
Exec ma_proc_stock(param1);
Je l'execute en tant que script et ca marche. ce n'est pas du SQL. Donc,
si j'essaie de l'executer comme une requete habituelle, ca plante.
actuellement, je me connecte a la base Oracle de cette facon :
dim wrkODBC As DAO.Workspace
dim conPubs As DAO.Database
' Crée un objet Workspace ODBCDirect.
Set wrkODBC = CreateWorkspace("NewODBCWorkspace", _
"admin", "", dbUseODBC)
' Ouvre un objet Connection à l'aide des
' informations fournies
' dans la chaîne de connexion.
Set conPubs = wrkODBC.OpenDatabase("Connection1", _
dbDriverNoPrompt, False, _
"ODBC;DATABASE=" & db_dbname & _
";UID=" & db_login & _
";PWD=" & db_passwd & _
";DSN=" & db_dsn)
Et apres, je requete comme ca (si la requete doit retourner qqchose) :
Dim rstFourn as RecordSet
Set rstFourn = conPubs.OpenRecordset("SELECT * FROM table",
dbOpenForwardOnly)
ou comme ca (si la requete ne retourne rien) :
dim strsql as string
strsql = "INSERT INTO table(champs1) VALUES ('valeur1')"
conPubs.Execute strsql
Ma question est : comment je peux faire pour executer ma proc_stock ?
Visiblement, je ne peux pas passer par un RecordSet ni par execute
Pour info, j'utilise Excel 97 (contrainte client)
J'ai regarde dans les archives de google mais je n'ai rien trouve sur le
sujet sauf un message de 2001 pointant vers differents sites proposant
des produits payant.
Si quelqu'un peut m'aider, ca me depannerait bien :)
Chag
PS : retirez le blahblah de mon adresse mail si vous voulez me repodre
en privé :)
Des fois que ca interresserait quelqu'un, voici un bout de code qui semble fonctionner. Il faut utiliser ADODB a la place de DAO
Dim cnn1 As ADODB.Connection Dim cmdExeproc As ADODB.Command
Dim Dsn As String Dim Uid As String Dim Pwd As String
Dim ProcName As String Dim ProcParam As String
' Define the DSN Dsn = "dsn" ' Define the Database login Uid = "uid" ' Define the Database Password Pwd = "pwd"
' Define the Stored procedure name ProcName = "Proc" ' Define the value of the parameter (one parameter in this Proc) ProcParam = "123"
' Open connection. Set cnn1 = New ADODB.Connection ' Modify the following line to reflect a DSN within your environment strCnn = "DSN=" & Dsn & "; " & _ "UID=" & Uid & "; " & _ "PWD=" & Pwd & ";"
' In the next set of code, we have to manually set ' the parameter types since ADO and ODBC cannot derive this ' information when calling packaged procedures.
Je viens du site Excelabo.net (je vais leur faire de la pub vu combien ce site m'a aidé a reprendre contact avec Excel :)) ) mais je n'ai pas trouvé la reponse a mon probleme.
J'explique.
J'ai une feuille Excel qui lit/ecrit des données dans une base Oracle. Je ne suis pas un grand pro de Excel et je ne connais pas grand chose a Oracle (je sais quand meme faire les requetes de bases).
Le mec avec qui je travaille (ha, le travail a 2...) m'envoie une procedure stockée que j'arrive tres bien a executer dans Toad (ou sql plus, ou autres) avec cette commande :
Exec ma_proc_stock(param1);
Je l'execute en tant que script et ca marche. ce n'est pas du SQL. Donc, si j'essaie de l'executer comme une requete habituelle, ca plante.
actuellement, je me connecte a la base Oracle de cette facon :
dim wrkODBC As DAO.Workspace dim conPubs As DAO.Database
' Crée un objet Workspace ODBCDirect. Set wrkODBC = CreateWorkspace("NewODBCWorkspace", _ "admin", "", dbUseODBC)
' Ouvre un objet Connection à l'aide des ' informations fournies ' dans la chaîne de connexion. Set conPubs = wrkODBC.OpenDatabase("Connection1", _ dbDriverNoPrompt, False, _ "ODBC;DATABASE=" & db_dbname & _ ";UID=" & db_login & _ ";PWD=" & db_passwd & _ ";DSN=" & db_dsn)
Et apres, je requete comme ca (si la requete doit retourner qqchose) :
Dim rstFourn as RecordSet Set rstFourn = conPubs.OpenRecordset("SELECT * FROM table", dbOpenForwardOnly)
ou comme ca (si la requete ne retourne rien) :
dim strsql as string strsql = "INSERT INTO table(champs1) VALUES ('valeur1')" conPubs.Execute strsql
Ma question est : comment je peux faire pour executer ma proc_stock ? Visiblement, je ne peux pas passer par un RecordSet ni par execute
Pour info, j'utilise Excel 97 (contrainte client)
J'ai regarde dans les archives de google mais je n'ai rien trouve sur le sujet sauf un message de 2001 pointant vers differents sites proposant des produits payant.
Si quelqu'un peut m'aider, ca me depannerait bien :)
Chag
PS : retirez le blahblah de mon adresse mail si vous voulez me repodre en privé :)