Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > IHM
IHM Ce forum est dédié aux questions relatives à la création de formulaires et d'états, avec ou sans code VBA, et macros.
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 21/12/2011, 17h38   #1
Invité de passage
 
Inscription : septembre 2003
Messages : 11
Détails du profil
Informations forums :
Inscription : septembre 2003
Messages : 11
Points : 2
Points : 2
Par défaut Contrôle sur un champ d'un SF lors de la fermeture du Formulaire principal

Bonjour,

je cherche un code VBA qui me permets, lorsque je clique sur un bouton qui me permets de sortir d'un formulaire, qu'il aie un contrôle avant la fermeture du dit formulaire sur un champ du sous-formulaire, et qui doit être obligatoirement rempli..

Le nom du formulaire principal est: "OPF_F_DebiteurUnique"
Le champ Père est: "Debiteur_C_NumdebGIOP"

Le nom du sous-formulaire est: "OPF_F_AdresseSF"
Le champ fils: "Adresse_C_NumdebGIOP"

j'aimerais contrôler que le champ "Adresse_D_Depuis", qui se trouve dans le sous-formulaire, ne soit pas vide au moment ou je clique sur la bouton qui me permets de sortir du formulaire principale "OPF_F_DebiteurUnique".
j'ai essayé plusieurs solutions qui n'ont pas fonctionnées.
Exemple de code qui ne fonctionne pas...

Code :
1
2
3
4
5
6
7
If IsNull(Forms![OPF_F_DebiteurUnique]![OPF_F_AdresseSF].Form![Adresse_D_Depuis]) Then
       MsgBox "Veuillez remplir la date de sortie SVP"
       Exit Sub
Else
            DoCmd.OpenForm "OPF_F_Secteur", , , "Debiteur_B_Actif = true"
            DoCmd.Close acForm, "OPF_F_DebiteurUnique"
    End If
si vous avez une solution à me proposer... je suis prenneur... Merci d'avance.
Cavart
Cavart est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/12/2011, 18h42   #2
Membre éprouvé
 
Homme Robert LINCE
Conseiller psycho-pédagogique
Inscription : octobre 2007
Messages : 281
Détails du profil
Informations personnelles :
Nom : Homme Robert LINCE
Localisation : Belgique

Informations professionnelles :
Activité : Conseiller psycho-pédagogique
Secteur : Enseignement

Informations forums :
Inscription : octobre 2007
Messages : 281
Points : 483
Points : 483
Bonjour.

Je viens d'essayer avec cette syntaxe, et cela fonctionne très bien :
Code :
1
2
3
4
If IsNull(Forms![OPF_F_DebiteurUnique]![OPF_F_AdresseSF]![Adresse_D_Depuis]) Then
MsgBox "Veuillez remplir la date de sortie SVP"
Exit Sub
Else ...
J'ai essayé ce code sur le bouton de fermeture d'un formulaire principal contenant plusieurs sous-formulaires.
Cordialement.
RobiPMS est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/12/2011, 10h57   #3
Invité de passage
 
Inscription : septembre 2003
Messages : 11
Détails du profil
Informations forums :
Inscription : septembre 2003
Messages : 11
Points : 2
Points : 2
Par défaut Contrôle sur un champ d'un SF lors de la fermeture du formulaire

Bonjour,

merci d'avoir pris le temps de me répondre.
J'ai essayé votre code. Il ne fonctionne pas.

j'ai le message d'erreur suivant lorsque j'actionne le bouton pour sortir du formulaire:
Citation:
Envoyé par Message d'erreur
Erreur d'exécution 2465: Impossible de trouver le champ 'OPF_F_AdresseSF' auquel il est fait référence dans votre expression
.

c'est bizzard, car 'OPF_F_AdresseSF' n'est pas un champ, mais le sous-formulaire du formulaire 'OPF_F_DebiteurUnique'...

Je ne comprend pas bien, car votre code me parait très cohérent...

Sylvain
Cavart est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/12/2011, 16h30   #4
Membre éprouvé
 
Homme Robert LINCE
Conseiller psycho-pédagogique
Inscription : octobre 2007
Messages : 281
Détails du profil
Informations personnelles :
Nom : Homme Robert LINCE
Localisation : Belgique

Informations professionnelles :
Activité : Conseiller psycho-pédagogique
Secteur : Enseignement

Informations forums :
Inscription : octobre 2007
Messages : 281
Points : 483
Points : 483
Bonjour.

