OVH Cloud OVH Cloud

ACCESS 97 : procédures stockées SQL SERVER

6 réponses
Avatar
jeorme
Bonjour à tous

Sur un formulaire ACCESS 97, j'aimerais lancer une procédure stockée SQL
Server afin de faire diverses transactions. J'arrive très bien avec la
procédure suivante à récupérer un recordset mais si je change le .SQL =
"select ..."
par .SQL = "execute maproc" , ACCESS me renvoi un erreur

voici ma syntaxe pour le recordset:

Set connexion = base.CreateQueryDef("")
With connexion
.Connect = "ODBC;DATABASE=GFU;UID=sa;PWD=;DSN=SMVN005"
.SQL = "SELECT * FROM DESTOCK WHERE pal = '" & num_etiq & "' and
statut = 'AC';"
Set enreg_destock = .OpenRecordset()
End With


Qu'est ce qu'il faut changer pour lancer une procédure stockée à la place.

Merci d'avance

6 réponses

Avatar
il me semble qu'il ne faut pas mettre un nom de proc stock
dans connexion.SQL mais plutôt utiliser la méthode
connexion.execute "maproc"

-----Message d'origine-----
Bonjour à tous

Sur un formulaire ACCESS 97, j'aimerais lancer une
procédure stockée SQL

Server afin de faire diverses transactions. J'arrive très
bien avec la

procédure suivante à récupérer un recordset mais si je
change le .SQL =

"select ..."
par .SQL = "execute maproc" , ACCESS me renvoi un erreur

voici ma syntaxe pour le recordset:

Set connexion = base.CreateQueryDef("")
With connexion
.Connect
= "ODBC;DATABASE=GFU;UID=sa;PWD=;DSN=SMVN005"

.SQL = "SELECT * FROM DESTOCK WHERE pal = '"
& num_etiq & "' and

statut = 'AC';"
Set enreg_destock = .OpenRecordset()
End With


Qu'est ce qu'il faut changer pour lancer une procédure
stockée à la place.


Merci d'avance


.



Avatar
jeorme
Ca ne marche pas , je fais ceci :

Dim insertion As QueryDef
Dim base As Database

Set base = CurrentDb()

Set insertion = base.CreateQueryDef("")
With insertion
.Connect = "ODBC;DATABASE=GFU;UID=sa;PWD=;DSN=SMVN005"
.Execute "W_insertion_stock @pal='S123456' "
End With

et là j'ai une erreur Erreur de conversion de type de donnéees



a écrit dans le message news:
01f201c3c48d$a21d7c20$
il me semble qu'il ne faut pas mettre un nom de proc stock
dans connexion.SQL mais plutôt utiliser la méthode
connexion.execute "maproc"

-----Message d'origine-----
Bonjour à tous

Sur un formulaire ACCESS 97, j'aimerais lancer une
procédure stockée SQL

Server afin de faire diverses transactions. J'arrive très
bien avec la

procédure suivante à récupérer un recordset mais si je
change le .SQL >"select ..."

par .SQL = "execute maproc" , ACCESS me renvoi un erreur

voici ma syntaxe pour le recordset:

Set connexion = base.CreateQueryDef("")
With connexion
.Connect
= "ODBC;DATABASE=GFU;UID=sa;PWD=;DSN=SMVN005"

.SQL = "SELECT * FROM DESTOCK WHERE pal = '"
& num_etiq & "' and

statut = 'AC';"
Set enreg_destock = .OpenRecordset()
End With


Qu'est ce qu'il faut changer pour lancer une procédure
stockée à la place.


Merci d'avance


.



Avatar
Rv
Salut,

En ADO ça dit quoi? Tiens en plus ça me rappelle un fil avec des
contributeurs intéressés par des exemples ADO...

Dim objConn As ADODB.Connection
Dim objCommand As ADODB.Command
Dim strConnexion As String

