OVH Cloud OVH Cloud

simplification de code

17 réponses
Avatar
tonio
Bonjour,

Y a t il moyen de simplifié ce code?

If (Me.Nbre_Enfants) = "0" Then
Me.Num_Enfant_1 = Null
Me.Num_Enfant_2 = Null
Me.Num_Enfant_3 = Null
Me.Num_Enfant_4 = Null
Me.Num_Enfant_5 = Null
Me.Enfant_1 = Null
Me.Enfant_2 = Null
Me.Enfant_3 = Null
Me.Enfant_4 = Null
Me.Enfant_5 = Null
End If
If (Me.Nbre_Enfants) = "1" Then
Me.Num_Enfant_2 = Null
Me.Num_Enfant_3 = Null
Me.Num_Enfant_4 = Null
Me.Num_Enfant_5 = Null
Me.Enfant_2 = Null
Me.Enfant_3 = Null
Me.Enfant_4 = Null
Me.Enfant_5 = Null
End If
If (Me.Nbre_Enfants) = "2" Then
Me.Num_Enfant_3 = Null
Me.Num_Enfant_4 = Null
Me.Num_Enfant_5 = Null
Me.Enfant_3 = Null
Me.Enfant_4 = Null
Me.Enfant_5 = Null
End If
If (Me.Nbre_Enfants) = "3" Then
Me.Num_Enfant_4 = Null
Me.Num_Enfant_5 = Null
Me.Enfant_4 = Null
Me.Enfant_5 = Null
End If
If (Me.Nbre_Enfants) = "4" Then
Me.Num_Enfant_5 = Null
Me.Enfant_5 = Null
End If

Merci d'avance

--
Tonio
Lecteur de News : MesNews <http://www.mesnews.net/chargement.php> - Lecteur de
mail : Mozilla thunderbird
<http://www.mozilla-europe.org/fr/products/thunderbird/> - Navigateur internet :
IE6 <http://www.microsoft.com> - Messagerie instantanée : Msn Messenger
<http://messenger.msn.fr>

10 réponses

1 2
Avatar
RaphK34
Salut,
Oui, c'est possible de simplifier, dirige toi vers la fonction For ... Next,
mais je doute que l'architecture soit judicieuse à la base, que se passe t
il si il y a 6 enfants ou plus ?

--
@+ Raph.

--------------------------------------------
Merci de répondre sur le NG
Toutes remarques bienvenues !

Pour un contact direct, utiliser:
en enlevant nospam.
--------------------------------------------



"tonio" a écrit dans le message
de news:
| Bonjour,
|
| Y a t il moyen de simplifié ce code?
|
| If (Me.Nbre_Enfants) = "0" Then
| Me.Num_Enfant_1 = Null
| Me.Num_Enfant_2 = Null
| Me.Num_Enfant_3 = Null
| Me.Num_Enfant_4 = Null
| Me.Num_Enfant_5 = Null
| Me.Enfant_1 = Null
| Me.Enfant_2 = Null
| Me.Enfant_3 = Null
| Me.Enfant_4 = Null
| Me.Enfant_5 = Null
| End If
| If (Me.Nbre_Enfants) = "1" Then
| Me.Num_Enfant_2 = Null
| Me.Num_Enfant_3 = Null
| Me.Num_Enfant_4 = Null
| Me.Num_Enfant_5 = Null
| Me.Enfant_2 = Null
| Me.Enfant_3 = Null
| Me.Enfant_4 = Null
| Me.Enfant_5 = Null
| End If
| If (Me.Nbre_Enfants) = "2" Then
| Me.Num_Enfant_3 = Null
| Me.Num_Enfant_4 = Null
| Me.Num_Enfant_5 = Null
| Me.Enfant_3 = Null
| Me.Enfant_4 = Null
| Me.Enfant_5 = Null
| End If
| If (Me.Nbre_Enfants) = "3" Then
| Me.Num_Enfant_4 = Null
| Me.Num_Enfant_5 = Null
| Me.Enfant_4 = Null
| Me.Enfant_5 = Null
| End If
| If (Me.Nbre_Enfants) = "4" Then
| Me.Num_Enfant_5 = Null
| Me.Enfant_5 = Null
| End If
|
| Merci d'avance
|
| --
| Tonio
| Lecteur de News : MesNews <http://www.mesnews.net/chargement.php> -
Lecteur de
| mail : Mozilla thunderbird
| <http://www.mozilla-europe.org/fr/products/thunderbird/> - Navigateur
internet :
| IE6 <http://www.microsoft.com> - Messagerie instantanée : Msn Messenger
| <http://messenger.msn.fr>
|
|
Avatar
tonio
RaphK34 a écrit dans son message <#E$ :
Salut,
Oui, c'est possible de simplifier, dirige toi vers la fonction For ... Next,
Peux-tu m'apporter quelque précision?


