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

  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
    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
      0
      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
        0
        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,
          0