' ---------- Connexion -----------------
' Changer LeNomDuPcServeur par son nom ou son IP et
LeNomDeLaBaseServeur par son nom (ici c'est GFU on dirait!)
strConnexion = "Provider=SQLOLEDB.1;Initial
Catalog=LeNomDeLaBaseServeur;Data Source=LeNomDuPcServeur"
strLogin = "sa"
strPass = ""
set objConn = new ADODB.Connection
objConn.Open strConnexion, strLogin, strPass

' ----------- Exécution de la proc stock --------------------
Set objCommand = New ADODB.Command
Set objCommand.ActiveConnection = objConn
objCommand.CommandType = adCmdStoredProc
objCommand.CommandText = "W_insertion_stock @pal='S123456' "
objCommand.Execute , , ADODB.ExecuteOptionEnum.adExecuteNoRecords

set objcommand = nothing
objConn.Close
Se objConn = Nothing


Remarque : Sur de l'Access < 2000 il faut rajouter la référence Microsoft
ActiveX Data Object 2.xx. Ici c'est le cas!

A+

Rv



"jeorme" a écrit dans le message de
news:%
Ca ne marche pas , je fais ceci :

Dim insertion As QueryDef
Dim base As Database

Set base = CurrentDb()

Set insertion = base.CreateQueryDef("")
With insertion
.Connect = "ODBC;DATABASE=GFU;UID=sa;PWD=;DSN=SMVN005"
.Execute "W_insertion_stock @pal='S123456' "
End With

et là j'ai une erreur Erreur de conversion de type de donnéees



a écrit dans le message news:
01f201c3c48d$a21d7c20$
il me semble qu'il ne faut pas mettre un nom de proc stock
dans connexion.SQL mais plutôt utiliser la méthode
connexion.execute "maproc"

-----Message d'origine-----
Bonjour à tous

Sur un formulaire ACCESS 97, j'aimerais lancer une
procédure stockée SQL

Server afin de faire diverses transactions. J'arrive très
bien avec la

procédure suivante à récupérer un recordset mais si je
change le .SQL > >"select ..."

par .SQL = "execute maproc" , ACCESS me renvoi un erreur

voici ma syntaxe pour le recordset:

Set connexion = base.CreateQueryDef("")
With connexion
.Connect
= "ODBC;DATABASE=GFU;UID=sa;PWD=;DSN=SMVN005"

.SQL = "SELECT * FROM DESTOCK WHERE pal = '"
& num_etiq & "' and

statut = 'AC';"
Set enreg_destock = .OpenRecordset()
End With


Qu'est ce qu'il faut changer pour lancer une procédure
stockée à la place.


Merci d'avance


.







Avatar
jeorme
En ADO OK , mais comment on fait en DAO.
Quoique l'ADO est sur tous les postes ?
"Rv" a écrit dans le message news:

Salut,

En ADO ça dit quoi? Tiens en plus ça me rappelle un fil avec des
contributeurs intéressés par des exemples ADO...

Dim objConn As ADODB.Connection
Dim objCommand As ADODB.Command
Dim strConnexion As String

' ---------- Connexion -----------------
' Changer LeNomDuPcServeur par son nom ou son IP et
LeNomDeLaBaseServeur par son nom (ici c'est GFU on dirait!)
strConnexion = "Provider=SQLOLEDB.1;Initial
Catalog=LeNomDeLaBaseServeur;Data Source=LeNomDuPcServeur"
strLogin = "sa"
strPass = ""
set objConn = new ADODB.Connection
objConn.Open strConnexion, strLogin, strPass

' ----------- Exécution de la proc stock --------------------
Set objCommand = New ADODB.Command
Set objCommand.ActiveConnection = objConn
objCommand.CommandType = adCmdStoredProc
objCommand.CommandText = "W_insertion_stock @pal='S123456' "
objCommand.Execute , , ADODB.ExecuteOptionEnum.adExecuteNoRecords

set objcommand = nothing
objConn.Close
Se objConn = Nothing


Remarque : Sur de l'Access < 2000 il faut rajouter la référence Microsoft
ActiveX Data Object 2.xx. Ici c'est le cas!

A+

Rv



"jeorme" a écrit dans le message de
news:%
Ca ne marche pas , je fais ceci :

Dim insertion As QueryDef
Dim base As Database

Set base = CurrentDb()

Set insertion = base.CreateQueryDef("")
With insertion
.Connect = "ODBC;DATABASE=GFU;UID=sa;PWD=;DSN=SMVN005"
.Execute "W_insertion_stock @pal='S123456' "
End With

et là j'ai une erreur Erreur de conversion de type de donnéees



a écrit dans le message news:
01f201c3c48d$a21d7c20$
il me semble qu'il ne faut pas mettre un nom de proc stock
dans connexion.SQL mais plutôt utiliser la méthode
connexion.execute "maproc"

-----Message d'origine-----
Bonjour à tous

Sur un formulaire ACCESS 97, j'aimerais lancer une
procédure stockée SQL

Server afin de faire diverses transactions. J'arrive très
bien avec la

procédure suivante à récupérer un recordset mais si je
change le .SQL > > >"select ..."

par .SQL = "execute maproc" , ACCESS me renvoi un erreur

voici ma syntaxe pour le recordset:

Set connexion = base.CreateQueryDef("")
With connexion
.Connect
= "ODBC;DATABASE=GFU;UID=sa;PWD=;DSN=SMVN005"

.SQL = "SELECT * FROM DESTOCK WHERE pal = '"
& num_etiq & "' and

statut = 'AC';"
Set enreg_destock = .OpenRecordset()
End With


Qu'est ce qu'il faut changer pour lancer une procédure
stockée à la place.


Merci d'avance


.
















Avatar
Rv
Re,

Quoique l'ADO est sur tous les postes ?
S'il n'y est pas il faudra installer un MDAC (Microsoft Data Acces

Component) récent. Voir sur le site de Microsoft
De plus ADO permet les connexions par des pilôtes OLEDB alors que DAO nous
fait de l'ODBC et une connexion OLEDB SQL Server est nettement plus
performante que celle en ODBC SQL Server.
En ADO OK , mais comment on fait en DAO.
En DAO je n'ai jamais fait (et je ne sais pas si c'est possible), mais s'il

fallait vraiment j'irai voir dans l'aide Access sur "ODBC Direct"

A+

Rv

"jeorme" a écrit dans le message de
news:
En ADO OK , mais comment on fait en DAO.
Quoique l'ADO est sur tous les postes ?
"Rv" a écrit dans le message news:



Avatar
jeorme
Merci, je vais tenter en ADO
Par contre je cherche le fichier d'aide ADO260.chm sur ma mahine mais il n'y
est pas , je puex trouver ça où.
"Rv" a écrit dans le message news:

Re,

Quoique l'ADO est sur tous les postes ?
S'il n'y est pas il faudra installer un MDAC (Microsoft Data Acces

Component) récent. Voir sur le site de Microsoft
De plus ADO permet les connexions par des pilôtes OLEDB alors que DAO nous
fait de l'ODBC et une connexion OLEDB SQL Server est nettement plus
performante que celle en ODBC SQL Server.
En ADO OK , mais comment on fait en DAO.
En DAO je n'ai jamais fait (et je ne sais pas si c'est possible), mais

s'il

fallait vraiment j'irai voir dans l'aide Access sur "ODBC Direct"

A+

Rv

"jeorme" a écrit dans le message de
news:
En ADO OK , mais comment on fait en DAO.
Quoique l'ADO est sur tous les postes ?
"Rv" a écrit dans le message news: