Il faut d'abord déterminer d'où vient l'erreur.
Pour celà:
Dans le code vous mettez le ON ERROR en remarque en le faisant précéder d'une simple quote, comme ceci : 'On Error GoTo Err.
Ceci va annuler l'interception des erreurs. Réexécutez l'application.
Lorsque l'erreur surviendra, Access vous affichera une fenêtre, choisissez Déboguage.
L'affichage basculera alors vers le VBA (Visual Basic for Application : le language que nous utilisons)
Le programme sera arreté sur la lgne fautive.
En déplaçant le curseur de la souris sur les différentes variables dans le code, vous verrez leur valeur. Ceci vous aidera à déterminer ce qui provoque cette erreur.
L'appui sur la touche F8 exécute le code ligne par ligne.
La touche F5 exécute le code jusqu'à la fin, sauf détection d'erreur.
Comme les variables Nom1 et Nom2 ne peuvent plus être NULL, le problème provient probablement de Numser, et certainement quand le programme veut créer un nouvel enregistrement, pour éviter ce problème vous pouvez mettre la propriété du formulaire "Ajout autorisé" à Non.
Attention que Numser est déclaré en "String" (Chaîne de caractères) alors qu'il s'agit probablement d'un Long (voir définition dans la table) il faudrait alors le déclarer comme suit Dim Numser as long; mais alors dans les concaténations (Me!Image1.Picture = Chemin & Numser & " (" & Nom1 & ").jpg") il faut transformer la variable Long en String. Ceci se fait par la fonction Cstr
Me!Image1.Picture = Chemin & cstr(Numser) & " (" & Nom1 & ").jpg"
Allez, courrage ...
Ne dites jamais à votre ordinateur que vous êtes pressés !