Je viens de faire des essais pour voir d'où vient l'erreur, car la syntaxe est correcte. Et j'ai effectivement pu provoquer cette erreur.
Le nom que vous utilisez pour le sous formulaire (OPF_F_DebiteurUnique) est sans doute différent du nom par lequel il est désigné en tant que contrôle dans le formulaire principal.
Ouvrez le formulaire principal en mode création, puis sélectionnez le sous-formulaire concerné en cliquant sur son bord extérieur ou sur le petit carré gris en haut à gauche du sous-form, et affichez ses propriétés. Le type de sélection doit être sous-formulaire/sous-état. Vérifiez son nom dans l'onglet autre. J'ai obtenu cette erreur quand j'utilisais le nom du sous-form tel qu'il est appelé dans la base de données, alors qu'il porte un autre nom en tant que contrôle dans le formulaire principal.
Cordialement.
RobiPMS est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/12/2011, 11h37   #5
Invité de passage
 
Inscription : septembre 2003
Messages : 11
Détails du profil
Informations forums :
Inscription : septembre 2003
Messages : 11
Points : 2
Points : 2
Par défaut Contrôle sur un champ d'un SF lors de la fermeture du Formulaire principal

Bonjour RobyPMS,

un grand merci pour votre aide...
Effectivement, le nom de mon sous-formulaire "OPF_F_DebiteurUnique" était nommé "Fille12" dans le champ "nom" sous l'onglet "Autres"...
J'ai presque un peu honte de ne pas avoir vu ce problème... c'est tellement basic....
Je ferai attention la prochaine fois.
Maintenant, la fonction de test fonctionne très bien.
Encore un grand merci, et j'y ajoute encore un joyeux Noël et tout mes voeux pour vous et votre famille pour l'année 2012.

Sylvain
Cavart est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/01/2012, 10h08   #6
Invité de passage
 
Inscription : septembre 2003
Messages : 11
Détails du profil
Informations forums :
Inscription : septembre 2003
Messages : 11
Points : 2
Points : 2
Par défaut Contrôle sur un champ d'un SF lors de la fermeture du Formulaire principal

Re bonjour,

Petite question encore:
sur ce code, on test qu'un seul champ du sous-formulaire OPF_F_AdresseSF.
Est-il possible de tester deux, voir plusieurs champs de ce même sous-formulaire, avant que l'on autorise l'enregistrement dans la base des données introduites.
Merci d'avance pour vos réponses.
J'en profite pour vous souhaiter une très bonne année 2012
au plaisir de vous lire. Sylvain
Cavart est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/01/2012, 12h24   #7
Membre éprouvé
 
Homme Robert LINCE
Conseiller psycho-pédagogique
Inscription : octobre 2007
Messages : 281
Détails du profil
Informations personnelles :
Nom : Homme Robert LINCE
Localisation : Belgique

Informations professionnelles :
Activité : Conseiller psycho-pédagogique
Secteur : Enseignement

Informations forums :
Inscription : octobre 2007
Messages : 281
Points : 483
Points : 483
Bonjour et bonne année!
Bien sûr, c'est possible de tester sur plusieurs champs, ou sur plusieurs combinaisons différentes. Par exemple :
Code :
1
2
If IsNull(Forms![OPF_F_DebiteurUnique]![OPF_F_AdresseSF]![Adresse_D_Depuis]) And IsNull(Forms![OPF_F_DebiteurUnique]![OPF_F_AdresseSF]![Autrechamp]) Then
......
Si vous voulez tester plusieurs combinaisons différentes, avec des messages différents par exemple, il suffit d'utiliser les ElseIf:
Code :
1
2
3
4
If IsNull(Forms![OPF_F_DebiteurUnique]![OPF_F_AdresseSF]![Adresse_D_Depuis]) And IsNull(Forms![OPF_F_DebiteurUnique]![OPF_F_AdresseSF]![Autrechamp]) Then
......
ElseIf IsNull(Forms![OPF_F_DebiteurUnique]![OPF_F_AdresseSF]![Adresse_D_Depuis]) And IsNull(Forms![OPF_F_DebiteurUnique]![OPF_F_AdresseSF]![TroisèmeChamp]) Then
......
Cordialement
RobiPMS est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/02/2012, 09h15   #8
Invité de passage
 
Inscription : septembre 2003
Messages : 11
Détails du profil
Informations forums :
Inscription : septembre 2003
Messages : 11
Points : 2
Points : 2
Bonjour,

ça fonctionne. tout est parfait.
Merci pour tout.

Bonne journée et à bientôt.

Sylvain
Cavart 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 05h44.


 
 
 
 
Partenaires

Hébergement Web