Select MAX...

Résolu
cs_skeut Messages postés 14 Date d'inscription mercredi 26 janvier 2005 Statut Membre Dernière intervention 11 juillet 2007 - 14 mars 2006 à 09:12
cs_moustachu Messages postés 1079 Date d'inscription jeudi 14 novembre 2002 Statut Membre Dernière intervention 1 janvier 2012 - 14 mars 2006 à 10:17
Bonjour,

j'ai une table "Programmes" et une table "Versions"; la table version contient toutes les versions des programmes. Dans mon formulaire Programmes, j'ai un sous-formulaire Versions_SF avec un contôle ztNoVersion. J'aimerais éviter à l'utilisateur de saisir le numéro de version et qu'il se génère automatiquement; sur entrée de mon sous-formulaire, j'ai un événement avec ceci:

ztNoVersion = genereNoVersion()

Le problème est qu'il ne me génère pas un numéro de version égale à la version la plus grande du programme + 1 mais il prend le plus grand numéro de toutes les versions et fait + 1.

le code de ma fct est ci-dessous, merci de votre aide...

Public Function genereNoVersion() As Long
' Fonction qui génère automatiquement le numéro de version (Versions.NoVersion)


Dim rst As DAO.RecordsetSet rst  CurrentDb.OpenRecordset("SELECT MAX(Versions.NoVersion)AS MaxNoVersion FROM Versions,Programmes WHERE Programmes.NUMERO Versions.Num_Programme")


If IsNull(rst!MaxNoVersion.Value) Then
    'résultat de la requête vide, le rst retourne une ligne avec null dans la valeur
    genereNoVersion = 1
Else
    genereNoVersion = rst.Fields("maxNoVersion").Value + 1


End If


rst.Close
Set rst = Nothing


End Function


skeut

3 réponses

cs_vpoyo Messages postés 363 Date d'inscription vendredi 14 février 2003 Statut Membre Dernière intervention 20 avril 2010 6
14 mars 2006 à 09:56
En fait il veut le numéro de version le plus grand +1 d'un programme si
j'ai bien compris. et si c'est ca faudrait peut être commencer par
filtrer sur le programme souhaiter non ? donc rajouter une clause dans
le where --> AND Programme.Nom = 'truc shmuck'
3
cs_elpens Messages postés 260 Date d'inscription vendredi 2 décembre 2005 Statut Membre Dernière intervention 3 novembre 2007
14 mars 2006 à 09:51
Je ne comprend pas bien ta question :
Tu recherches le plus grand chiffre de version (en l'occurence ce que tu as fait) ou la dernière entrée dans ta table...
Si c'est la deuxième version, tu dois prendre ton Max() sur l'id.

En esperant ne pas etre a cote de la plaque...

ElpenS
0
cs_moustachu Messages postés 1079 Date d'inscription jeudi 14 novembre 2002 Statut Membre Dernière intervention 1 janvier 2012
14 mars 2006 à 10:17
Bonjour,
vpoyo a raison

++
Moustachu
0