La table

Comme le nombre d'étiquettes varie cette fois en fonction du client, il faut modifier la table Clients :

  1. Ouvrez la table tbl Clients en mode Création.
  2. Ajoutez un champ Nombre d'étiquettes, de type Numérique, de taille Entier long.
  3. Enregistrez la table.
  4. Passez en saisie sur la table, et définissez le nombre d'étiquettes qui vous intéresse, client par client.

La planche d'étiquettes

Il nous reste à aménager la planche d'étiquettes. Le code ressemble beaucoup à celui de l'article Imprimer plusieurs étiquettes identiques, reportez-vous à cet article pour plus de détails.
  1. Ouvrez votre état Étiquettes en mode Création.
  2. Ajoutez le champ [Nombre d'étiquettes] sur l'état.
  3. Définissez l'événement Sur impression de la zone Détail comme ceci :
Private Sub Détail_Print(Cancel As Integer, PrintCount As Integer)
  If intCompteur >= Nz(Me![Nombre d'étiquettes], 1) - 1 Then
    intCompteur = 0
  Else
    intCompteur = intCompteur + 1
    Me.NextRecord = False
  End If
End Sub
  1. Déclarez également la variable globale intCompteur :
Dim intCompteur As Integer

Imprimer les étiquettes

Pour imprimer les étiquettes manuellement, il suffit d'ouvrir l'état par un double-clic. Et pour automatiser en VBA, vous utiliserez comme d'habitude :
DoCmd.OpenReport "rpt Etiquettes Clients", acViewPreview

Les finitions

Pour que le code VBA fonctionne, il faut que le champ [Nombre d'étiquettes] soit présent sur l'état (vous le voyez dans la capture plus haut, couleur bleu clair, en haut à droite de chaque étiquette). Mais il n'est pas utile que ce champ soit visible, vous pouvez donc :
  1. Ouvrir l'état en mode Création.
  2. Faire apparaître les propriétés du champ [Nombre d'étiquettes].
  3. Réglez la propriété Visible sur Non.