Erreur de compilation: end sub attendu

Bonjour,

Quand je commence à saisir le formulaire, une fenêtre erreur de compilation: end sub attendu apparaît sur la 1ère ligne du code ci-dessous dans la procédure évènementielle avant insertion:

Private Sub Form_BeforeInsert(Cancel As Integer)
Function newnum()
Dim curAnnee As String
curAnnee = Format(Date, "yyyy")

lastnum = DMax("NUM", "table", "NUM like '" & curAnnee & "*'")

If IsNull(lastnum) Then 'pas de n° pour cette année
newnum = curAnnee & "-0001"
Else
newnum = curAnnee & "-" & Format(Right(lastnum, 4) + 1, "0000")
End If

End Function
End Sub

Avez-vous une idée?
Merci beaucoup,

4 réponses

  • Votes
  • Date
  • Date décroissante
  1. Bonjour,

    Il faut retirer les lignes

    Function newnum()
    End Function

    ça devrait fonctionner un peu mieux.
    Penses aussi à définir le type de newnum.
    1. Rebonjour,

      Bon, en fait il faut mettre le end sub juste après le sub.
      Maintenant le code demande d'entrer la valeur num lors de l'éxecution. J'aimerais que ce n° s'incrémente automatiquement à l'ouverture du formulaire.
      Comment faire?
      Merci
      1. Merci de ta réponse. Si j'enlève les lignes, le msg suivant s'affiche: erreur de compilation seuls des commentaires peuvent apparaître après end sub end function ...
        Qu'est-ce que ça signifie?
        Merci bien
        1. Salut,

          Bon OK pour les msg de compilation. Je voudrais appeler une fonction: call nomfunction mais ça me demande d'entrer la valeur dans le champ correspondant alors que je voudrais que cela se fasse automatiquement. J'ai peut-être oublié qqchose dans le code (cf 1ère question).
          Quelqu'un voit?
          Merci et bonne journée,