Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
838 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  utilisation d'une procedure stockée TSQL depuis access

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

utilisation d'une procedure stockée TSQL depuis access

n°1710492
roblescris​o
Posté le 31-03-2008 à 17:11:06  profilanswer
 

Bonjour à tous!
 
d'abord merci d'avance de votre aide!
 
voilà mon problème:
je realise une copie des horaires depuis access et pour cela j'utilise de procedures stockées qui se trouvent sur mon serveur SQL donc, elles sont codées en TSQL.
 
pour l'appel de ses procedures j'utilise une fonction en VBA(module Access) qui va affecter une requête sur access pour executer la procedure stockee.
 
voila le problème est quand je clique sur le bouton de copie, la requête contient les bons valeurs mais cela ne s'execute pas... et ça fonctionne quand je clique la 2eme fois sur le bouton :S
 
un peu de code:
 
requête sur access "HorairesCopie_CopieUneSemaine_Optimized_180208" (contient l'appel de la procedure qui se trouve sur mon srv):
 
EXEC HorairesCopie_CopieUneSemaine_Optimized_180208 @NumFormation=4003 , @dateDebutSource='28.01.2008', @dateDebutCible='04.02.2008'
 
fonction access de copie(appel fonction qui va affecter la requête):
 
Call cnip_parametreRequeteSqlDirecte("HorairesCopie_CopieUneSemaine_Optimized_180208", "EXEC HorairesCopie_CopieUneSemaine_Optimized_180208 @NumFormation=" & NumFormation & " , @dateDebutSource='" & dateDebutSemaineSourceFormate & "', @dateDebutCible='" & dateDebutSemaineCibleFormate & "'" )
 
 
fonction
Public Function cnip_parametreRequeteSqlDirecte(ByVal reqSqlDirect As String, ByVal strSql As String)
 
'Appel                : depuis toute fonction ou évenement en ayant besoin (quasi toujours depuis les fonctions de création de critères de filtre)
'Description          : Permet de modifier une requête SQL Directe.
 
 
Dim cat As New ADOX.Catalog
Dim cmd As ADODB.Command
 
cat.ActiveConnection = CurrentProject.Connection
 
Set cmd = cat.Procedures(reqSqlDirect).Command
cmd.CommandText = strSql
 
Set cat.Procedures(reqSqlDirect).Command = cmd
 
 
End Function
 
la fonction sur mon srv s'appelle aussi HorairesCopie_CopieUneSemaine_Optimized_180208 et elle fonctionne correctement
 
je ne comprend pas pourquoi cela fonctionne quand on clique 2 fois de suite sur le bouton de copie qui se trouve sur un formulaire et pas dès la 1ere fois
 
je vous remercie!!!
 
et j'att vos nouvelles avec impatience!
 
merci!
 
Cristina


Message édité par roblescriso le 04-04-2008 à 20:45:17
mood
Publicité
Posté le 31-03-2008 à 17:11:06  profilanswer
 

n°1712417
MagicBuzz
Posté le 03-04-2008 à 20:09:45  profilanswer
 

J'ai pas tout pigé ton problème à vrai dire...
 
Ta fonction "Function cnip_parametreRequeteSqlDirecte" affecte une commande à ton objet "cat.Procedures(reqSqlDirect)" sans l'exécuter.
 
C'est pas ça le souci ?
 
J'ai l'impression qu'il te manque juste une instruction "cat.Procedures(reqSqlDirect).Execute" à la fin de ta fonction.

n°1712913
roblescris​o
Posté le 04-04-2008 à 17:33:01  profilanswer
 

je crois que c'est bien cela qu'il manque mais je l'ajoute simplement à la fin comme ceux-ci:
 
Public Function cnip_parametreRequeteSqlDirecte(ByVal reqSqlDirect As String, ByVal strSql As String)
 
 
Dim cat As New ADOX.Catalog
Dim cmd As ADODB.Command
 
cat.ActiveConnection = CurrentProject.Connection
 
Set cmd = cat.Procedures(reqSqlDirect).Command
cmd.CommandText = strSql
 
Set cat.Procedures(reqSqlDirect).Command = cmd
cat.Procedures(reqSqlDirect).Execute
 
End Function
 
car il me donne un erreur comme quoi "Membre de méthode ou de données introuvable"
 
est-ce que je dois faire qqch comme "set cat.Procedures(reqSqlDirect).Execute= cmd" ???
 
je suis dsl mais je ne comprend pas très bien ses objets ADO :S

n°1712928
roblescris​o
Posté le 04-04-2008 à 18:07:57  profilanswer
 

et est-ce que tu sais comment je peux recuperer la valeur de retour d'une procedure stockée, car ma procedure stockée sur mon srv sql reçoit une variable optionel passé par référence donc "OUTPUT" et j'aimerais la recuperer depuis access:
 
Call cnip_parametreRequeteSqlDirecte("HorairesCopie_CopieUneSemaine_Optimized_180208", "EXEC HorairesCopie_CopieUneSemaine_Optimized_180208 @NumFormation=" & NumFormation & ", @dateDebutSource='" & dateDebutSemaineSourceFormate & "', @dateDebutCible='" & dateDebutSemaineCibleFormate & "', @compteurNbPeriodesVides= " & compteurNbPeriodesVides)
 
voilà, j'aimerais que compteurNbPeriodesVides soit affecté par la procédure stockée mais cela n'est pas affecté :S

n°1712972
MagicBuzz
Posté le 04-04-2008 à 20:32:14  profilanswer
 

En fait, je connais pas du tout le modèle objet de données d'Access, notamment cet ADOX.Catalog
 
A mon avis, il faut faire un cat.Execute en lui passant en paramètre de quoi retrouver la procédure à exécuter du coup, mais j'ai aucune idée de comme il faut faire. :spamafote:

n°1712973
MagicBuzz
Posté le 04-04-2008 à 20:32:47  profilanswer
 

PS : T'auras plus de chances si ton sujet est déplacé dans la catégorie VB/VBA, là c'est pas du SGBD à proprement parler...

n°1712979
roblescris​o
Posté le 04-04-2008 à 20:43:40  profilanswer
 

ok merci! je vais le déplacer :S
euh.. si je trouve comme on fait :D

n°1713000
MagicBuzz
Posté le 04-04-2008 à 22:53:26  profilanswer
 

Je crois que tu dois demander à un admin :D


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  utilisation d'une procedure stockée TSQL depuis access

 

Sujets relatifs
[UML]Extends : mon diagramme de cas d'utilisation est bon?[Access]Blocage d'ouverture à cause de mdp vers bases liées
Utilisation de cellpaddingRécupérer les valeurs d'un parametre OUT d'une procédure stocké
Lien MS ACCESS<=>SQL SERVER : l'ODBC fait du freestyle[access/vba/bdd] intégration de valeur par case à cocher
Collection a double dimension avec utilisation de la généricitéUtilisation d'un case of
utilisation de java sur l'embarqué[SQL MS.Access] TOP10 par catégorie
Plus de sujets relatifs à : utilisation d'une procedure stockée TSQL depuis access


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR