Fonction pour récupérer le sql d'une requete

Le
Jacques
Bonjour,

Pour récupérer le sql d’une requête qui se trouve stocké dans un=
e
table je voudrais faire
Une fonction .

Code de mon module :

Function RecupereSQL(strNomRqt As String)
On Error GoTo err
Dim Db As DAO.Database
Dim RstTable As DAO.Recordset
Dim strSQLModele As String

Set Db = CurrentDb

'-- Ouvre la tbl requêtes
Set RstTable = Db.OpenRecordset("SELECT * FROM [tbl Requetes]
WHERE NomRqt=" & Chr(34) & strNomRqt & Chr(34))

'-- Si la requête est trouvée dans la table,
If Not RstTable.EOF Then

'-- Récupère le code correspondant
strSQLModele = RstTable.Fields("CodeRqt")

End if
err:
End Fonction

Code sur le formulaire :

If Me!Cadre48 = 3 Then
strNomRqt = "qdfBénévoles"

call RecupereSQL

strSql = strSQLModele

Mais je n’arrive pas à récupérer le sql.

Ou se situe mon erreur ?

Merci pour votre aide.

Salutations.
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
db
Le #18841001
Jacques a écrit :
Bonjour,

Pour récupérer le sql d’une requête qui se trouve stocké dans une
table je voudrais faire
Une fonction .

Code de mon module :

Function RecupereSQL(strNomRqt As String)
On Error GoTo err
Dim Db As DAO.Database
Dim RstTable As DAO.Recordset
Dim strSQLModele As String

Set Db = CurrentDb

'-- Ouvre la tbl requêtes
Set RstTable = Db.OpenRecordset("SELECT * FROM [tbl Requetes]
WHERE NomRqt=" & Chr(34) & strNomRqt & Chr(34))

'-- Si la requête est trouvée dans la table,
If Not RstTable.EOF Then

'-- Récupère le code correspondant
strSQLModele = RstTable.Fields("CodeRqt")

End if
err:
End Fonction

Code sur le formulaire :

If Me!Cadre48 = 3 Then
strNomRqt = "qdfBénévoles"

call RecupereSQL

strSql = strSQLModele

Mais je n’arrive pas à récupérer le sql.

Ou se situe mon erreur ?

Merci pour votre aide.

Salutations.



Bonsoir,

Il me semble que je ferais plutôt, sans utiliser de fonction spécifique :

StrSql=nZ(dLookUp("CodeRqt","[tbl Requetes]","NomRqt=" & chr(34) &
StrNomRqt & chr(34)),"")

Si vous tenez à la fonction, ce serait plutot :
i

Function strSQLModele (strNomRqt As String) as String
On Error GoTo err
Dim Db As DAO.Database
Dim RstTable As DAO.Recordset

Set Db = CurrentDb

'-- Ouvre la tbl requêtes
Set RstTable = Db.OpenRecordset("SELECT * FROM [tbl Requetes]
WHERE NomRqt=" & Chr(34) & strNomRqt & Chr(34))

'-- Si la requête est trouvée dans la table,
If Not RstTable.EOF Then

'-- Récupère le code correspondant
strSQLModele = RstTable.Fields("CodeRqt") ' Pas sûr qu'il ne
faille pas écrire ici RstTable.Fields("CodeRqt").value ?

else
strSqlModele=""

End if
err:
set RstTable=nothing
set db=nothing
End Fonction

Code sur le formulaire :

If Me!Cadre48 = 3 Then
strNomRqt = "qdfBénévoles"


strSql = strSQLModele(strNomRqt)



HTH

db
jacques
Le #18842571
On 6 mar, 20:57, db
Jacques a écrit :





> Bonjour,

> Pour récupérer le sql  d’une requête qui se trouve stocké d ans une
> table je voudrais faire
> Une fonction .

> Code de mon module :

> Function RecupereSQL(strNomRqt As String)
> On Error GoTo err
> Dim Db As DAO.Database
> Dim RstTable As DAO.Recordset
> Dim strSQLModele As String

>     Set Db = CurrentDb

> '-- Ouvre la tbl requêtes
>     Set RstTable = Db.OpenRecordset("SELECT * FROM [tbl Requetes]
> WHERE NomRqt=" & Chr(34) & strNomRqt & Chr(34))

> '-- Si la requête est trouvée dans la table,
>     If Not RstTable.EOF Then

> '-- Récupère le code correspondant
>     strSQLModele = RstTable.Fields("CodeRqt")

>  End if
> err:
> End Fonction

> Code sur le formulaire :

> If Me!Cadre48 = 3 Then
>         strNomRqt = "qdfBénévoles"

>          call RecupereSQL

>         strSql = strSQLModele

> Mais je n’arrive pas à récupérer le sql.

> Ou se situe mon erreur ?

> Merci pour votre aide.

> Salutations.

Bonsoir,

Il me semble que je ferais plutôt, sans utiliser de fonction spécifiq ue :

StrSql=nZ(dLookUp("CodeRqt","[tbl Requetes]","NomRqt=" & chr(34) &
StrNomRqt & chr(34)),"")

Si vous tenez à la fonction, ce serait plutot :
i

  Function strSQLModele (strNomRqt As String) as String
  On Error GoTo err
  Dim Db As DAO.Database
  Dim RstTable As DAO.Recordset

      Set Db = CurrentDb

  '-- Ouvre la tbl requêtes
      Set RstTable = Db.OpenRecordset("SELECT * FROM [tbl Requete s]
  WHERE NomRqt=" & Chr(34) & strNomRqt & Chr(34))

  '-- Si la requête est trouvée dans la table,
      If Not RstTable.EOF Then

  '-- Récupère le code correspondant
      strSQLModele = RstTable.Fields("CodeRqt")   ' Pas sûr q u'il ne
faille pas écrire ici RstTable.Fields("CodeRqt").value ?

   else
        strSqlModele=""

   End if
  err:
set RstTable=nothing
set db=nothing
  End Fonction

  Code sur le formulaire :

  If Me!Cadre48 = 3 Then
          strNomRqt = "qdfBénévoles"

          strSql = strSQLModele(strNomRqt)

HTH

db- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -



Bonsoir db,

Merci pour ta réponse.

La recherche par dLookUp fonctionne très bien, mais pas la Function
RecupereSql qui me
donne une erreur sur la ligne strSql = strSQLModele(strNomRqt) Erreur
de compilation
Tableau attendu.

Code sur le formulaire :
If Me!Cadre48 = 3 Then
strNomRqt = "qdfBénévoles"
strSql = strSQLModele(strNomRqt)

Par contre en mettant cette ligne, le code passe mais le sql est vide
strSql = RecupereSQL(strNomRqt)

Salutations
Eric
Le #18843161
Bonjour,

Il faut que tu modifies la ligne suivante de la fonction RecupereSQL
strSQLModele = RstTable.Fields("CodeRqt")
par :
RecupereSQL = RstTable.Fields("CodeRqt")

et dans la procédure évènementielle
If Me!Cadre48 = 3 Then
strNomRqt = "qdfBénévoles"
strSql = RecupereSQL(strNomRqt)


Jacques a écrit :
Bonjour,

Pour récupérer le sql d’une requête qui se trouve stocké dans une
table je voudrais faire
Une fonction .

Code de mon module :

Function RecupereSQL(strNomRqt As String)
On Error GoTo err
Dim Db As DAO.Database
Dim RstTable As DAO.Recordset
Dim strSQLModele As String

Set Db = CurrentDb

'-- Ouvre la tbl requêtes
Set RstTable = Db.OpenRecordset("SELECT * FROM [tbl Requetes]
WHERE NomRqt=" & Chr(34) & strNomRqt & Chr(34))

'-- Si la requête est trouvée dans la table,
If Not RstTable.EOF Then

'-- Récupère le code correspondant
strSQLModele = RstTable.Fields("CodeRqt")

End if
err:
End Fonction

Code sur le formulaire :

If Me!Cadre48 = 3 Then
strNomRqt = "qdfBénévoles"

call RecupereSQL

strSql = strSQLModele

Mais je n’arrive pas à récupérer le sql.

Ou se situe mon erreur ?

Merci pour votre aide.

Salutations.



--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
db
Le #18843241
jacques a écrit :


La recherche par dLookUp fonctionne très bien, mais pas la Function
RecupereSql qui me
donne une erreur sur la ligne strSql = strSQLModele(strNomRqt) Erreur
de compilation
Tableau attendu.

Code sur le formulaire :
If Me!Cadre48 = 3 Then
strNomRqt = "qdfBénévoles"
strSql = strSQLModele(strNomRqt)

Par contre en mettant cette ligne, le code passe mais le sql est vide
strSql = RecupereSQL(strNomRqt)

Salutations



Bonjour,

Dans le code que je vous ai indiqué, le nom de la fonction a changé :

Function strSQLModele (strNomRqt As String) as String

(et non plus Function RecupereSQL)

Au début du module, avez-vous "Option Explicit", pour obliger à la
déclaration de variables ?

Bonne journée.

db
jacques
Le #18844871
On 7 mar, 08:31, Eric
Bonjour,

Il faut que tu modifies la ligne suivante de la fonction RecupereSQL
     strSQLModele = RstTable.Fields("CodeRqt")
par :
     RecupereSQL = RstTable.Fields("CodeRqt")

et dans la procédure évènementielle
If Me!Cadre48 = 3 Then
         strNomRqt = "qdfBénévoles"
         strSql = RecupereSQL(strNomRqt)

Jacques a écrit :





> Bonjour,

> Pour récupérer le sql  d’une requête qui se trouve stocké d ans une
> table je voudrais faire
> Une fonction .

> Code de mon module :

> Function RecupereSQL(strNomRqt As String)
> On Error GoTo err
> Dim Db As DAO.Database
> Dim RstTable As DAO.Recordset
> Dim strSQLModele As String

>     Set Db = CurrentDb

> '-- Ouvre la tbl requêtes
>     Set RstTable = Db.OpenRecordset("SELECT * FROM [tbl Requetes]
> WHERE NomRqt=" & Chr(34) & strNomRqt & Chr(34))

> '-- Si la requête est trouvée dans la table,
>     If Not RstTable.EOF Then

> '-- Récupère le code correspondant
>     strSQLModele = RstTable.Fields("CodeRqt")

>  End if
> err:
> End Fonction

> Code sur le formulaire :

> If Me!Cadre48 = 3 Then
>         strNomRqt = "qdfBénévoles"

>          call RecupereSQL

>         strSql = strSQLModele

> Mais je n’arrive pas à récupérer le sql.

> Ou se situe mon erreur ?

> Merci pour votre aide.

> Salutations.

--
A+
Erichttp://www.mpfa.info/
Archives :http://groups.google.fr/group/microsoft.public.fr.access?hl=f r- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -



Bonjour,

Merci pour votre aide ma fonction marche.

Salutations
Publicité
Poster une réponse
Anonyme