Requete parametree ADO

Le
Lolo
Bonjour a tous,

J'ai sous une base access deux requetes avec un paramétre. Ces requêtes sont
des reuqetes ajout et suppression.
Comment en me connectant a la base en VBA arriver a passer une valeur en
parametre en executant la requete.

Sans parametre je fais quelquechose comme :
Ma_Connexion_P.Execute "Le_Nom_De_Ma_Requete", NombreEnregistrementsImpactes

Mais comment introduire le parametre Mon_Parametre prenant une valeur de
type long ?

Si vous avez des idées ! Merci ! A+.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Fabien
Le #7084051
Lolo wrote:
Bonjour a tous,

J'ai sous une base access deux requetes avec un paramétre. Ces requêtes sont
des reuqetes ajout et suppression.
Comment en me connectant a la base en VBA arriver a passer une valeur en
parametre en executant la requete.

Sans parametre je fais quelquechose comme :
Ma_Connexion_P.Execute "Le_Nom_De_Ma_Requete", NombreEnregistrementsImpactes

Mais comment introduire le parametre Mon_Parametre prenant une valeur de
type long ?

Si vous avez des idées ! Merci ! A+.


Salut,
sans rien connaitre à la syntaxe ado, ne peut on pas ecrire le source de
l'instruction sql ?
ma_connexion.execute "INSERT INTO maTable ( ..... " & _
"WHERE [monchampdetest]=" & me.monparametre &
";",NombreEnregistrementsImpactes
si le monchampdetest est numerique
et
ma_connexion.execute "INSERT INTO maTable ( ..... " & _
"WHERE [monchampdetest]='" & me.monparametre &
"';",NombreEnregistrementsImpactes
si le monchampdetest est Aplhanumerique
@+
Lolo
Le #7084311
Merci Fabien,

Ma requete est réalisée sous access et je ne souhaite pas la faire en SQL
pur car j'ai beaucoup de champs a copier avec des modifications de valeurs ...
Je ne suis pas sur qu'avec l'ajout d'une condition Where on soit dans le
cadre du passage de parametre...

"Fabien" a écrit :

Lolo wrote:
> Bonjour a tous,
>
> J'ai sous une base access deux requetes avec un paramétre. Ces requêtes sont
> des reuqetes ajout et suppression.
> Comment en me connectant a la base en VBA arriver a passer une valeur en
> parametre en executant la requete.
>
> Sans parametre je fais quelquechose comme :
> Ma_Connexion_P.Execute "Le_Nom_De_Ma_Requete", NombreEnregistrementsImpactes
>
> Mais comment introduire le parametre Mon_Parametre prenant une valeur de
> type long ?
>
> Si vous avez des idées ! Merci ! A+.
Salut,
sans rien connaitre à la syntaxe ado, ne peut on pas ecrire le source de
l'instruction sql ?
ma_connexion.execute "INSERT INTO maTable ( ..... " & _
"WHERE [monchampdetest]=" & me.monparametre &
";",NombreEnregistrementsImpactes
si le monchampdetest est numerique
et
ma_connexion.execute "INSERT INTO maTable ( ..... " & _
"WHERE [monchampdetest]='" & me.monparametre &
"';",NombreEnregistrementsImpactes
si le monchampdetest est Aplhanumerique
@+






Michel_D
Le #7084301
Bonjour,

Donne le SQL pour voir.


"Lolo"
Merci Fabien,

Ma requete est réalisée sous access et je ne souhaite pas la faire en SQL
pur car j'ai beaucoup de champs a copier avec des modifications de valeurs ...
Je ne suis pas sur qu'avec l'ajout d'une condition Where on soit dans le
cadre du passage de parametre...

"Fabien" a écrit :

> Lolo wrote:
> > Bonjour a tous,
> >
> > J'ai sous une base access deux requetes avec un paramétre. Ces requêtes sont
> > des reuqetes ajout et suppression.
> > Comment en me connectant a la base en VBA arriver a passer une valeur en
> > parametre en executant la requete.
> >
> > Sans parametre je fais quelquechose comme :
> > Ma_Connexion_P.Execute "Le_Nom_De_Ma_Requete", NombreEnregistrementsImpactes
> >
> > Mais comment introduire le parametre Mon_Parametre prenant une valeur de
> > type long ?
> >
> > Si vous avez des idées ! Merci ! A+.
> Salut,
> sans rien connaitre à la syntaxe ado, ne peut on pas ecrire le source de
> l'instruction sql ?
> ma_connexion.execute "INSERT INTO maTable ( ..... " & _
> "WHERE [monchampdetest]=" & me.monparametre &
> ";",NombreEnregistrementsImpactes
> si le monchampdetest est numerique
> et
> ma_connexion.execute "INSERT INTO maTable ( ..... " & _
> "WHERE [monchampdetest]='" & me.monparametre &
> "';",NombreEnregistrementsImpactes
> si le monchampdetest est Aplhanumerique
> @+
>
>
>
>


