Comment changer une photo en fonction du chanp age? [Résolu]

Signaler
Messages postés
16
Date d'inscription
vendredi 30 mai 2008
Statut
Membre
Dernière intervention
15 novembre 2010
-
Messages postés
16
Date d'inscription
vendredi 30 mai 2008
Statut
Membre
Dernière intervention
15 novembre 2010
-
Bonjour a tous,

Voilà m'ont problème.
J'ai une table access avec un champ Age, dans le formulaire lier a cette table, j'aimerai que dans le formulaire, ou j'ai placé de photo appelons les Jeunes et Vieux, quand le champ Age étant par EX: > a 8ans la photo Vieux apparaisssant, quand le champ Age étant > a 8ans la photo Jeunes apparaissant, tous fonctionent très bien dans mon programme, sauf celà et je désespère,malgré toutes les tentatives éssayés.
D'avence merci a tous ceux m'apportant une aide.

De plus un pour ce site qui m'apporte souvent beaucoup de réponses.

12 réponses

Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
73
Dans ton test, il y a un aléa car, si age = 7, alors il sera Jeune et Vieux

Après le Else, inutile de répéter la condition.

En plus, ton programme a un problème d'équilibre : Il n'y a pas autant de "End If" que de "If"
Ce genre de chose, tu peux le corriger sans passer par le forum.

"Nouv" est toujours False : inutile de le mettre à l'intérieur d'un If

    Me.Nouv.Visible = False
    If Me.TexteAge >= 7 Then
        Me.Jeunes.visble = False
        Me.Vieux.Visible = True
    Else
        Me.Jeunes.visble = True
        Me.Vieux.Visible = False
    End If 

Pour le fun, tu peux aussi faire ce genre de code, en remplacement de ton If :
    Me.Nouv.Visible = False
    Me.Jeunes.visble = CBool(Me.TexteAge <= 7)
    Me.Vieux.visble = CBool(Me.TexteAge > 7)
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
67
un champ Age ?
Bien mauvaise idee...

on stocke la date de naissance, pas l'age !

Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
73
Tes explications sont trop vagues, vues de mon côté.

"j'ai tenté le code sans résultat"
Lequel ?

"RIEN"
Rien quoi ?

Apprends à débuguer, cela te permettra de vérifier le contenu de que TexteAge qui sert aux tests.
- F9 sur une ligne de code
Le programme s'y arrêtera au prochain passage
Survole avec la souris tes variables pour visualiser leur contenu, ou va dans la fenêtre de debogage (Ctrl-G) et tape
? maVariable
pour qu'elle s'inscrive dans la fenêtre.
- F8 (VB6) ou F10 (.Net) pour avancer d'une ligne de code
- F5 pour continuer normalement

Je ne te l'ai pas dit parce que cela ne va pas changer grand chose, mais il vaut mieux utiliser les syntaxes complètes :
En supposant que TexteAge soit une TextBox :
If Me.TexteAge.Text >= 7 Then

Tout ça pour dire que tu compares un texte à un chiffre : c'est souvent sujet à problème.
Pense à ajouter les fonctions de conversion de type :
If Val(Me.TexteAge.Text) >= 7 Then
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
73
Salut

Difficile de te répondre pour deux raisons :
- Tu dis travailler en VB.NET (2005, 2008 ou 2010) et Access
A mon avis, tu dois être dans le VBA de Access et pas sous VB.Net
- Ne sachant pas ce que tu as écrit pour l'instant, de quel type est ta variable 'Age', de quel type sont tes 'photos' ni dans quoi elles sont stockées
... impossible de t'aider.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Messages postés
16
Date d'inscription
vendredi 30 mai 2008
Statut
Membre
Dernière intervention
15 novembre 2010

Salut
Merci de me répondre effectivement,je vient de m'apercevoir m'ont oublie, c'est effectivement sous access VBA.

Le champ âge étant en numérique dans la table et également dans le formulaire, quand je passe en revue tous les noms, j'aimerai qu'a chaque changement de l'âge, l'image Jeunes ou vieux apparaissant.

Donc si l'âge étant > a 7ans l'image Vieux apparaissant, si l'âge étant < a 8 ans l'mage jeune apparaissant.
Ma table gère des Cheveaux.
Donc dans mon formulaire j'ai deux immages, une avec le nom Jeunes une avec le nom Vieux!

J'aimerai un styele

Private Sub Form_AfterUpdate()

If Me.TexteAge >= 7 Then
Me.Jeunes.visble = False
Me.Vieux.Visible = True
Me.Nouv.Visible = False
Else
If Me.TexteAge <= 8 Then
Me.Jeunes.visble = True
Me.Vieux.Visible = False
Me.Nouv.Visible = False
End If
End Sub


Problème aucune réaction au changement d'age.?

Je te joint mes sincères salutations.
Messages postés
16
Date d'inscription
vendredi 30 mai 2008
Statut
Membre
Dernière intervention
15 novembre 2010

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)Génial, si cela peut aider,je peux t'envoyer ma base, avec login et mot de passe et gestion des paris etc....
Messages postés
16
Date d'inscription
vendredi 30 mai 2008
Statut
Membre
Dernière intervention
15 novembre 2010

