Bonsoir,
voici une exemple de fonction.
Code à coller dans un module de code :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| ' Variable globale
Dim bRandomize As Boolean
' Fonction
Function GetRndRecord(strTable As String, strField As String) As Variant
Dim lgRnd As Long, lgMax As Long
Dim db As DAO.Database, rs As DAO.Recordset
If bRandomize = False Then
Randomize
bRandomize = True
End If
Set db = CurrentDb
Set rs = db.OpenRecordset(strTable, dbOpenSnapshot)
If Not rs.EOF Then
rs.MoveLast
lgMax = rs.RecordCount - 1
rs.MoveFirst
lgRnd = Rnd() * lgMax
rs.Move lgRnd
GetRndRecord = rs(strField)
End If
rs.Close
Set rs = Nothing
Set db = Nothing
End Function |
La fonction renvoie un champ d'une table ou d'une requête.
strTable : Nom d'une table ou nom d'une requête
strField : Nom d'un champ dans la table ou la requête
Par exemple, si j'ai une table tblClients(id, Nom, ...) et que je veux afficher le nom d'un client au hasard dans un contrôle zone de texte d'un formulaire, dans la propriété Source Contrôle de ce contrôle, je mets :
=GetRndRecord("tblClients", "Nom")
A+
Partager