cs_skeut
Messages postés14Date d'inscriptionmercredi 26 janvier 2005StatutMembreDernière intervention11 juillet 2007
-
10 mars 2006 à 14:15
cs_skeut
Messages postés14Date d'inscriptionmercredi 26 janvier 2005StatutMembreDernière intervention11 juillet 2007
-
7 nov. 2006 à 09:24
Bonjour,
j'ai un application qui gère les programmes et leurs différentes versions (1 table programmes, 1 tables versions). Dans mon sous formulaire versions, j'ai un champ "No de version". Je souhaiterais qu'il soit géré automatiquement, pas que l'utilisateur doivent le renseigner.
En fait, il faudrait regarder dans le sous-formulaire "Versions" le plus grand numéro et ajouter 1. Comment puis-je faire cela? J'ai entendu parler de fonctions comme "Lookup", "Vbmax" mais même dans l'aide VBA, je n'ai pas trouvé ce que je cherche.
Est-ce que quelqu'un peut me dire comment elles fonctionnent ?
cs_skeut
Messages postés14Date d'inscriptionmercredi 26 janvier 2005StatutMembreDernière intervention11 juillet 2007 7 nov. 2006 à 09:24
Salut Rhoulz,
A l'époque j'avais utilisé un MAX pour trouver le plus grand numéro de version existant dans ma table pour un programme donné. On peut certainement optimiser mais ça fonctionne.
A tout hazard, voici le code:
Public Function genereNoVersion(ByVal NumProg As Long) As Long
' Fonction qui génère automatiquement le numéro de version
Dim rst As DAO.Recordset
Dim SQLMAX As String
Dim lngNoVersion As Long
SQLMAX "SELECT MAX(NoVersion)AS MaxNoVersion FROM Versions WHERE Num_Programme" & NumProg
Set rst = CurrentDb.OpenRecordset(SQLMAX, 2)
If IsNull(rst!MaxNoVersion.Value) Then
'résultat de la requête vide, le rst retourne une ligne avec null dans la valeur
lngNoVersion = 1
Else
lngNoVersion = rst.Fields("maxNoVersion").Value + 1
End If
rst.Close
Set rst = Nothing
genereNoVersion = lngNoVersion
End Function