OVH Cloud OVH Cloud

Parametrage des TOP

5 réponses
Avatar
Pitalugue
Bonsoir,

j'ai plusieur requetes qui effectue une selection des top 10 de plusieurs
tables differentes.
Cependant a chaque fois que je souhaite extraire autre chose que le top 10
(ex Top 100 ) je dois me repalucher tous les script sql de chaque requete.
Quel est le moyen d'ecrire a un seul endroit le parametre du TOP?

Pitalugue

5 réponses

Avatar
Pitalugue
bonsoir, quelqu'un aurait il une idée ?

j'ai plusieur requetes qui effectue une selection des top 10 de plusieurs
tables differentes.
Cependant a chaque fois que je souhaite extraire autre chose que le top 10
(ex Top 100 ) je dois me repalucher tous les script sql de chaque requete.
Quel est le moyen d'ecrire a un seul endroit le parametre du TOP?

Pitalugue




Avatar
3stone
Salut,

"Pitalugue"
j'ai plusieur requetes qui effectue une selection des top 10 de plusieurs
tables differentes.
Cependant a chaque fois que je souhaite extraire autre chose que le top 10
(ex Top 100 ) je dois me repalucher tous les script sql de chaque requete.
Quel est le moyen d'ecrire a un seul endroit le parametre du TOP?




Si ce sont des requêtes enregistrées, je ne vois pas comment contourner...

Mais, si tu doit triturer à ce point tes requêtes, pourquoi ne pas les
construire de facon dynamique ? a partir d'un formulaire ?
Et là, tu pourras faire à loisir...


--
A+
Pierre (3stone) Access MVP
-----------------------------
http://users.skynet.be/mpfa
-----------------------------

Avatar
Eric
"Pitalugue" écrivait
news:c88hcq$m97$:

Bonsoir,

j'ai plusieur requetes qui effectue une selection des top 10 de
plusieurs tables differentes.
Cependant a chaque fois que je souhaite extraire autre chose que le
top 10 (ex Top 100 ) je dois me repalucher tous les script sql de
chaque requete. Quel est le moyen d'ecrire a un seul endroit le
parametre du TOP?

Pitalugue





Bonsoir,

Alternative à ce que propose Pierre, les écrire toutes dans un module VBA
et les appeler quand bon te semble. Du genre :

Sub test()
Dim strSQL As String, nb As String, rq As DAO.QueryDef, predicatTop As
String
nb = InputBox("Top Combien ?")
If Len(nb) > 0 Then
predicatTop = " Top " & CInt(nb)
Else
predicatTop = "" ' Cancel equivalent à OK sans renseigner
End If
strSQL = "Select" & predicatTop & " societe_client from tclient order
by societe_client;"
Set rq = CurrentDb.CreateQueryDef("TempQry", strSQL)
DoCmd.OpenQuery "TempQry"
CurrentDb.QueryDefs.Delete "TempQry"
End Sub

A+
Eric

Avatar
Pitalugue
rebonsoir et merci,

j'ai compris le principe du code vba mais il plante sur rq As DAO.QueryDef.

Je ne maitrise pas assez pour savoir d'ou cela peut venir. ..

merci

"Eric" a écrit dans le message de news:

"Pitalugue" écrivait
news:c88hcq$m97$:

Bonsoir,

j'ai plusieur requetes qui effectue une selection des top 10 de
plusieurs tables differentes.
Cependant a chaque fois que je souhaite extraire autre chose que le
top 10 (ex Top 100 ) je dois me repalucher tous les script sql de
chaque requete. Quel est le moyen d'ecrire a un seul endroit le
parametre du TOP?

Pitalugue





Bonsoir,

Alternative à ce que propose Pierre, les écrire toutes dans un module VBA
et les appeler quand bon te semble. Du genre :

Sub test()
Dim strSQL As String, nb As String, rq As DAO.QueryDef, predicatTop As
String
nb = InputBox("Top Combien ?")
If Len(nb) > 0 Then
predicatTop = " Top " & CInt(nb)
Else
predicatTop = "" ' Cancel equivalent à OK sans renseigner
End If
strSQL = "Select" & predicatTop & " societe_client from tclient order
by societe_client;"
Set rq = CurrentDb.CreateQueryDef("TempQry", strSQL)
DoCmd.OpenQuery "TempQry"
CurrentDb.QueryDefs.Delete "TempQry"
End Sub

A+
Eric



Avatar
Eric
Bonsoir,

il faut que tu charges la Référence Microsoft DAO 3.x Object Library (3.6
est la derniere je crois) dans la fenetre VBA .
Menu Outils Références...

Eric

"Pitalugue" écrivait
news:c8b9k1$b4p$:

rebonsoir et merci,

j'ai compris le principe du code vba mais il plante sur rq As
DAO.QueryDef.

Je ne maitrise pas assez pour savoir d'ou cela peut venir. ..

merci

"Eric" a écrit dans le message de news:

"Pitalugue" écrivait
news:c88hcq$m97$:

Bonsoir,

j'ai plusieur requetes qui effectue une selection des top 10 de
plusieurs tables differentes.
Cependant a chaque fois que je souhaite extraire autre chose que le
top 10 (ex Top 100 ) je dois me repalucher tous les script sql de
chaque requete. Quel est le moyen d'ecrire a un seul endroit le
parametre du TOP?

Pitalugue





Bonsoir,

Alternative à ce que propose Pierre, les écrire toutes dans un module
VBA et les appeler quand bon te semble. Du genre :

Sub test()
Dim strSQL As String, nb As String, rq As DAO.QueryDef,
predicatTop As
String
nb = InputBox("Top Combien ?")
If Len(nb) > 0 Then
predicatTop = " Top " & CInt(nb)
Else
predicatTop = "" ' Cancel equivalent à OK sans renseigner
End If
strSQL = "Select" & predicatTop & " societe_client from tclient
order
by societe_client;"
Set rq = CurrentDb.CreateQueryDef("TempQry", strSQL)
DoCmd.OpenQuery "TempQry"
CurrentDb.QueryDefs.Delete "TempQry"
End Sub

A+
Eric