mais je doute que l'architecture soit judicieuse à la base, que se passe t
il si il y a 6 enfants ou plus ?
Me proposerais-tu une autre structure?


--
@+ Raph.


@+

--
Tonio
Me.[Débutant]=Null
;-);-);-)

Avatar
Charles ERNST
faut changer de structure et faire une table enfants, réferencée à la table
pricipale
j'imagine que c'est une famille :

Table Famille
id famile
Nom
adresse
.....

Table Enfants
Id famille
Nom enfant
Prénom
date de naissance
etc....
et dans votre formulaire vous mettez un sous-formulaire enfant
on peut en ajouter autant qu'on veut alors




"tonio" a écrit dans le message
de news:
Bonjour,

Y a t il moyen de simplifié ce code?

If (Me.Nbre_Enfants) = "0" Then
Me.Num_Enfant_1 = Null
Me.Num_Enfant_2 = Null
Me.Num_Enfant_3 = Null
Me.Num_Enfant_4 = Null
Me.Num_Enfant_5 = Null
Me.Enfant_1 = Null
Me.Enfant_2 = Null
Me.Enfant_3 = Null
Me.Enfant_4 = Null
Me.Enfant_5 = Null
End If
If (Me.Nbre_Enfants) = "1" Then
Me.Num_Enfant_2 = Null
Me.Num_Enfant_3 = Null
Me.Num_Enfant_4 = Null
Me.Num_Enfant_5 = Null
Me.Enfant_2 = Null
Me.Enfant_3 = Null
Me.Enfant_4 = Null
Me.Enfant_5 = Null
End If
If (Me.Nbre_Enfants) = "2" Then
Me.Num_Enfant_3 = Null
Me.Num_Enfant_4 = Null
Me.Num_Enfant_5 = Null
Me.Enfant_3 = Null
Me.Enfant_4 = Null
Me.Enfant_5 = Null
End If
If (Me.Nbre_Enfants) = "3" Then
Me.Num_Enfant_4 = Null
Me.Num_Enfant_5 = Null
Me.Enfant_4 = Null
Me.Enfant_5 = Null
End If
If (Me.Nbre_Enfants) = "4" Then
Me.Num_Enfant_5 = Null
Me.Enfant_5 = Null
End If

Merci d'avance

--
Tonio
Lecteur de News : MesNews <http://www.mesnews.net/chargement.php> -
Lecteur de mail : Mozilla thunderbird
<http://www.mozilla-europe.org/fr/products/thunderbird/> - Navigateur
internet : IE6 <http://www.microsoft.com> - Messagerie instantanée : Msn
Messenger <http://messenger.msn.fr>




Avatar
RaphK34
pour la fonction For Next, l'aide devrait t'aider, mais on peut se diriger
vers:

Dim i As Integer
If Me.Nbre_Enfants < 5 Then
For i = Me.Nbre_Enfants + 1 To 5
Me("Num_Enfant_" & i) = Null
Me("Enfant_" & i) = Null
Next i
End If

Pour ce qui est de l'architecture, je ne connais pas le but ni
l'architecture actuelle de ta base, mais:
Une table enfant contenant 2 champs: CodeFamille et NomEnfant t'autorise un
nombre illimité d'enfants ...


--
@+ Raph.

--------------------------------------------
Merci de répondre sur le NG
Toutes remarques bienvenues !

Pour un contact direct, utiliser:
en enlevant nospam.
--------------------------------------------



"tonio" a écrit dans le message
de news:
| RaphK34 a écrit dans son message <#E$ :
| > Salut,
| > Oui, c'est possible de simplifier, dirige toi vers la fonction For ...
Next,
| Peux-tu m'apporter quelque précision?
|
| > mais je doute que l'architecture soit judicieuse à la base, que se passe
t
| > il si il y a 6 enfants ou plus ?
| Me proposerais-tu une autre structure?
|
| > --
| > @+ Raph.
|
| @+
|
| --
| Tonio
| Me.[Débutant]=Null
| ;-);-);-)
|
|
Avatar
tonio
RaphK34 a écrit dans son message :
pour la fonction For Next, l'aide devrait t'aider, mais on peut se diriger
vers:

Dim i As Integer
If Me.Nbre_Enfants < 5 Then
For i = Me.Nbre_Enfants + 1 To 5
Me("Num_Enfant_" & i) = Null
Me("Enfant_" & i) = Null
Next i
End If

Pour ce qui est de l'architecture, je ne connais pas le but ni
l'architecture actuelle de ta base, mais:
Une table enfant contenant 2 champs: CodeFamille et NomEnfant t'autorise un
nombre illimité d'enfants ...



Pour te répondre (et par la même occasion à Charles)

j'ai en fait une table client avec dedans tout le monde (parent et enfants).

et je veux créé un lien entre eux pour définir combien telle personne a
d'enfants et quels sont leurs noms, prénom, adresse, ...

Pourkoi je ne fais pas 2 tables?

Pour que la base soit pérenne : un jour les enfants seront parents... je
l'espère.
donc parent et enfant dans le même panier

pourquoi nom prénom et adresse de l'enfant?

famille recomposé divorcé adoption famille d'accueil....

Merci pour votre aide





--
Tonio
Me.[Débutant]=Null
;-);-);-)

Avatar
RaphK34
Re,
je ne sais pas comment tu organises ta base, mais la bonne architecture
n'est pas celle que tu proposes au début, ça c'est sur !
Crée peut être une table CodeFamille/Enfant avec une autre table contenant
tous tes "Clients" (parents et enfants), à toi de voir, mais en
programmation on essaye de prévoir l'imprévisible, et donc on essaye
d'éviter toutes limitations à la conception ...

--
@+ Raph.

--------------------------------------------
Merci de répondre sur le NG
Toutes remarques bienvenues !

Pour un contact direct, utiliser:
en enlevant nospam.
--------------------------------------------



"tonio" a écrit dans le message
de news:
| RaphK34 a écrit dans son message :
| > pour la fonction For Next, l'aide devrait t'aider, mais on peut se
diriger
| > vers:
|
| > Dim i As Integer
| > If Me.Nbre_Enfants < 5 Then
| > For i = Me.Nbre_Enfants + 1 To 5
| > Me("Num_Enfant_" & i) = Null
| > Me("Enfant_" & i) = Null
| > Next i
| > End If
|
| > Pour ce qui est de l'architecture, je ne connais pas le but ni
| > l'architecture actuelle de ta base, mais:
| > Une table enfant contenant 2 champs: CodeFamille et NomEnfant t'autorise
un
| > nombre illimité d'enfants ...
|
|
| Pour te répondre (et par la même occasion à Charles)
|
| j'ai en fait une table client avec dedans tout le monde (parent et
enfants).
|
| et je veux créé un lien entre eux pour définir combien telle personne a
| d'enfants et quels sont leurs noms, prénom, adresse, ...
|
| Pourkoi je ne fais pas 2 tables?
|
| Pour que la base soit pérenne : un jour les enfants seront parents... je
| l'espère.
| donc parent et enfant dans le même panier
|
| pourquoi nom prénom et adresse de l'enfant?
|
| famille recomposé divorcé adoption famille d'accueil....
|
| Merci pour votre aide
|
|
|
|
|
| --
| Tonio
| Me.[Débutant]=Null
| ;-);-);-)
|
|
Avatar
tonio
tonio a écrit dans son message :
Bonjour,


