OVH Cloud OVH Cloud

Problème execution de requête ajout avec l'objet Command

7 réponses
Avatar
Thom
Bonjour,

J'esaye d'ouvrir un objet requête mise à jour access avec l'objet command et
je n'y arrives pas.

Voici la syntaxe que j'utilise, pouvez vous me dire ce qui ne convient pas?

Dim lQuery As New ADODB.Command

lQuery.CommandType = adCmdText
lQuery.ActiveConnection = CurrentProject.Connection
lQuery.CommandText = "RQ_Ajout_Evenement"
lQuery.Parameters("Nom").Value = "Mon nom"
lQuery.Execute
Set lQuery = Nothing

Merci d'avance,

Thom


"Thom" <persone@microsoft.com> a écrit dans le message de news:
eeNaosA$GHA.2340@TK2MSFTNGP05.phx.gbl...
> Bonjour,
>
> J'ai une application utilisant DAO que je dois migrer vers ADO.
> - Connaissez-vous des document décrivant la tradu
>
> Ne maîtrisant pas ADO, je ne sais pas comment traduire ce petit bout de
> code:
>
> Dim lQuery As QueryDef
>
> Set lQuery = CurrentDb.QueryDefs("RQ_Ajout_Evenement")
> lQuery.Parameters("Nom") = "Mon Nom"
> lQuery.Execute
> Set lQuery = Nothing
>
> Merci pour votre aide,
>
> Thom
>
>

7 réponses

Avatar
MG
Il faut déclarer votre paramètre :

Dim lQuery As New ADODB.Command
Dim prm as adodb.parameter

lQuery.CommandType = adCmdText
lQuery.ActiveConnection = CurrentProject.Connection
lQuery.CommandText = "RQ_Ajout_Evenement"

set prm=lQuery.createparameter("Nom",adChar, adparameterInput,15,"Mon Nom")
lQuery.parametres.append prm

lQuery.Parameters("Nom").Value = "Mon nom"
lQuery.Execute
Set lQuery = Nothing

pour la signification des paramètres de CreataParameter, voyez l'aide d'ADO



"Thom" a écrit dans le message de news:
OhaLafC$
Bonjour,

J'esaye d'ouvrir un objet requête mise à jour access avec l'objet command
et je n'y arrives pas.

Voici la syntaxe que j'utilise, pouvez vous me dire ce qui ne convient
pas?

Dim lQuery As New ADODB.Command

lQuery.CommandType = adCmdText
lQuery.ActiveConnection = CurrentProject.Connection
lQuery.CommandText = "RQ_Ajout_Evenement"
lQuery.Parameters("Nom").Value = "Mon nom"
lQuery.Execute
Set lQuery = Nothing

Merci d'avance,

Thom


"Thom" a écrit dans le message de news:
eeNaosA$
Bonjour,

J'ai une application utilisant DAO que je dois migrer vers ADO.
- Connaissez-vous des document décrivant la tradu

Ne maîtrisant pas ADO, je ne sais pas comment traduire ce petit bout de
code:

Dim lQuery As QueryDef

Set lQuery = CurrentDb.QueryDefs("RQ_Ajout_Evenement")
lQuery.Parameters("Nom") = "Mon Nom"
lQuery.Execute
Set lQuery = Nothing

Merci pour votre aide,

Thom








Avatar
Thom
Merci pour l'info MG,

J'essaie dès que possible!

Bonne journée

"MG" a écrit dans le message de news:
uJfrGQN$
Il faut déclarer votre paramètre :

Dim lQuery As New ADODB.Command
Dim prm as adodb.parameter

lQuery.CommandType = adCmdText
lQuery.ActiveConnection = CurrentProject.Connection
lQuery.CommandText = "RQ_Ajout_Evenement"

