Condition dans un formulaire access

Résolu/Fermé
faon Messages postés 16 Date d'inscription samedi 11 mars 2006 Statut Membre Dernière intervention 20 mars 2008 - 11 mars 2006 à 19:06
 jluc - 11 janv. 2014 à 11:51
Bonsoir,
Je suis nouveau sur ce site et j'aurai une question à poser
Je suis en train de créer une base de données et j'ai un soucis à propos d'un champ
J'explique :
J'ai trois champs : Assignation, N° compte bancaire et N° compte bancaire(R)
Si j'ai un numéro de compte bancaire qui s'affiche dans l'un des deux champs "compte", le Champ Assignation doit rester vide.
Si je n'ai aucun compte dans l'un des deux champs "compte", il doit me renvoyer le texte "Assignation" dans le champ "Assignation".
Cela fait des jours que je cherche et je ne trouve pas la solution.
Qui peut m'aider? Merci d'avance

9 réponses

zenon Messages postés 726 Date d'inscription jeudi 30 septembre 2004 Statut Membre Dernière intervention 13 février 2010 180
22 mars 2006 à 22:31
Bin, peu importe à mon avis: c'est une question de présentation.

En revanche, 100 champs pour une table, c'est beaucoup...
Je ne connais pas du tout le type de tes données. Es-tu sûr de ne pas confondre champs et enregistrements (désolé, ne prends pas mal ma question... ).

Pourquoi veux-tu exporter les résultats sous Word?

Les états ne sont pas mal sous access. Ils ne demandent pas de manipulation une fois qu'ils ont été conçus et ils permettent plus facilement que les champs de formulaire dans Word d'appliquer filtres ou regroupements.
1
faon Messages postés 16 Date d'inscription samedi 11 mars 2006 Statut Membre Dernière intervention 20 mars 2008
23 mars 2006 à 19:08
Bonjour,
Non ne t'en fais pas je ne le prends surtout pas mal, surtout de la part de qqun de beaucoup plus calé que moi sur le sujet.
Oui, g bien 100 champs sur une table unique. Je devrai dire j'avais car comme c'était trop lourd j'ai tout recommencé (c'est en forgeant que l'on devient forgeron).
Mon projet est basé sur sept tables, et un formulaire basé sur des requêtes.
Les gens que j'ai sous mes ordres recoivent des personnes invalides et doivent remplir un formulaire complet.Cedit formulaire sert de point de départ à compléter un dossier plein de documents, c'est pour cela que je voulais fusionner avec un fichier texte Word.Tu as certainement raison, je n'ai pas essayer de le faire avec un état.
Existe t'il une fonction qui calcule le premier jour du mois précédent?
Merci de ta gentillesse de me suivre pas à pas.
0
faon Messages postés 16 Date d'inscription samedi 11 mars 2006 Statut Membre Dernière intervention 20 mars 2008
23 mars 2006 à 19:19
Voilà pourquoi
date facture 10/05/2004 ; date ancien véhicule 25/08/2002
d'où revision du 01/08/2002 au 31/07/2005
retrait 10/05/2004 (=date de la facture)
période à revoir 01/06/2004 au 31/07/2005 soit 14 mois

le problème se situe au niveau de la date du 01/08/2004, toutes les autres formules je les ai trouvées.

Toutes les dates sont des champs.
Espère avoir pu su m'expliquer convenablement
0
Bonjour,

Suggestion :

Bascule les 2 évènements "After Change" vers la meme fonction.

Sub [N° compte bancaire]_AfterChange
Validation
End Sub
Sub [N° compte bancaire(R)]_AfterChange
Validation
End Sub

Function Validation
If (([N° compte bancaire] <> "")Or([N° compte bancaire(R)]) <>"") Then
[Assignation].Value = ""
Else
[Assignation].Value = "Assignation"
End IF
End Function

Cela répond il a tes attentes ?

Lupin

Lupin
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
12 mars 2006 à 17:28
Salut Lupin,

comme j'ai remarqué que tu maîtrises VBA, pourrais tu me dire si c'est faisable ce que j'essaie de faire.

Voilà le lien http://tinyurl.com/mk9f6


Merci d'avance,

lami20j
0
faon Messages postés 16 Date d'inscription samedi 11 mars 2006 Statut Membre Dernière intervention 20 mars 2008
12 mars 2006 à 19:21
Merci pour ton message, mais comment insérer la fonction after change dans mon champ, je ne trouve pas cette fonction?
Merci
0
zenon Messages postés 726 Date d'inscription jeudi 30 septembre 2004 Statut Membre Dernière intervention 13 février 2010 180
12 mars 2006 à 22:26
Salut,

Lupin n'a pas l'air d'être là...

A mon avis, tu dois ajouter la référence à la fonction proposée dans les propriétés des champs dans un formulaire...