Fabien
Le #7084291
Lolo wrote:
Merci Fabien,

Ma requete est réalisée sous access et je ne souhaite pas la faire en SQL
pur car j'ai beaucoup de champs a copier avec des modifications de valeurs ...
Je ne suis pas sur qu'avec l'ajout d'une condition Where on soit dans le
cadre du passage de parametre...

"Fabien" a écrit :

Lolo wrote:
Bonjour a tous,

J'ai sous une base access deux requetes avec un paramétre. Ces requêtes sont
des reuqetes ajout et suppression.
Comment en me connectant a la base en VBA arriver a passer une valeur en
parametre en executant la requete.

Sans parametre je fais quelquechose comme :
Ma_Connexion_P.Execute "Le_Nom_De_Ma_Requete", NombreEnregistrementsImpactes

Mais comment introduire le parametre Mon_Parametre prenant une valeur de
type long ?

Si vous avez des idées ! Merci ! A+.


Salut,
sans rien connaitre à la syntaxe ado, ne peut on pas ecrire le source de
l'instruction sql ?
ma_connexion.execute "INSERT INTO maTable ( ..... "& _
"WHERE [monchampdetest]="& me.monparametre&
";",NombreEnregistrementsImpactes
si le monchampdetest est numerique
et
ma_connexion.execute "INSERT INTO maTable ( ..... "& _
"WHERE [monchampdetest]='"& me.monparametre&
"';",NombreEnregistrementsImpactes
si le monchampdetest est Aplhanumerique
@+








