la fonction suivante me permet de r=E9cuperer l'instruction=20
sql d'une requete
.........mais cela ne marche pas avec une requete selection
pourquoi ??
j'ai le message suivant
impossible de trouver l'objet dans la collection=20
correspondant au nom ou =E0 la reference ordinale demand=E9e
Function RecupSQL(strQuery As String)
Dim cat As New ADOX.Catalog
Dim qry As Recordset
Dim cmd As ADODB.Command
Set cat.ActiveConnection =3D CurrentProject.Connection
Set cmd =3D cat.Procedures(strQuery).Command
RecupSQL =3D cmd.CommandText
'Debug.Print RecupSQL
end function
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
Benoit Compoint
Bonjour,
Les requêtes "Sélection" sans paramètres sont considérées comme des vues (et non comme des procédures stockées). C'est pourquoi, pour ce type de requête, il faut utiliser la collection "Views" de l'objet "cat", au lieu d'utiliser la collection "Procedures".
Benoît Compoint.
"MJ" wrote in message news:0be801c398a7$b7fa4b20$ Bonjour,
la fonction suivante me permet de récuperer l'instruction sql d'une requete .........mais cela ne marche pas avec une requete selection pourquoi ?? j'ai le message suivant impossible de trouver l'objet dans la collection correspondant au nom ou à la reference ordinale demandée
Function RecupSQL(strQuery As String)
Dim cat As New ADOX.Catalog Dim qry As Recordset Dim cmd As ADODB.Command Set cat.ActiveConnection = CurrentProject.Connection Set cmd = cat.Procedures(strQuery).Command
RecupSQL = cmd.CommandText 'Debug.Print RecupSQL end function
merci de votre aide MJ
Bonjour,
Les requêtes "Sélection" sans paramètres sont considérées comme des vues (et
non comme des procédures stockées).
C'est pourquoi, pour ce type de requête, il faut utiliser la collection
"Views" de l'objet "cat", au lieu d'utiliser la collection "Procedures".
Benoît Compoint.
"MJ" <anonymous@discussions.microsoft.com> wrote in message
news:0be801c398a7$b7fa4b20$a501280a@phx.gbl...
Bonjour,
la fonction suivante me permet de récuperer l'instruction
sql d'une requete
.........mais cela ne marche pas avec une requete selection
pourquoi ??
j'ai le message suivant
impossible de trouver l'objet dans la collection
correspondant au nom ou à la reference ordinale demandée
Function RecupSQL(strQuery As String)
Dim cat As New ADOX.Catalog
Dim qry As Recordset
Dim cmd As ADODB.Command
Set cat.ActiveConnection = CurrentProject.Connection
Set cmd = cat.Procedures(strQuery).Command
RecupSQL = cmd.CommandText
'Debug.Print RecupSQL
end function
Les requêtes "Sélection" sans paramètres sont considérées comme des vues (et non comme des procédures stockées). C'est pourquoi, pour ce type de requête, il faut utiliser la collection "Views" de l'objet "cat", au lieu d'utiliser la collection "Procedures".
Benoît Compoint.
"MJ" wrote in message news:0be801c398a7$b7fa4b20$ Bonjour,
la fonction suivante me permet de récuperer l'instruction sql d'une requete .........mais cela ne marche pas avec une requete selection pourquoi ?? j'ai le message suivant impossible de trouver l'objet dans la collection correspondant au nom ou à la reference ordinale demandée
Function RecupSQL(strQuery As String)
Dim cat As New ADOX.Catalog Dim qry As Recordset Dim cmd As ADODB.Command Set cat.ActiveConnection = CurrentProject.Connection Set cmd = cat.Procedures(strQuery).Command
RecupSQL = cmd.CommandText 'Debug.Print RecupSQL end function
merci de votre aide MJ
MJ
Bonjour,
c'est ok ............un grand merci
maintenant j'aimerai améliorer ma fonction pourque l'on puisse l'appeler avec n'importe quelle requete comment faire pour tester le type de requete (sélection, analyse croisée..) avant la ligne
Set cmd = cat.Procedures(strQuery).Command ou Set cmd = cat.Views(strQuery).Command
MJ
-----Message d'origine----- Bonjour,
Les requêtes "Sélection" sans paramètres sont considérées comme des vues (et
non comme des procédures stockées). C'est pourquoi, pour ce type de requête, il faut utiliser la collection
"Views" de l'objet "cat", au lieu d'utiliser la collection "Procedures".
Benoît Compoint.
"MJ" wrote in message
news:0be801c398a7$b7fa4b20$ Bonjour,
la fonction suivante me permet de récuperer l'instruction sql d'une requete ..........mais cela ne marche pas avec une requete selection
pourquoi ?? j'ai le message suivant impossible de trouver l'objet dans la collection correspondant au nom ou à la reference ordinale demandée
Function RecupSQL(strQuery As String)
Dim cat As New ADOX.Catalog Dim qry As Recordset Dim cmd As ADODB.Command Set cat.ActiveConnection = CurrentProject.Connection Set cmd = cat.Procedures(strQuery).Command
RecupSQL = cmd.CommandText 'Debug.Print RecupSQL end function
merci de votre aide MJ
.
Bonjour,
c'est ok ............un grand merci
maintenant j'aimerai améliorer ma fonction pourque l'on
puisse l'appeler avec n'importe quelle requete
comment faire pour tester le type de requete (sélection,
analyse croisée..) avant la ligne
Set cmd = cat.Procedures(strQuery).Command
ou Set cmd = cat.Views(strQuery).Command
MJ
-----Message d'origine-----
Bonjour,
Les requêtes "Sélection" sans paramètres sont considérées
comme des vues (et
non comme des procédures stockées).
C'est pourquoi, pour ce type de requête, il faut utiliser
la collection
"Views" de l'objet "cat", au lieu d'utiliser la
collection "Procedures".
Benoît Compoint.
"MJ" <anonymous@discussions.microsoft.com> wrote in
message
la fonction suivante me permet de récuperer l'instruction
sql d'une requete
..........mais cela ne marche pas avec une requete
selection
pourquoi ??
j'ai le message suivant
impossible de trouver l'objet dans la collection
correspondant au nom ou à la reference ordinale demandée
Function RecupSQL(strQuery As String)
Dim cat As New ADOX.Catalog
Dim qry As Recordset
Dim cmd As ADODB.Command
Set cat.ActiveConnection = CurrentProject.Connection
Set cmd = cat.Procedures(strQuery).Command
RecupSQL = cmd.CommandText
'Debug.Print RecupSQL
end function
maintenant j'aimerai améliorer ma fonction pourque l'on puisse l'appeler avec n'importe quelle requete comment faire pour tester le type de requete (sélection, analyse croisée..) avant la ligne
Set cmd = cat.Procedures(strQuery).Command ou Set cmd = cat.Views(strQuery).Command
MJ
-----Message d'origine----- Bonjour,
Les requêtes "Sélection" sans paramètres sont considérées comme des vues (et
non comme des procédures stockées). C'est pourquoi, pour ce type de requête, il faut utiliser la collection
"Views" de l'objet "cat", au lieu d'utiliser la collection "Procedures".
Benoît Compoint.
"MJ" wrote in message
news:0be801c398a7$b7fa4b20$ Bonjour,
la fonction suivante me permet de récuperer l'instruction sql d'une requete ..........mais cela ne marche pas avec une requete selection
pourquoi ?? j'ai le message suivant impossible de trouver l'objet dans la collection correspondant au nom ou à la reference ordinale demandée
Function RecupSQL(strQuery As String)
Dim cat As New ADOX.Catalog Dim qry As Recordset Dim cmd As ADODB.Command Set cat.ActiveConnection = CurrentProject.Connection Set cmd = cat.Procedures(strQuery).Command
RecupSQL = cmd.CommandText 'Debug.Print RecupSQL end function
merci de votre aide MJ
.
Benoit Compoint
Bonjour,
Il y au moins deux solutions possibles :
1. On utilise l'intruction "On Error Resume Next" avant la première ligne "Set cmd=" de façon à éviter l'affichage d'une erreur. On teste ensuite si une erreur est survenue, et si c'est le cas on exécute la second instruction "Set cmd=" (en utilisant une collection différente, par exemple "Views" si la première instruction utilisait la collection "Procedures").
2. On parcourt la collection "Views" avec une boucle "For Each ... in ..." en testant la valeur de la propriété Name de chaque élément de la collection "Views". Si aucun objet de type "View" n'a le nom de la requête recherchée, il s'agit probablement d'un objet de type "Procedure", on peut dans ce cas utiliser l'instruction Set cmd = cat.Procedures(strQuery).Command
Benoît Compoint
"MJ" wrote in message news:023d01c39939$24f04ea0$ Bonjour,
c'est ok ............un grand merci
maintenant j'aimerai améliorer ma fonction pourque l'on puisse l'appeler avec n'importe quelle requete comment faire pour tester le type de requete (sélection, analyse croisée..) avant la ligne
Set cmd = cat.Procedures(strQuery).Command ou Set cmd = cat.Views(strQuery).Command
MJ
-----Message d'origine----- Bonjour,
Les requêtes "Sélection" sans paramètres sont considérées comme des vues (et
non comme des procédures stockées). C'est pourquoi, pour ce type de requête, il faut utiliser la collection
"Views" de l'objet "cat", au lieu d'utiliser la collection "Procedures".
Benoît Compoint.
"MJ" wrote in message
news:0be801c398a7$b7fa4b20$ Bonjour,
la fonction suivante me permet de récuperer l'instruction sql d'une requete ..........mais cela ne marche pas avec une requete selection
pourquoi ?? j'ai le message suivant impossible de trouver l'objet dans la collection correspondant au nom ou à la reference ordinale demandée
Function RecupSQL(strQuery As String)
Dim cat As New ADOX.Catalog Dim qry As Recordset Dim cmd As ADODB.Command Set cat.ActiveConnection = CurrentProject.Connection Set cmd = cat.Procedures(strQuery).Command
RecupSQL = cmd.CommandText 'Debug.Print RecupSQL end function
merci de votre aide MJ
.
Bonjour,
Il y au moins deux solutions possibles :
1. On utilise l'intruction "On Error Resume Next" avant la première ligne
"Set cmd=" de façon à éviter l'affichage d'une erreur.
On teste ensuite si une erreur est survenue, et si c'est le cas on exécute
la second instruction "Set cmd=" (en utilisant une collection différente,
par exemple "Views" si la première instruction utilisait la collection
"Procedures").
2. On parcourt la collection "Views" avec une boucle "For Each ... in ..."
en testant la valeur de la propriété Name de chaque élément de la collection
"Views".
Si aucun objet de type "View" n'a le nom de la requête recherchée, il s'agit
probablement d'un objet de type "Procedure", on peut dans ce cas utiliser
l'instruction Set cmd = cat.Procedures(strQuery).Command
Benoît Compoint
"MJ" <anonymous@discussions.microsoft.com> wrote in message
news:023d01c39939$24f04ea0$a001280a@phx.gbl...
Bonjour,
c'est ok ............un grand merci
maintenant j'aimerai améliorer ma fonction pourque l'on
puisse l'appeler avec n'importe quelle requete
comment faire pour tester le type de requete (sélection,
analyse croisée..) avant la ligne
Set cmd = cat.Procedures(strQuery).Command
ou Set cmd = cat.Views(strQuery).Command
MJ
-----Message d'origine-----
Bonjour,
Les requêtes "Sélection" sans paramètres sont considérées
comme des vues (et
non comme des procédures stockées).
C'est pourquoi, pour ce type de requête, il faut utiliser
la collection
"Views" de l'objet "cat", au lieu d'utiliser la
collection "Procedures".
Benoît Compoint.
"MJ" <anonymous@discussions.microsoft.com> wrote in
message
la fonction suivante me permet de récuperer l'instruction
sql d'une requete
..........mais cela ne marche pas avec une requete
selection
pourquoi ??
j'ai le message suivant
impossible de trouver l'objet dans la collection
correspondant au nom ou à la reference ordinale demandée
Function RecupSQL(strQuery As String)
Dim cat As New ADOX.Catalog
Dim qry As Recordset
Dim cmd As ADODB.Command
Set cat.ActiveConnection = CurrentProject.Connection
Set cmd = cat.Procedures(strQuery).Command
RecupSQL = cmd.CommandText
'Debug.Print RecupSQL
end function
1. On utilise l'intruction "On Error Resume Next" avant la première ligne "Set cmd=" de façon à éviter l'affichage d'une erreur. On teste ensuite si une erreur est survenue, et si c'est le cas on exécute la second instruction "Set cmd=" (en utilisant une collection différente, par exemple "Views" si la première instruction utilisait la collection "Procedures").
2. On parcourt la collection "Views" avec une boucle "For Each ... in ..." en testant la valeur de la propriété Name de chaque élément de la collection "Views". Si aucun objet de type "View" n'a le nom de la requête recherchée, il s'agit probablement d'un objet de type "Procedure", on peut dans ce cas utiliser l'instruction Set cmd = cat.Procedures(strQuery).Command
Benoît Compoint
"MJ" wrote in message news:023d01c39939$24f04ea0$ Bonjour,
c'est ok ............un grand merci
maintenant j'aimerai améliorer ma fonction pourque l'on puisse l'appeler avec n'importe quelle requete comment faire pour tester le type de requete (sélection, analyse croisée..) avant la ligne
Set cmd = cat.Procedures(strQuery).Command ou Set cmd = cat.Views(strQuery).Command
MJ
-----Message d'origine----- Bonjour,
Les requêtes "Sélection" sans paramètres sont considérées comme des vues (et
non comme des procédures stockées). C'est pourquoi, pour ce type de requête, il faut utiliser la collection
"Views" de l'objet "cat", au lieu d'utiliser la collection "Procedures".
Benoît Compoint.
"MJ" wrote in message
news:0be801c398a7$b7fa4b20$ Bonjour,
la fonction suivante me permet de récuperer l'instruction sql d'une requete ..........mais cela ne marche pas avec une requete selection
pourquoi ?? j'ai le message suivant impossible de trouver l'objet dans la collection correspondant au nom ou à la reference ordinale demandée
Function RecupSQL(strQuery As String)
Dim cat As New ADOX.Catalog Dim qry As Recordset Dim cmd As ADODB.Command Set cat.ActiveConnection = CurrentProject.Connection Set cmd = cat.Procedures(strQuery).Command
RecupSQL = cmd.CommandText 'Debug.Print RecupSQL end function
merci de votre aide MJ
.
MJ
Bonjour,
j'ai opte pour la seconde solution, mais je ne suis pas arrivee à parcourir la collection avec la boucle For Each
voici ma fonction qui a l'air de marcher
Dim cat As New ADOX.Catalog Dim qry As Recordset Dim cmd As ADODB.Command Set cat.ActiveConnection = CurrentProject.Connection
Dim nbViews, nbProcedures, i nbViews = cat.Views.Count For i = 0 To nbViews - 1 If strQuery = cat.Views(i).Name Then Set cmd = cat.Views(strQuery).Command End If Next i
nbProcedures = cat.Procedures.Count For i = 0 To nbProcedures - 1 If strQuery = cat.Procedures(i).Name Then Set cmd = cat.Procedures(strQuery).Command End If Next i
RecupSQL = cmd.CommandText
pourriez-vous me donner la syntaxe pour utiliser For Each..........in
bonne journée et encore merci MJ
-----Message d'origine----- Bonjour,
Il y au moins deux solutions possibles :
1. On utilise l'intruction "On Error Resume Next" avant la première ligne
"Set cmd=" de façon à éviter l'affichage d'une erreur. On teste ensuite si une erreur est survenue, et si c'est le cas on exécute
la second instruction "Set cmd=" (en utilisant une collection différente,
par exemple "Views" si la première instruction utilisait la collection
"Procedures").
2. On parcourt la collection "Views" avec une boucle "For Each ... in ..."
en testant la valeur de la propriété Name de chaque élément de la collection
"Views". Si aucun objet de type "View" n'a le nom de la requête recherchée, il s'agit
probablement d'un objet de type "Procedure", on peut dans ce cas utiliser
l'instruction Set cmd = cat.Procedures(strQuery).Command
Benoît Compoint
"MJ" wrote in message
news:023d01c39939$24f04ea0$ Bonjour,
c'est ok ............un grand merci
maintenant j'aimerai améliorer ma fonction pourque l'on puisse l'appeler avec n'importe quelle requete comment faire pour tester le type de requete (sélection, analyse croisée..) avant la ligne
Set cmd = cat.Procedures(strQuery).Command ou Set cmd = cat.Views(strQuery).Command
MJ
-----Message d'origine----- Bonjour,
Les requêtes "Sélection" sans paramètres sont considérées comme des vues (et
non comme des procédures stockées). C'est pourquoi, pour ce type de requête, il faut utiliser la collection
"Views" de l'objet "cat", au lieu d'utiliser la collection "Procedures".
Benoît Compoint.
"MJ" wrote in message
news:0be801c398a7$b7fa4b20$ Bonjour,
la fonction suivante me permet de récuperer l'instruction sql d'une requete ..........mais cela ne marche pas avec une requete selection
pourquoi ?? j'ai le message suivant impossible de trouver l'objet dans la collection correspondant au nom ou à la reference ordinale demandée
Function RecupSQL(strQuery As String)
Dim cat As New ADOX.Catalog Dim qry As Recordset Dim cmd As ADODB.Command Set cat.ActiveConnection = CurrentProject.Connection Set cmd = cat.Procedures(strQuery).Command
RecupSQL = cmd.CommandText 'Debug.Print RecupSQL end function
merci de votre aide MJ
.
.
Bonjour,
j'ai opte pour la seconde solution, mais je ne suis pas
arrivee à parcourir la collection avec la boucle For Each
voici ma fonction qui a l'air de marcher
Dim cat As New ADOX.Catalog
Dim qry As Recordset
Dim cmd As ADODB.Command
Set cat.ActiveConnection = CurrentProject.Connection
Dim nbViews, nbProcedures, i
nbViews = cat.Views.Count
For i = 0 To nbViews - 1
If strQuery = cat.Views(i).Name Then
Set cmd = cat.Views(strQuery).Command
End If
Next i
nbProcedures = cat.Procedures.Count
For i = 0 To nbProcedures - 1
If strQuery = cat.Procedures(i).Name Then
Set cmd = cat.Procedures(strQuery).Command
End If
Next i
RecupSQL = cmd.CommandText
pourriez-vous me donner la syntaxe pour utiliser
For Each..........in
bonne journée et encore merci
MJ
-----Message d'origine-----
Bonjour,
Il y au moins deux solutions possibles :
1. On utilise l'intruction "On Error Resume Next" avant
la première ligne
"Set cmd=" de façon à éviter l'affichage d'une erreur.
On teste ensuite si une erreur est survenue, et si c'est
le cas on exécute
la second instruction "Set cmd=" (en utilisant une
collection différente,
par exemple "Views" si la première instruction utilisait
la collection
"Procedures").
2. On parcourt la collection "Views" avec une boucle "For
Each ... in ..."
en testant la valeur de la propriété Name de chaque
élément de la collection
"Views".
Si aucun objet de type "View" n'a le nom de la requête
recherchée, il s'agit
probablement d'un objet de type "Procedure", on peut dans
ce cas utiliser
l'instruction Set cmd = cat.Procedures(strQuery).Command
Benoît Compoint
"MJ" <anonymous@discussions.microsoft.com> wrote in
message
maintenant j'aimerai améliorer ma fonction pourque l'on
puisse l'appeler avec n'importe quelle requete
comment faire pour tester le type de requete (sélection,
analyse croisée..) avant la ligne
Set cmd = cat.Procedures(strQuery).Command
ou Set cmd = cat.Views(strQuery).Command
MJ
-----Message d'origine-----
Bonjour,
Les requêtes "Sélection" sans paramètres sont considérées
comme des vues (et
non comme des procédures stockées).
C'est pourquoi, pour ce type de requête, il faut utiliser
la collection
"Views" de l'objet "cat", au lieu d'utiliser la
collection "Procedures".
Benoît Compoint.
"MJ" <anonymous@discussions.microsoft.com> wrote in
message
la fonction suivante me permet de récuperer l'instruction
sql d'une requete
..........mais cela ne marche pas avec une requete
selection
pourquoi ??
j'ai le message suivant
impossible de trouver l'objet dans la collection
correspondant au nom ou à la reference ordinale demandée
Function RecupSQL(strQuery As String)
Dim cat As New ADOX.Catalog
Dim qry As Recordset
Dim cmd As ADODB.Command
Set cat.ActiveConnection = CurrentProject.Connection
Set cmd = cat.Procedures(strQuery).Command
RecupSQL = cmd.CommandText
'Debug.Print RecupSQL
end function
j'ai opte pour la seconde solution, mais je ne suis pas arrivee à parcourir la collection avec la boucle For Each
voici ma fonction qui a l'air de marcher
Dim cat As New ADOX.Catalog Dim qry As Recordset Dim cmd As ADODB.Command Set cat.ActiveConnection = CurrentProject.Connection
Dim nbViews, nbProcedures, i nbViews = cat.Views.Count For i = 0 To nbViews - 1 If strQuery = cat.Views(i).Name Then Set cmd = cat.Views(strQuery).Command End If Next i
nbProcedures = cat.Procedures.Count For i = 0 To nbProcedures - 1 If strQuery = cat.Procedures(i).Name Then Set cmd = cat.Procedures(strQuery).Command End If Next i
RecupSQL = cmd.CommandText
pourriez-vous me donner la syntaxe pour utiliser For Each..........in
bonne journée et encore merci MJ
-----Message d'origine----- Bonjour,
Il y au moins deux solutions possibles :
1. On utilise l'intruction "On Error Resume Next" avant la première ligne
"Set cmd=" de façon à éviter l'affichage d'une erreur. On teste ensuite si une erreur est survenue, et si c'est le cas on exécute
la second instruction "Set cmd=" (en utilisant une collection différente,
par exemple "Views" si la première instruction utilisait la collection
"Procedures").
2. On parcourt la collection "Views" avec une boucle "For Each ... in ..."
en testant la valeur de la propriété Name de chaque élément de la collection
"Views". Si aucun objet de type "View" n'a le nom de la requête recherchée, il s'agit
probablement d'un objet de type "Procedure", on peut dans ce cas utiliser
l'instruction Set cmd = cat.Procedures(strQuery).Command
Benoît Compoint
"MJ" wrote in message
news:023d01c39939$24f04ea0$ Bonjour,
c'est ok ............un grand merci
maintenant j'aimerai améliorer ma fonction pourque l'on puisse l'appeler avec n'importe quelle requete comment faire pour tester le type de requete (sélection, analyse croisée..) avant la ligne
Set cmd = cat.Procedures(strQuery).Command ou Set cmd = cat.Views(strQuery).Command
MJ
-----Message d'origine----- Bonjour,
Les requêtes "Sélection" sans paramètres sont considérées comme des vues (et
non comme des procédures stockées). C'est pourquoi, pour ce type de requête, il faut utiliser la collection
"Views" de l'objet "cat", au lieu d'utiliser la collection "Procedures".
Benoît Compoint.
"MJ" wrote in message
news:0be801c398a7$b7fa4b20$ Bonjour,
la fonction suivante me permet de récuperer l'instruction sql d'une requete ..........mais cela ne marche pas avec une requete selection
pourquoi ?? j'ai le message suivant impossible de trouver l'objet dans la collection correspondant au nom ou à la reference ordinale demandée
Function RecupSQL(strQuery As String)
Dim cat As New ADOX.Catalog Dim qry As Recordset Dim cmd As ADODB.Command Set cat.ActiveConnection = CurrentProject.Connection Set cmd = cat.Procedures(strQuery).Command
RecupSQL = cmd.CommandText 'Debug.Print RecupSQL end function