un peu plus compliqué

If (Me.Cmb_Nbre_Enfants) = "0" Then
Num_Enfant_1.Enabled = False
Num_Enfant_2.Enabled = False
Num_Enfant_3.Enabled = False
Num_Enfant_4.Enabled = False
Num_Enfant_5.Enabled = False
Enfant_1.Enabled = False
Enfant_2.Enabled = False
Enfant_3.Enabled = False
Enfant_4.Enabled = False
Enfant_5.Enabled = False
Me.Num_Enfant_1 = Null
Me.Num_Enfant_2 = Null
Me.Num_Enfant_3 = Null
Me.Num_Enfant_4 = Null
Me.Num_Enfant_5 = Null
Me.Enfant_1 = Null
Me.Enfant_2 = Null
Me.Enfant_3 = Null
Me.Enfant_4 = Null
Me.Enfant_5 = Null
End If
If (Me.Cmb_Nbre_Enfants) = "1" Then
Num_Enfant_1.Enabled = True
Num_Enfant_2.Enabled = False
Num_Enfant_3.Enabled = False
Num_Enfant_4.Enabled = False
Num_Enfant_5.Enabled = False
Enfant_1.Enabled = True
Enfant_2.Enabled = False
Enfant_3.Enabled = False
Enfant_4.Enabled = False
Enfant_5.Enabled = False
Me.Num_Enfant_2 = Null
Me.Num_Enfant_3 = Null
Me.Num_Enfant_4 = Null
Me.Num_Enfant_5 = Null
Me.Enfant_2 = Null
Me.Enfant_3 = Null
Me.Enfant_4 = Null
Me.Enfant_5 = Null
End If
If (Me.Cmb_Nbre_Enfants) = "2" Then
Num_Enfant_1.Enabled = True
Num_Enfant_2.Enabled = True
Num_Enfant_3.Enabled = False
Num_Enfant_4.Enabled = False
Num_Enfant_5.Enabled = False
Enfant_1.Enabled = True
Enfant_2.Enabled = True
Enfant_3.Enabled = False
Enfant_4.Enabled = False
Enfant_5.Enabled = False
Me.Num_Enfant_3 = Null
Me.Num_Enfant_4 = Null
Me.Num_Enfant_5 = Null
Me.Enfant_3 = Null
Me.Enfant_4 = Null
Me.Enfant_5 = Null
End If
If (Me.Cmb_Nbre_Enfants) = "3" Then
Num_Enfant_1.Enabled = True
Num_Enfant_2.Enabled = True
Num_Enfant_3.Enabled = True
Num_Enfant_4.Enabled = False
Num_Enfant_5.Enabled = False
Enfant_1.Enabled = True
Enfant_2.Enabled = True
Enfant_3.Enabled = True
Enfant_4.Enabled = False
Enfant_5.Enabled = False
Me.Num_Enfant_4 = Null
Me.Num_Enfant_5 = Null
Me.Enfant_4 = Null
Me.Enfant_5 = Null
End If
If (Me.Cmb_Nbre_Enfants) = "4" Then
Num_Enfant_1.Enabled = True
Num_Enfant_2.Enabled = True
Num_Enfant_3.Enabled = True
Num_Enfant_4.Enabled = True
Num_Enfant_5.Enabled = False
Enfant_1.Enabled = True
Enfant_2.Enabled = True
Enfant_3.Enabled = True
Enfant_4.Enabled = True
Enfant_5.Enabled = False
Me.Num_Enfant_5 = Null
Me.Enfant_5 = Null
End If
If (Me.Cmb_Nbre_Enfants) = "5" Then
Num_Enfant_1.Enabled = True
Num_Enfant_2.Enabled = True
Num_Enfant_3.Enabled = True
Num_Enfant_4.Enabled = True
Num_Enfant_5.Enabled = True
Enfant_1.Enabled = True
Enfant_2.Enabled = True
Enfant_3.Enabled = True
Enfant_4.Enabled = True
Enfant_5.Enabled = True
End If