(Mais d'après ton post, je ne suis pas sûr que tu en sois là.)

si c'est le cas, en mode création, tu fais un clic droit sur le champ en question, tu choisis propriétés puis, sous l'onglet événement, AfterUpdate, tu choisis "procédure événementielle" et tu te retrouves dans la fenêtre VB où tu tapes le code proposé.

Ensuite, tu dois écrire le module dans lequel la fonction proposée doit être recopiée.

Si tu es dans une table, ce n'est pas possible... mais tu peux écrire une requête mise à jour qui "corrigera" tes donnée en une fois.

J'espère que ça t'aide
(désolé, Lupin, d'avoir "marché sur tes plates bandes"...
0
faon Messages postés 16 Date d'inscription samedi 11 mars 2006 Statut Membre Dernière intervention 20 mars 2008
13 mars 2006 à 19:02
Merci à toi aussi zenon je message que j'ai envoyé à lupin t'es aussi adressé
0
faon Messages postés 16 Date d'inscription samedi 11 mars 2006 Statut Membre Dernière intervention 20 mars 2008
13 mars 2006 à 19:40
le problème c'est que j'ai déjà une procédure événementielle sur After Update.
En effet, j'ai installé un programme qui vérifie l'exactitude du compte bancaire et je ne sais pas le mettre ailleurs.
0
vous parler de after uptade mais désole c ou moi je ne vois pas
0
Bonjour à tous,

pour zenon, pas de faute, nous sommes ici pour partager,
et je n'ai certes pas la prétention de tout connaître et de
tout comprendre. Au contraire, merci d'avoir donné suite.

je donne l'aide que je peux avec le temps que j'ai. Je n'en
ai pas toujours. Peut-être que d'autres ccmmiste n'aime
pas ce genre d'intervention, mais pour ma part, l'objectif
est toujours d'aider la personne qui demande et sans aucun
doute [ l'union fait la force ].


ceci dit, je voyais exactement les choses comme tu l'as décrit.
Bien entendu, je ne connais pas les aptitudes de faon en VBA.

Pour l'instant, je ne puis aller plus loin car je dois me mettre
au boulot. Si ces réponse ne sont pas clair, je continuerai
à suivre le post pour te venir en aide faon.

p.s. lami20j, je vais jeter un oeil sur ton fil !

@+
Lupin
0
faon Messages postés 16 Date d'inscription samedi 11 mars 2006 Statut Membre Dernière intervention 20 mars 2008
13 mars 2006 à 18:58
Merci pour ton mail et c'est très gentil de ta part surtout qu'à ceux à qui je m'étais adressé avant de m'inscrire à ce site étaient du genre "je sais mais débrouilles-toi tout seul".

Au niveau d'Access, je suis allé au cours mais ma formation se basait sur l'essentiel (tables formulaires requêtes etc ... )mais pour ce qui est su VBA je découvre moi-même et au fur à mesure des applications que j'essaie de créer.
Et comme j'aime bien Access je veux aller plus loin.
Encore merci
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
13 mars 2006 à 19:55
Bonsoir et merci Lupin,

lami20j
0
Lupin > faon Messages postés 16 Date d'inscription samedi 11 mars 2006 Statut Membre Dernière intervention 20 mars 2008
14 mars 2006 à 00:33
Bonjour,

Pour faire simple,

Premier Étage
Une TableA
Une RequeteA qui englobo la table A
Un Formulaire qui pointe sur la requete
Deuxième étage
Plusieurs requete simple pointu sur un enregistrements
Quelques contrôles à choix multiple sur un, deux, ou trois sous-formulaires
Quelques lignes de VBA

Comme expliquer par zenon, en mode conception il y a une fenêtre qui renferme les propriétés de l'objet, onglet Évènement, tu devrais trouver la méthode "After Update" , en français, ça se dirait "Après MAJ".
Tu devrais attérir dans le code des routines que je te désignait dans mon exemple.

Lupin
0
faon Messages postés 16 Date d'inscription samedi 11 mars 2006 Statut Membre Dernière intervention 20 mars 2008 > Lupin
18 mars 2006 à 18:16
Bonjour et mille excuses g laissé tomber qqjours découragé
Il ne me reste que cette saloperie de champ "N° compte financier","N° compte financier(R)" et "Assignation" de mon formulaire pour finir mon application et je patauge dans la choucroute
Dans les 2 premiers cités, j'ai repris la macro en procédure événementielle "After UpDate" du site www.fundp.ac.be/jmlambert/vba/Notes1-Exemples-2.html.Quoique j'introduise un n° compte correct,il me renvoie chaque fois compte bancaire incorrect.
De ce fait, je ne sais plus écrire de procédure événementielle ni de fonction pour mon champ assignation.
Je suis nulllll en vba , les conseils avisés me seraient les bien venus.
Merci d'avance
0
zenon Messages postés 726 Date d'inscription jeudi 30 septembre 2004 Statut Membre Dernière intervention 13 février 2010 180 > faon Messages postés 16 Date d'inscription samedi 11 mars 2006 Statut Membre Dernière intervention 20 mars 2008
18 mars 2006 à 22:50
Bonsoir,


Je ne comprends pas où se situe le problème.

Avec des champs texte indépendants la technique proposée par Lupin fonctionne parfaitement... (il n'est pas indispensable d'écrire un module)

L'as-tu testée dan un formulaire indépendant?

Peut-être que le problème se situe au niveau de la mise à jour du champ "assignation". Si tu affiches le résultat dans la section détail d'un formulaire et s'il s'agit d'un champ texte indépendant tous les enregistrements prendront la même valeur lorsque tu auras exécuté le code dans l'un d'entre eux puisque ce contrôle indépendant ne se réfère pas à des données de la table sous-jacente. Le problème est-il celui la?

Pour éviter ce type de problème, le plus simple serait d'ajouter un champ "assignation" à la table et d'exécuter une requête mise à jour pour tous les enregistrements existants. Je peux t'expliquer comment faire si ça t'intéresse...

Ensuite, lors de l'ajout ou de la mise à jour des enregistrements, le code proposé par Lupin reprendra sans problème la main.

Si tu ne veux pas "polluer" ta table avec des données redondantes, tu peux fonder le formulaire sur une requête et créer temporairement le champ assignation puis exécuter une nouvelle requête qui le mettrait à jour.

Tu peux aussi faire une bouble sur tous les enregistrements pour définir la valeur en réutilisant une partie du code de Lupin...
et en créant temporairement le contrôle.

Bref, ce ne sont pas les solutions qui manquent...
Qu'en penses-tu? Il est difficile de t'aider sans connaître la structure de tes données.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
zenon Messages postés 726 Date d'inscription jeudi 30 septembre 2004 Statut Membre Dernière intervention 13 février 2010 180
23 mars 2006 à 20:55
Va voir dans l'aide du coté de SerieDate.
Je n'ai pas le temps de tester pour le moment...
0
faon Messages postés 16 Date d'inscription samedi 11 mars 2006 Statut Membre Dernière intervention 20 mars 2008
27 mars 2006 à 17:42
Bonsoir Zenon,
J'ai trouvé ce qu'il me faut dans Excell (Fin.Mois) cela marche sous excel mais pas moyen d'activer la fonction en access me renvoie#Nom?#. Utilitaire activé . Quid? Merci de ta réponse.J'aimerai si possible la créer en fonction ?
0
zenon Messages postés 726 Date d'inscription jeudi 30 septembre 2004 Statut Membre Dernière intervention 13 février 2010 180
28 mars 2006 à 20:50
Bizarre, ça ne fonctionne pas chez moi non plus, même après avoir chargé la DLL "o???" dont parle l'aide... et ça ne marche pas non plus dans Excel... où est Bill??

J'ai écrit une 'tite fonction:

Private Sub ...
Dim X As Date
For X = Date To X = Date - 31 Step -1
If Month(X) = Month(Date) - 1 Then
ChampIndépendantADéfinir = X
Exit For
End If
Next X
End Sub

Chez moi, ça fonctionne
0
Salut tout le monde,
Voila dans mon formulaire, j'ai un champs dans lequel je dois saisir un code par exemple 1000 et lorsque ce code est saisi j'aimerais que dans un autre champs apparaissent automatiquement le terme auquel correspond ce code.
J'ai une table avec les deux champs en question. Il ya une colonne avec le code et celle avec les correspondances par exemple 1000 correspond à logement 8180 à chalet etc.
Je ne connais rien a visual basic...
Qui peut m'aider?
Merci beaucoup par avance
0
Bonjour,

Ecrire un filtre en VBA pour l'ouverture d'un formulaire, ça va.
Par contre je ne sais pas comment lui dire de conserver ce filtre tout le temps que je suis dans le formulaire et dans lequel je fais d'autres filtres.

je m'explique par un ex :

J'ouvre un fomulaire f_Client trié sur la ville d'origine du client.
Dans ce formulaire je souhaite faire des "sous-tri" via des listes déroulantes (âge, nom...)

Jusque là pas de problème, les tris se font bien.

Sauf que si je décide de défiltrer mes sous-tri il défiltre tout et me montre l'ensemble des clients de toutes les villes et plus uniquement celle qui a été selectionnée au départ.

Comment faire pour qu'un filtre de départ soit inchangeable tant qu'on est dans le formulaire?

merci d'avance de vos réponses.
Seb
0
M... je n'ai pas posté au bon endroit, désolé je débute sur les forum...
Je ne sais pas comment effacer mon message, donc désolé.
0