set prm=lQuery.createparameter("Nom",adChar, adparameterInput,15,"Mon
Nom")
lQuery.parametres.append prm

lQuery.Parameters("Nom").Value = "Mon nom"
lQuery.Execute
Set lQuery = Nothing

pour la signification des paramètres de CreataParameter, voyez l'aide
d'ADO



"Thom" a écrit dans le message de news:
OhaLafC$
Bonjour,

J'esaye d'ouvrir un objet requête mise à jour access avec l'objet command
et je n'y arrives pas.

Voici la syntaxe que j'utilise, pouvez vous me dire ce qui ne convient
pas?

Dim lQuery As New ADODB.Command

lQuery.CommandType = adCmdText
lQuery.ActiveConnection = CurrentProject.Connection
lQuery.CommandText = "RQ_Ajout_Evenement"
lQuery.Parameters("Nom").Value = "Mon nom"
lQuery.Execute
Set lQuery = Nothing

Merci d'avance,

Thom


"Thom" a écrit dans le message de news:
eeNaosA$
Bonjour,

J'ai une application utilisant DAO que je dois migrer vers ADO.
- Connaissez-vous des document décrivant la tradu

Ne maîtrisant pas ADO, je ne sais pas comment traduire ce petit bout de
code:

Dim lQuery As QueryDef

Set lQuery = CurrentDb.QueryDefs("RQ_Ajout_Evenement")
lQuery.Parameters("Nom") = "Mon Nom"
lQuery.Execute
Set lQuery = Nothing

Merci pour votre aide,

Thom












Avatar
MG
Je pense en plus que votre paramétrage est erroné :

lQuery.CommandType = adCmdText
si vous mettez adCmdText, il faut mettre le texte de la requête dans
CommandText et non pas le nom de la requête

mettez
lQuery.CommandType = adCmdTable
ou au pire
lQuery.CommandType = adCmdUnknown


"Thom" a écrit dans le message de news:
OhaLafC$
Bonjour,

J'esaye d'ouvrir un objet requête mise à jour access avec l'objet command
et je n'y arrives pas.

Voici la syntaxe que j'utilise, pouvez vous me dire ce qui ne convient
pas?

Dim lQuery As New ADODB.Command

lQuery.CommandType = adCmdText
lQuery.ActiveConnection = CurrentProject.Connection
lQuery.CommandText = "RQ_Ajout_Evenement"
lQuery.Parameters("Nom").Value = "Mon nom"
lQuery.Execute
Set lQuery = Nothing

Merci d'avance,

Thom


"Thom" a écrit dans le message de news:
eeNaosA$
Bonjour,

J'ai une application utilisant DAO que je dois migrer vers ADO.
- Connaissez-vous des document décrivant la tradu

Ne maîtrisant pas ADO, je ne sais pas comment traduire ce petit bout de
code:

Dim lQuery As QueryDef

Set lQuery = CurrentDb.QueryDefs("RQ_Ajout_Evenement")
lQuery.Parameters("Nom") = "Mon Nom"
lQuery.Execute
Set lQuery = Nothing

Merci pour votre aide,

Thom








Avatar
Thom
Vous avez mis le doigt pile sur mon problème!

En fait je veux exécuter une requête à partir de son nom. Car en fait je
suis entrain de reprendre une appli qui a été écrite avec DAO et je dois la
convertir en ADO, et pour tout vous dire, je ne tiens pas à réécrire tout le
code ou faire du copier coller de toutes les requêtes sachant que je n'ai
pas les moyen de re-tester toute l'appli.

Mais est ce vraiment possible d'ouvrir une requête par son nom avec une
ADODB.Command?!?! Je n'ai pas réussi à trouver d'exemple.

En tout cas merci pour votre réponse.

Thom




"MG" a écrit dans le message de news:
%23KlWheN$
Je pense en plus que votre paramétrage est erroné :

lQuery.CommandType = adCmdText
si vous mettez adCmdText, il faut mettre le texte de la requête dans
CommandText et non pas le nom de la requête

mettez
lQuery.CommandType = adCmdTable
ou au pire
lQuery.CommandType = adCmdUnknown


"Thom" a écrit dans le message de news:
OhaLafC$
Bonjour,

J'esaye d'ouvrir un objet requête mise à jour access avec l'objet command
et je n'y arrives pas.

Voici la syntaxe que j'utilise, pouvez vous me dire ce qui ne convient
pas?

Dim lQuery As New ADODB.Command

lQuery.CommandType = adCmdText
lQuery.ActiveConnection = CurrentProject.Connection
lQuery.CommandText = "RQ_Ajout_Evenement"
lQuery.Parameters("Nom").Value = "Mon nom"
lQuery.Execute
Set lQuery = Nothing

Merci d'avance,

Thom


"Thom" a écrit dans le message de news:
eeNaosA$
Bonjour,

J'ai une application utilisant DAO que je dois migrer vers ADO.
- Connaissez-vous des document décrivant la tradu

Ne maîtrisant pas ADO, je ne sais pas comment traduire ce petit bout de
code:

Dim lQuery As QueryDef

Set lQuery = CurrentDb.QueryDefs("RQ_Ajout_Evenement")
lQuery.Parameters("Nom") = "Mon Nom"
lQuery.Execute
Set lQuery = Nothing

Merci pour votre aide,

Thom












Avatar
Eric
Bonjour,

En reprenant le code proposé par MG, quelque chose du genre:

Sub zz()
Dim lQuery As New ADODB.Command
Dim prm As ADODB.Parameter
Dim strReponse As String
' en supposant que le paramètre s'appelle lenb
' et est un Integer dans la requête
strReponse = InputBox("Valeur du paramètre lenb", _
"Informations complémentaires")
If Len(strReponse) = 0 Then Exit Sub ' test réduit a minima
lQuery.ActiveConnection = CurrentProject.Connection
lQuery.CommandType = adCmdStoredProc
lQuery.CommandText = "NomDeLaRequêteAction"
Set prm = lQuery.CreateParameter("lenb", adInteger, adParamInput, , 0)
lQuery.Parameters.Append prm
lQuery.Parameters("lenb").Value = CInt(strReponse)
lQuery.Execute
Set prm = Nothing
Set lQuery = Nothing
End Sub

Vous avez mis le doigt pile sur mon problème!

En fait je veux exécuter une requête à partir de son nom. Car en fait je
suis entrain de reprendre une appli qui a été écrite avec DAO et je dois la
convertir en ADO, et pour tout vous dire, je ne tiens pas à réécrire tout le
code ou faire du copier coller de toutes les requêtes sachant que je n'ai
pas les moyen de re-tester toute l'appli.

Mais est ce vraiment possible d'ouvrir une requête par son nom avec une
ADODB.Command?!?! Je n'ai pas réussi à trouver d'exemple.

En tout cas merci pour votre réponse.

Thom




"MG" a écrit dans le message de news:
%23KlWheN$

Je pense en plus que votre paramétrage est erroné :

lQuery.CommandType = adCmdText
si vous mettez adCmdText, il faut mettre le texte de la requête dans
CommandText et non pas le nom de la requête

mettez
lQuery.CommandType = adCmdTable
ou au pire
lQuery.CommandType = adCmdUnknown


"Thom" a écrit dans le message de news:
OhaLafC$

Bonjour,

J'esaye d'ouvrir un objet requête mise à jour access avec l'objet command
et je n'y arrives pas.

Voici la syntaxe que j'utilise, pouvez vous me dire ce qui ne convient
pas?

Dim lQuery As New ADODB.Command

lQuery.CommandType = adCmdText
lQuery.ActiveConnection = CurrentProject.Connection
lQuery.CommandText = "RQ_Ajout_Evenement"
lQuery.Parameters("Nom").Value = "Mon nom"
lQuery.Execute
Set lQuery = Nothing

Merci d'avance,

Thom


"Thom" a écrit dans le message de news:
eeNaosA$

Bonjour,

J'ai une application utilisant DAO que je dois migrer vers ADO.
- Connaissez-vous des document décrivant la tradu

Ne maîtrisant pas ADO, je ne sais pas comment traduire ce petit bout de
code:

Dim lQuery As QueryDef

Set lQuery = CurrentDb.QueryDefs("RQ_Ajout_Evenement")
lQuery.Parameters("Nom") = "Mon Nom"
lQuery.Execute
Set lQuery = Nothing

Merci pour votre aide,

Thom












--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr




Avatar
Eric
.../...
Dans le titre on parle de requête Ajout puis dans le 1er post d'une
requête Mise à jour. L'exemple est donné pour une requête de mise à jour
paramétrée sur une valeur numérique calculée à l'aide du paramètre. Cela
doit être transposable pour un autre type de requête : ajout,
suppression, ...

Bonjour,

En reprenant le code proposé par MG, quelque chose du genre:

Sub zz()
Dim lQuery As New ADODB.Command
Dim prm As ADODB.Parameter
Dim strReponse As String
' en supposant que le paramètre s'appelle lenb
' et est un Integer dans la requête
strReponse = InputBox("Valeur du paramètre lenb", _
"Informations complémentaires")
If Len(strReponse) = 0 Then Exit Sub ' test réduit a minima
lQuery.ActiveConnection = CurrentProject.Connection
lQuery.CommandType = adCmdStoredProc
lQuery.CommandText = "NomDeLaRequêteAction"
Set prm = lQuery.CreateParameter("lenb", adInteger, adParamInput, , 0)
lQuery.Parameters.Append prm
lQuery.Parameters("lenb").Value = CInt(strReponse)
lQuery.Execute
Set prm = Nothing
Set lQuery = Nothing
End Sub



--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Avatar
Thom
C'est super, merci pour ta réponse!

A bientôt


"Eric" a écrit dans le message de news:
urAQ5G3$
.../...
Dans le titre on parle de requête Ajout puis dans le 1er post d'une
requête Mise à jour. L'exemple est donné pour une requête de mise à jour
paramétrée sur une valeur numérique calculée à l'aide du paramètre. Cela
doit être transposable pour un autre type de requête : ajout, suppression,
...

Bonjour,

En reprenant le code proposé par MG, quelque chose du genre:

Sub zz()
Dim lQuery As New ADODB.Command
Dim prm As ADODB.Parameter
Dim strReponse As String
' en supposant que le paramètre s'appelle lenb
' et est un Integer dans la requête
strReponse = InputBox("Valeur du paramètre lenb", _
"Informations complémentaires")
If Len(strReponse) = 0 Then Exit Sub ' test réduit a minima
lQuery.ActiveConnection = CurrentProject.Connection
lQuery.CommandType = adCmdStoredProc
lQuery.CommandText = "NomDeLaRequêteAction"
Set prm = lQuery.CreateParameter("lenb", adInteger, adParamInput, ,
0)
lQuery.Parameters.Append prm
lQuery.Parameters("lenb").Value = CInt(strReponse)
lQuery.Execute
Set prm = Nothing
Set lQuery = Nothing
End Sub



--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr