Bonjour à tous,
J'ai déjà contourné (maladroitement) ce problème lors d'opérations à faire sur une section de formulaire ou d'état qui pouvait ne pas exister.
Mais là je ne vois pas comment m'en sortir :
Dans la section détail d'un état, j'ai un contrôle boîte de texte indépendant compteur de lignes qui est vide (parcequ'il n'y a rien dans la section détail de l'état).
La variable objet n'est pas initialisée ?
Peut-on "passer par dessus" ce cas de figure à l'aide d'un test qui serait du type :
If MonOBJET Is Nothing Then
---instructions---
Dans la procédure ci-après j'obtiens le message d'erreur 2427 :
"Expression sans paramètre" lorsque la section détail est vide parce qu'on a saisi un numéro de bon de commande qui n'existe pas.
Ce n'est pas un très bon exemple, vous me direz qu'on peut éviter cette erreur en travaillant en amont, mais l'autre exemple du même type serait vraiment plus long à expliquer.
J'aimerais savoir s'il existe un moyen de tester un objet non initialisé.
Et si c'est de cela qu'il s'agit.
Sinon, il ne me reste plus qu'à utiliser le code d'erreur pour quitter la procédure.
NB Je n'ai pas mis la gestion d'erreur ni la libération de la variable objet pour ne pas faire trop long.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 '======================================================================================================= '--Détail_Format '======================================================================================================= '--Déf : Alterne la couleur de fond de chaque ligne de la section détail de l'état en fonction de la ' valeur paire ou impaire du numéro de la ligne (effet "listing"). '------------------------------------------------------------------------------------------------------- ' Private Sub Détail_Format(Cancel As Integer, FormatCount As Integer) Stop 'BtiCTL est un contrôle indépendant, Source = 1, Cumul =True. Dim BtiCTL As TextBox Set BtiCTL = Me.Bti_LIGNEN° ''' 'La section détail est vide (pas de numéro de ligne). ''' If BtiCTL = "Nothing" Then ''' Exit Sub 'Lignes paires. ElseIf BtiCTL Mod 2 = 0 Then Me.Section(acDetail).BackColor = 16777215 'Blanc. 'Lignes impaires. Else Me.Section(acDetail).BackColor = 15132390 'Gris pâle. End If Exit Sub End Sub
Merci d'avance pour vos conseils.
Cordialement.
CRUSOE13
Partager