Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Général VBA
Général VBA Forum général VBA . Pour les logiciels spécifiques (Access, Excel, Word, ...), postez dans les bons sous forums.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 27/06/2007, 16h59   #1
Futur Membre du Club
 
Inscription : octobre 2006
Messages : 112
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 112
Points : 17
Points : 17
Par défaut Structure If.End if

Bonjour, j'ai un problème avec les structures si. J'aimerai lors de l'enregistrement du formulaire dans ma table, mettre des champs obligatoires (içi sur la date). Si ces champs sont rempli les données s'enregistrent dans ma table Saisie. Or j'ai un bug, cela ne fonctionne pas. Merci de m'aider.

Code :
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
 
 
If dateText = "" Then MsgBox ("erreur")
 
ElseIf Not Me.newcause = "" Then
'ajout de la cause dans la table Causes
Set f = db.OpenRecordset("Causes")
f.AddNew
f.Fields("nomcause") = Me.newcause
f.Update
'enregistrement de toute la saisie dans la table Saisie
Set t = db.OpenRecordset("Saisie")
't.Edit
t.AddNew
t.Fields("date") = Me.date
t.Fields("date2") = Me.date2
t.Fields("ligne") = Me.ligne
t.Fields("machine") = Me.nummachine
t.Fields("heuredebut") = Me.hdebut
t.Fields("heurefin") = Me.hfin
t.Fields("dureearret") = Me.duree
t.Fields("technicien n°1") = Me.technicien1
t.Fields("technicien n°2") = Me.technicien2
t.Fields("etat") = Me.etat
t.Fields("arret") = Me.arret
t.Fields("objet") = Me.objet
t.Fields("causes") = Me.newcause
t.Fields("description1") = Me.description1
t.Fields("description2") = Me.description2
t.Fields("commentaires") = Me.commentaires
t.Fields("piecedetachee1") = Me.piece_utilisee1
t.Fields("qtepiece1") = Me.qtepiece1
t.Fields("piecedetachee2") = Me.piece_utilisee2
t.Fields("qtepiece2") = Me.qtepiece2
t.Update
End If
ElseIf Me.newcause = "" Then
 
Set t = db.OpenRecordset("Saisie")
't.Edit
t.AddNew
t.Fields("date") = Me.date
t.Fields("date2") = Me.date2
t.Fields("ligne") = Me.ligne
t.Fields("machine") = Me.nummachine
t.Fields("heuredebut") = Me.hdebut
t.Fields("heurefin") = Me.hfin
t.Fields("dureearret") = Me.duree
t.Fields("technicien n°1") = Me.technicien1
t.Fields("technicien n°2") = Me.technicien2
t.Fields("etat") = Me.etat
t.Fields("objet") = Me.objet
t.Fields("causes") = Me.cause
t.Fields("description1") = Me.description1
t.Fields("description2") = Me.description2
t.Fields("commentaires") = Me.commentaires
t.Fields("piecedetachee1") = Me.piece_utilisee1
t.Fields("qtepiece1") = Me.qtepiece1
t.Fields("piecedetachee2") = Me.piece_utilisee2
t.Fields("qtepiece2") = Me.qtepiece2
t.Update
End If
End If
magictom42 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/06/2007, 20h38   #2
Rédacteur/Modérateur
 
Avatar de Dolphy35
 
Homme Morgan BILLY
Technicien de Production
Inscription : octobre 2004
Messages : 4 105
Détails du profil
Informations personnelles :
Nom : Homme Morgan BILLY
Âge : 33
Localisation : France, Ille et Vilaine (Bretagne)

Informations professionnelles :
Activité : Technicien de Production
Secteur : Industrie

Informations forums :
Inscription : octobre 2004
Messages : 4 105
Points : 8 739
Points : 8 739
Salut,

If s'utilise de cette façon :
Code :
If [test] Then [Code à éxécuter]
ou de cette façon :
Code :
1
2
3
If [test] Then
[Code à éxécuter]
End If
autre façon :
Code :
1
2
3
4
5
If [test] Then
    [Code à éxécuter si test est vrai]
Else
    [Code à éxécuter si test est faux]
End If
autre façon :
Code :
1
2
3
4
5
If [test] Then
    [Code à éxécuter si test est vrai]
ElseIf [test2] Then
    [Code à éxécuter si test est faux mais test2 est vrai]
End If
autre :
Code :
1
2
3
4
5
6
7
If [test] Then
    [Code à éxécuter si test est vrai]
ElseIf [test2] Then
    [Code à éxécuter si test est faux mais test2 est vrai]
Else
    [Code à éxécuter si test et test2 est faux]
End If
__________________
Personnaliser la vue Backstage d'Access 2010
Découvrez avec nous Office 2010
Je ne réponds pas aux questions techniques par MP
Dolphy35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/07/2007, 00h05   #3
Rédacteur

 
Avatar de Maxence HUBICHE
 
Homme Maxence HUBICHE
Formateur et Développeur - Conseil en Informatique
Inscription : juin 2002
Messages : 3 687
Détails du profil
Informations personnelles :
Nom : Homme Maxence HUBICHE
Âge : 42
Localisation : France, Val d'Oise (Île de France)

Informations professionnelles :
Activité : Formateur et Développeur - Conseil en Informatique

Informations forums :
Inscription : juin 2002
Messages : 3 687
Points : 6 516
Points : 6 516
Envoyer un message via MSN à Maxence HUBICHE Envoyer un message via Skype™ à Maxence HUBICHE
et puis, tu fais des tests sur des champs d'une base de données.
Dans une base de données, un champ non défini est mis à NULL et non à ""

NULL et "" n'ont pas le même sens !
NULL = Je ne sais pas
"" = Je sais qu'il n'y a pas (au même titre qu'un 0 pour les nombres d'ailleurs)

Donc (ne sachant pas comment est configuré ta base) tes champs peuvent avoir, au pire, trois valeurs :

une valeur quelconque
""
NULL (mêm si NULL n'est pas à proprement parler une valeur :s)

Tu peux réduire les possibilités en utilisant la fonction Access NZ
syntaxe :
Code :
NZ(NullPossible, Remplacerpar)
Donc, pour replacer un NULL par un "", ca donnerait tout simplement
Mais bon, l'intérêt n'est de remplacer le NULL que lorsqu'il y en a un.
Et il est possible qu'il y en ait un dans tes champs.

Donc,
remplacera un NULL dans un champ par un ""

Ce qui fait que ce test :
Code :
1
2
3
4
5
 
 
If NZ(TonChamp, "") ="" Then
    ...
    ...
attrapera les cas NULL
Alors que ton test actuel
Code :
1
2
3
4
5
 
 
If Tonchamp ="" Then
    ...
    ...
ne les attrape pas !
__________________
1formaxion, une formation de qualité, des formateurs compétents
Mes tutoriels et vidéos :
Tableaux croisés dynamiques, Access les Bases, et les autres !
Maxence HUBICHE est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 16h43.


 
 
 
 
Partenaires

Hébergement Web