Ben ta requete access c'est quant même du SQL ;-)
Pour ce qui est des parametres a part les passer en modifiant
l'instruction SQL je vois pas comment faire.
Si les parametres concerne les champs mis a jour alors
ma_connexion.execute "Insert into [Matable] ([Champ1],[Champ2],...)
values (" & Param1 & "," & Param2 & "," .....
");",NombreEnregistrementsImpactes
A mon niveau je vois pas d'autres solutions désolé ;-)
Lolo
Le #7084511
Merci Michel et Fabien pour vos réponses

Si la requete renvoyait des résultats (la ce n'est pas le cas puisqu'elle
copie des infos d'une table dans une autre) je pense pouvoir me débrouiller
avec une syntaxe du type :

' Création d'un objet commande objCmd
objCmd.CommandText = "MonNomDeRequete"
objCmd.CommandType = adCmdStoredProc
Set objCmd.ActiveConnection = objConn
objCmd.Parameters("@MonParametre") = Ma valeur de parametre
MonRecordset.Open objCmd
...
Mais la je ne sais pas

"Fabien" a écrit :

Lolo wrote:
> Merci Fabien,
>
> Ma requete est réalisée sous access et je ne souhaite pas la faire en SQL
> pur car j'ai beaucoup de champs a copier avec des modifications de valeurs ...
> Je ne suis pas sur qu'avec l'ajout d'une condition Where on soit dans le
> cadre du passage de parametre...
>
> "Fabien" a écrit :
>
>> Lolo wrote:
>>> Bonjour a tous,
>>>
>>> J'ai sous une base access deux requetes avec un paramétre. Ces requêtes sont
>>> des reuqetes ajout et suppression.
>>> Comment en me connectant a la base en VBA arriver a passer une valeur en
>>> parametre en executant la requete.
>>>
>>> Sans parametre je fais quelquechose comme :
>>> Ma_Connexion_P.Execute "Le_Nom_De_Ma_Requete", NombreEnregistrementsImpactes
>>>
>>> Mais comment introduire le parametre Mon_Parametre prenant une valeur de
>>> type long ?
>>>
>>> Si vous avez des idées ! Merci ! A+.
>> Salut,
>> sans rien connaitre à la syntaxe ado, ne peut on pas ecrire le source de
>> l'instruction sql ?
>> ma_connexion.execute "INSERT INTO maTable ( ..... "& _
>> "WHERE [monchampdetest]="& me.monparametre&
>> ";",NombreEnregistrementsImpactes
>> si le monchampdetest est numerique
>> et
>> ma_connexion.execute "INSERT INTO maTable ( ..... "& _
>> "WHERE [monchampdetest]='"& me.monparametre&
>> "';",NombreEnregistrementsImpactes
>> si le monchampdetest est Aplhanumerique
>> @+
>>
>>
>>
>>
Ben ta requete access c'est quant même du SQL ;-)
Pour ce qui est des parametres a part les passer en modifiant
l'instruction SQL je vois pas comment faire.
Si les parametres concerne les champs mis a jour alors
ma_connexion.execute "Insert into [Matable] ([Champ1],[Champ2],...)
values (" & Param1 & "," & Param2 & "," .....
");",NombreEnregistrementsImpactes
A mon niveau je vois pas d'autres solutions désolé ;-)




CErnst
Le #7084821
Ci-dessous, une méthode, mais il y a plusieurs façons de faire.
vous trouverez tous les paramètres de CreateParazmetre dans l'aide :
AD210.CHM


Private Sub Commande0_Click()
On Error GoTo Err_Commande0_Click
Dim c As New ADODB.Command
c.ActiveConnection = CurrentProject.Connection
c.CommandType = adCmdStoredProc
c.CommandText = "[Le_Nom_De_Ma_Requete]" (les crochets sont
nécessaires s'il y a des espaces dans le nom de la requête)
c.Parameters.Refresh
c.Parameters.Append c.CreateParameter("Mon_Parametre ",
adLongVarBinary, adParamInput, ,VOTREVALEUR)
c.Execute
Exit_Commande0_Click:
Exit Sub

Err_Commande0_Click:
MsgBox Err.Description
Resume Exit_Commande0_Click
End Sub







"Lolo"
Bonjour a tous,

J'ai sous une base access deux requetes avec un paramétre. Ces requêtes
sont
des reuqetes ajout et suppression.
Comment en me connectant a la base en VBA arriver a passer une valeur en
parametre en executant la requete.

Sans parametre je fais quelquechose comme :
Ma_Connexion_P.Execute "Le_Nom_De_Ma_Requete",
NombreEnregistrementsImpactes

Mais comment introduire le parametre Mon_Parametre prenant une valeur de
type long ?

Si vous avez des idées ! Merci ! A+.


CErnst
Le #7084811
pardon, ADO210.CHM

"CErnst" %
Ci-dessous, une méthode, mais il y a plusieurs façons de faire.
vous trouverez tous les paramètres de CreateParazmetre dans l'aide :
AD210.CHM


Private Sub Commande0_Click()
On Error GoTo Err_Commande0_Click
Dim c As New ADODB.Command
c.ActiveConnection = CurrentProject.Connection
c.CommandType = adCmdStoredProc
c.CommandText = "[Le_Nom_De_Ma_Requete]" (les crochets sont
nécessaires s'il y a des espaces dans le nom de la requête)
c.Parameters.Refresh
c.Parameters.Append c.CreateParameter("Mon_Parametre ",
adLongVarBinary, adParamInput, ,VOTREVALEUR)
c.Execute
Exit_Commande0_Click:
Exit Sub

Err_Commande0_Click:
MsgBox Err.Description
Resume Exit_Commande0_Click
End Sub







"Lolo"
Bonjour a tous,

J'ai sous une base access deux requetes avec un paramétre. Ces requêtes
sont
des reuqetes ajout et suppression.
Comment en me connectant a la base en VBA arriver a passer une valeur en
parametre en executant la requete.

Sans parametre je fais quelquechose comme :
Ma_Connexion_P.Execute "Le_Nom_De_Ma_Requete",
NombreEnregistrementsImpactes

Mais comment introduire le parametre Mon_Parametre prenant une valeur de
type long ?

Si vous avez des idées ! Merci ! A+.






Lolo
Le #7084801
MerKi CErnst,

Ta syntaxe est correcte.



"CErnst" a écrit :

pardon, ADO210.CHM

"CErnst" %
> Ci-dessous, une méthode, mais il y a plusieurs façons de faire.
> vous trouverez tous les paramètres de CreateParazmetre dans l'aide :
> AD210.CHM
>
>
> Private Sub Commande0_Click()
> On Error GoTo Err_Commande0_Click
> Dim c As New ADODB.Command
> c.ActiveConnection = CurrentProject.Connection
> c.CommandType = adCmdStoredProc
> c.CommandText = "[Le_Nom_De_Ma_Requete]" (les crochets sont
> nécessaires s'il y a des espaces dans le nom de la requête)
> c.Parameters.Refresh
> c.Parameters.Append c.CreateParameter("Mon_Parametre ",
> adLongVarBinary, adParamInput, ,VOTREVALEUR)
> c.Execute
> Exit_Commande0_Click:
> Exit Sub
>
> Err_Commande0_Click:
> MsgBox Err.Description
> Resume Exit_Commande0_Click
> End Sub
>
>
>
>
>
>
>
> "Lolo" >
>> Bonjour a tous,
>>
>> J'ai sous une base access deux requetes avec un paramétre. Ces requêtes
>> sont
>> des reuqetes ajout et suppression.
>> Comment en me connectant a la base en VBA arriver a passer une valeur en
>> parametre en executant la requete.
>>
>> Sans parametre je fais quelquechose comme :
>> Ma_Connexion_P.Execute "Le_Nom_De_Ma_Requete",
>> NombreEnregistrementsImpactes
>>
>> Mais comment introduire le parametre Mon_Parametre prenant une valeur de
>> type long ?
>>
>> Si vous avez des idées ! Merci ! A+.
>
>





Publicité
Poster une réponse
Anonyme