Re,
Un grand merci,je vient de constater lol que mon Nouv étant toujours en False, alors qu'il me sert a l'afficher,quand je rentre un nouv nom ou quand l'âge n'étant pas encore défini.
Je vais tenter t'ont code et te tiendrai au courant, dans l'attende un merci et salutation sincère et bonne soirée.
Messages postés
16
Date d'inscription
vendredi 30 mai 2008
Statut
Membre
Dernière intervention
15 novembre 2010

Bonjour et un Salut a Jack

L'année de naissance est calculé automatiquement quand l'âge étant saisie. Quand je récup les donné sur le Web les données, le cheval n'ayant que l'âge m'entionné,donc je saisie l'âge et l'année de naissance étant calculé automatiquement.



Jack ,j'ai tenté le code sans résultat aucune réaction.Là ou je ne comprend pas c'est que sur les autres code devant afficher en fonction de(....)les images apparaissent sans erreur,par contre sur la recherche de l'âge et afficher l'image en fonction de > ou < RIEN....lol a devenir fou
Messages postés
16
Date d'inscription
vendredi 30 mai 2008
Statut
Membre
Dernière intervention
15 novembre 2010

Salut a toi

Merci du temps consacré a m'aider, les exemple que tu m'a fourni n'ayant aucune réaction, j'ai eu la même idée de procéder par variable, mais avant j'ai restructuré m'a table et formulaire.

Dans ma table Âge étant en numérique.
Dans mon formulaire, ou je rentre l'âge étant une zone de texte au format numérique.

Donc dans mon formulaire, j'ai la zone texte pour le nom du Chavel,ma zone texte pour lui indiquer l'Âge et etc.....

Puis mes trois images "image au format BMP et un PNG.

Cela donnant pour la saisie

une zone de texte ayant pour nom "NomduCheval"
une zone de texte ayant pour nom "Age"

un cadre image appeler INouv
un cadre image appeler IJeunes
un cadre image appelle IVieux


Je vais essayer t'ont aide et te tiendrai au courant.

Le problème étant la première fois que je suis confronté a cela "un texte à un chiffre ou vice versa" et là je bloquelol

Donc est-ce que dans un premier temps, je ne devrai pas changer dans ma table, la valeur du champ de l'âge étant en numérique et le mettre en TEXTE, avant d'entreprendre le code?

Dans l'attente et ne voulant pas gaché t'on WK que je te souhaite bon un merci et salutation amicale..
Messages postés
16
Date d'inscription
vendredi 30 mai 2008
Statut
Membre
Dernière intervention
15 novembre 2010

Hello Jack01h36 lol

grace a ton aide précieuse je suis déjà parvenue a cela sans plantage!

Private Sub cboGoToContact_Change()
On Error GoTo cboGoToContact_Err

DoCmd.SetProperty "TAge", acPropertyEnabled, "-1"

If Nz(Me.TAge, "") = "" Then
Me.IVieux.Visible = False
Me.IJeunes.Visible = True
Me.INouv.Visible = False
End If

cboGoToContact_Exit:
Exit Sub

cboGoToContact_Err:
MsgBox "Une erreur est survenue, veuillez corriger", vbOKOnly + vbDefaultButton1 + vbCritical, "Désoler"
Resume cboGoToContact_Exit


End Sub

quand je change mes valeur false ou true les image apparaissant sans problème.

Maintenant comment faire pour avoir l'ensemble <> a7 ans....?quand je rajoute un nouveau If etc.....avec >7 y a gag.....@+ et salutation amicale.
Messages postés
16
Date d'inscription
vendredi 30 mai 2008
Statut
Membre
Dernière intervention
15 novembre 2010

Un grand salut a jack

Que je remerci d'avoir pris le temps pour m'aider,grace a ses petite étincelle,voila la lumière et tout cela fonctionnant a mervaille,ensemble nous avons réussie et voici le code final.


sur une zone de liste déroulante appeler cboGoToContact,sur évènement,sur changement.

Private Sub cboGoToContact_Change()
On Error GoTo cboGoToContact_Err

DoCmd.SetProperty "TAge", acPropertyEnabled, "-1"

If Nz(Me.TAge, "") = "" Then
Me.IVieux.Visible = False
Me.IJeunes.Visible = False
Me.INouv.Visible = True
Else
If Me.TAge >= 7 Then
Me.IVieux.Visible = True
Me.IJeunes.Visible = False
Me.INouv.Visible = False
Else
If Me.TAge <= 7 Then
Me.IVieux.Visible = False
Me.IJeunes.Visible = True
Me.INouv.Visible = False
End If

cboGoToContact_Exit:
Exit Sub

cboGoToContact_Err:
MsgBox "Une erreur est survenue, veuillez corriger", vbOKOnly + vbDefaultButton1 + vbCritical, "Désoler"
Resume cboGoToContact_Exit

End If
End If
End Sub

Maintenant j'aimerai savoir SI de ce code,je peux en faire un module appeler ITAgeChange
Et pouvoir l'assigner autant a ma zone déroulante qu'aux boutons suivant/précédent

Et encore un grand merci a jack.
Messages postés
16
Date d'inscription
vendredi 30 mai 2008
Statut
Membre
Dernière intervention
15 novembre 2010

Bon voilà j'ai tout réussi un grand merci a jacklol

et un a se FORUM qui apporte plein de soluttion.