--
Tonio
Me.[Débutant]=Null
;-);-);-)

Avatar
tonio
RaphK34 a écrit dans son message :
Re,
je ne sais pas comment tu organises ta base, mais la bonne architecture
n'est pas celle que tu proposes au début, ça c'est sur !
Crée peut être une table CodeFamille/Enfant avec une autre table contenant
tous tes "Clients" (parents et enfants), à toi de voir, mais en
programmation on essaye de prévoir l'imprévisible, et donc on essaye
d'éviter toutes limitations à la conception ...


Re à toi aussi

je reprend depuis le début

une table Tbl_Clients avec tout le monde dedans

certains sont les enfants d'autre

soit A, B, C, D, E 5 personnes de la Table

Comment faire pour dire que par exemple C est l'enfant de A et B?
Comment indiquer que A a un autre enfant D issu d'une union précédente?
( en tenant compte des différentes possibilité mariage, divorce, ...)


Merci

--
Tonio
Me.[Débutant]=Null
;-);-);-)

Avatar
RaphK34
Re,
Pourquoi pas dans Tbl_Clients faire un champs PAPA et un champs MAMAN dans
lequel on notera les clefs correspondantes des intéressés ...
Ainsi tu peux tout gérer simplement avec une requête

--
@+ Raph.

--------------------------------------------
Merci de répondre sur le NG
Toutes remarques bienvenues !

Pour un contact direct, utiliser:
en enlevant nospam.
--------------------------------------------



"tonio" a écrit dans le message
de news:
| RaphK34 a écrit dans son message :
| > Re,
| > je ne sais pas comment tu organises ta base, mais la bonne architecture
| > n'est pas celle que tu proposes au début, ça c'est sur !
| > Crée peut être une table CodeFamille/Enfant avec une autre table
contenant
| > tous tes "Clients" (parents et enfants), à toi de voir, mais en
| > programmation on essaye de prévoir l'imprévisible, et donc on essaye
| > d'éviter toutes limitations à la conception ...
|
| Re à toi aussi
|
| je reprend depuis le début
|
| une table Tbl_Clients avec tout le monde dedans
|
| certains sont les enfants d'autre
|
| soit A, B, C, D, E 5 personnes de la Table
|
| Comment faire pour dire que par exemple C est l'enfant de A et B?
| Comment indiquer que A a un autre enfant D issu d'une union précédente?
| ( en tenant compte des différentes possibilité mariage, divorce, ...)
|
|
| Merci
|
| --
| Tonio
| Me.[Débutant]=Null
| ;-);-);-)
|
|
Avatar
tonio
RaphK34 a écrit dans son message <e# :
Re,
Re,

Pourquoi pas dans Tbl_Clients faire un champs PAPA et un champs MAMAN dans
lequel on notera les clefs correspondantes des intéressés ...
Ainsi tu peux tout gérer simplement avec une requête

--
@+ Raph.

--------------------------------------------
Merci de répondre sur le NG
Toutes remarques bienvenues !

Pour un contact direct, utiliser:
en enlevant nospam.
--------------------------------------------


Merci

J'avais pas vu ca dans ce sens là

et dans ce cas comment afficher le nom des enfants dans le fiche du pere ou de
la mere


--
Tonio
Me.[Débutant]=Null
;-);-);-)

1 2