Ah ok et elle se trouve ou cette option?
Merci pour tout tes coneils j'avance trankilement mais surement
Ah ok et elle se trouve ou cette option?
Merci pour tout tes coneils j'avance trankilement mais surement
N'aurais-tu pas une instruction VB qui désactive les messages systeme.
Normalement, les messages s'affichent en fin de saisie de l'enregistrement
Code : Sélectionner tout - Visualiser dans une fenêtre à part DoCmd.SetWarnings = False
Bonjour,
J'avais un doute, mais après test, les messages d'erreur du Jet ne sont pas annulés par cette instruction.DoCmd.SetWarnings = False
Le problème vient donc d'ailleurs.
Domi2
Re non j'ai regardé dans mon code je n'ai pas sa!
Je ne sais pas c'est bizzard, j'ai la version 2000 c'est peut être sa?
Bonjour moilou2,
Non, la version n'y est pour rien...
Seulement, en la relisant, je constate surtout que cette discussion part un peu dans tous les sens... (je n'y suis peut-être pas pour rien ).
Access, n'en déplaise à ses détracteurs, est très riche...
Pour ce que tu veux faire, soit valider la saisie dans certains champs, il existe au moins 2 pistes...
1) Laisser faire Access, soit utiliser les propriétés Null interdit et Chaîne vide autorisée dans les tables et la propriété Valide Si dans les champs des formulaires...
Avantages : relativement simple, n'exige pas de code...
Inconvénients : ne permet peut-être pas des "réglages" très poussés (encore que...). Les messages d'erreurs peuvent être un peu "déroutant" pour l'utilisateur...
2) Utiliser la propriété Avant MAJ du formulaire pour effectuer les tests de validation au moyen de code VBA.
Avantage : permet peut-être une meilleure "personnalisation" du traitement des erreurs de saisie.
Inconvénient : demande plus de connaissances (c'est assez relatif) que la solution no 1.
Tout ceci pour dire que ce qui est important, c'est d'abord de choisir une stratégie... et de l'appliquer de A à Z...
Donc, accorde toi le temps de la réfléxion et choisi une solution, sans faire un "mix" des deux... Cela te simplifiera la vie.
Domi2
Ba c'est à dire que moi je m'en moque un peu du momment que sa marche!
On été parti sur du vba comme tu le dit mais c'est plus compliqué, mais sa ne me fait pas peur au contraire c'est intéressant!
Après on m'amene une solution simple et qui donne le même résultat mais sa ne marche pas comme je veux donc je pense que l'on va repartir sur du vba!
Je revoi tou sa et si je n'y arrive pas je vous redi!
Merci
Pour revenir sur le lien que Francishop m'a laisser!
Je voudrai tester ses macro mais je ne sais pas dans quel partie les mettre?
Et
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 Public Function DataNull() As String Dim frm As Form Dim ctl As Control Dim strMsg As String Set frm = Screen.ActiveForm For Each ctl In frm.Controls If ctl.ControlType = acTextBox _ Or ctl.ControlType = acListBox _ Or ctl.ControlType = acComboBox Then If IsNull(ctl.Value) Or ctl.Value = "" Then _ strMsg = strMsg & vbCrLf & vbTab & "- " & ctl.Name End If Next If strMsg <> "" Then DataNull = "Vous devez saisir : " & vbCrLf & strMsg End Function
Je les met dans quel procédure éveenementiel de mon formulaire ou peut être ailleur?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 Private Sub Form_UnLoad (Cancel As Integer) Dim strMsg As String strMsg = DataNull If strMsg <> "" Then Cancel = True MsgBox strMsg, vbCritical End If End Sub
Merci ensuite je test j'essay d'adapter tout sa et je vous redi si sa marche
A priori je dirais le premier code dans un module et le second sur l'évènement Unload (soit "libération") du formulaire...
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager