[access] affiche un champ en fct° d'un autre

Résolu/Fermé
SAYLA Messages postés 51 Date d'inscription jeudi 15 novembre 2007 Statut Membre Dernière intervention 9 juin 2008 - 13 déc. 2007 à 10:20
SAYLA Messages postés 51 Date d'inscription jeudi 15 novembre 2007 Statut Membre Dernière intervention 9 juin 2008 - 15 déc. 2007 à 15:16
Bonjour,
je fais un fichier sous access :
j'ai un formulaire "animaux" dans lequel j'ai un champ "Espèce" et un champ "Race", ces deux champs se sélectionne par une liste. J'ai donc une table "espèces" avec comme champ "Espèce" et une table "races" avec comme champs "Race" et "Espèce"(liste de la table "espèces").
Je souhaiterais que dans mon formulaire "animaux", lorsque j'ai sélectionner l'espèce seul s'affiche dans ma liste des races, les races correspondant à l'espèce.
Quelqu'un aurait-il une solution assez simple ?????
Merci d'avance

11 réponses

phil232 Messages postés 607 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 31 janvier 2008 178
13 déc. 2007 à 15:18
MyRaceCombo.DataSource = "SELECT * FROM Races WHERE Espece = '" & MyEspeceCombo & "'"

Ceci va dans MyEspeceCombo_OnClick
0
SAYLA Messages postés 51 Date d'inscription jeudi 15 novembre 2007 Statut Membre Dernière intervention 9 juin 2008
14 déc. 2007 à 14:17
Bonjour phil232,
exusez pour le retard,
je suis novice, il s'agit bien d'un code sous VB ?
Où je trouve MyEspeceCombo_OnClick?
J'ai déjà fait des codes sous VB mais aucun de ce genre ?
0
phil232 Messages postés 607 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 31 janvier 2008 178
14 déc. 2007 à 14:22
Où je trouve MyEspeceCombo_OnClick? --> champ "Espèce
MyRaceCombo --> champ "Race"

sub MyEspeceCombo_OnClick

MyRaceCombo.DataSource = "SELECT * FROM Races WHERE Espece = '" & MyEspeceCombo & "'"

end sub
0
SAYLA Messages postés 51 Date d'inscription jeudi 15 novembre 2007 Statut Membre Dernière intervention 9 juin 2008
14 déc. 2007 à 14:33
j'ai essayé mais ça ne fonctionne pas, pour chaque espèce, j'ai toutes les races qui s'affichent.
0
phil232 Messages postés 607 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 31 janvier 2008 178
14 déc. 2007 à 14:37
pfff

dans les propiétés de la combo t'as bien cliqué sur OnClick et puis choisi procédure événementielle ?
0
SAYLA Messages postés 51 Date d'inscription jeudi 15 novembre 2007 Statut Membre Dernière intervention 9 juin 2008
14 déc. 2007 à 14:41
tu vas t'énerver mais c'est quoi exactement une combo, moi j'ai un champ Espèce et un champ Race
0

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

Posez votre question
phil232 Messages postés 607 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 31 janvier 2008 178
14 déc. 2007 à 14:54
diable, comment travaille-tu ? avec des textbox ? ça veut dire que t'as decouvert Access ce matin ? des choses comme ça sont mis (normalement) dans une combo (liste deroulante, si tu préfères). ça évite les faute de frappe p.ex.
0
SAYLA Messages postés 51 Date d'inscription jeudi 15 novembre 2007 Statut Membre Dernière intervention 9 juin 2008
14 déc. 2007 à 15:12
ok c'est ma première base, je ne connais pas les termes techniques mais j'utilise bien des listes déroulantes modifiables. Mais je vois toujours pas j'ai un champ "Espèce", ce que je comprend pas c'est quel champ porte le nom MyEspecesCombo
0
phil232 Messages postés 607 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 31 janvier 2008 178
14 déc. 2007 à 15:20
1. évites d'utiliser des caractères "étranges" dans les noms (accents, cedille, etc.)
2. bien que tu va probablement pas développer une app international il est toutefois recommendé d'utiliser les termes en anglais. cela facilite la recherche sur google (ou tu trouve 50 à 100 plus d'info en anglais qu'en français)
3. normalement on préfixe les control pour indiquer de quoi il s'agit (txt, cbo, lst, ...)
4. MyEspecesCombo s'appelle comme ça pour te dire c'est TA COMBO ET JE NE CONNAIS PAS SON NOM
5. bref MyEspecesCombo = cboSpecies (ta "Espèces"), mais si tu insiste restes avec "Espèces", c'est ta faute/pb
6. Ca me fait mal au coeur mais bon pour toi ça donne :

Race.DataSource = "SELECT * FROM Races WHERE Espece = '" & Espèces & "'"

c'est mieux comme ça ?
0
SAYLA Messages postés 51 Date d'inscription jeudi 15 novembre 2007 Statut Membre Dernière intervention 9 juin 2008
14 déc. 2007 à 15:40
j'ai compris mais ça ne marche toujours pas, et je suis sur d'avoir saisie correctement
0
SAYLA Messages postés 51 Date d'inscription jeudi 15 novembre 2007 Statut Membre Dernière intervention 9 juin 2008
14 déc. 2007 à 16:13
Est-ce que mes tables "espèces" et "races" ne sont pas mal construites ? Du fait que dans ma table "races" j'ai d'abord "Race" puis "Espèce" en liste de choix, quand je le reprend dans mon formulaire "animaux" dans le champ "Race" n'apparaît que la "Race" seul 1 colonne est liée, est-ce le problème?
0
phil232 Messages postés 607 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 31 janvier 2008 178
14 déc. 2007 à 16:10
montres un peu le code du OnClick stp
0
SAYLA Messages postés 51 Date d'inscription jeudi 15 novembre 2007 Statut Membre Dernière intervention 9 juin 2008
14 déc. 2007 à 16:16
Sub Espèce_OnClick()
Race.DataSource = "SELECT * FROM races WHERE Espèce = '" & espèces & "'"
End Sub
0
phil232 Messages postés 607 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 31 janvier 2008 178
14 déc. 2007 à 16:42
ah, je corois que j'ai oublié qq chose

Sub Espèce_OnClick()

Race.DataSource = "SELECT * FROM races WHERE Espèce = '" & espèces & "'"
race.requery

End Sub
0
SAYLA Messages postés 51 Date d'inscription jeudi 15 novembre 2007 Statut Membre Dernière intervention 9 juin 2008
14 déc. 2007 à 17:20
toujours pas
0
phil232 Messages postés 607 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 31 janvier 2008 178
14 déc. 2007 à 17:30
tu peut faire F9 (insert breakpoint) sur la ligne race.requery . juste pour voir s'il passe par là
0
SAYLA Messages postés 51 Date d'inscription jeudi 15 novembre 2007 Statut Membre Dernière intervention 9 juin 2008
14 déc. 2007 à 17:38
quand j'ai fait F9, la ligne c'est colorée en bordeau avec un gros point qui c'est mis devant
0
phil232 Messages postés 607 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 31 janvier 2008 178 > SAYLA Messages postés 51 Date d'inscription jeudi 15 novembre 2007 Statut Membre Dernière intervention 9 juin 2008
14 déc. 2007 à 17:56
oui, ça indique que c'est un breakpoint (poit d'arrêt). Maintenant tu dois choisir un élément dans ta combo et voir si le programme arrete son éxécution à cet endroit. s'il se passe rien ça veut dire qu'Access ne sait pas que tu a attaché une procedure événementielle (Properties OnClick/OnChange --> [procédure événementielle])
0
SAYLA Messages postés 51 Date d'inscription jeudi 15 novembre 2007 Statut Membre Dernière intervention 9 juin 2008 > phil232 Messages postés 607 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 31 janvier 2008
14 déc. 2007 à 18:00
Je pense qui ne trouve pas la procédure, mais si je sélectionne [procédure évènementielle] sur click, il me maît une Private Sub et une erreur ensuite
0
SAYLA Messages postés 51 Date d'inscription jeudi 15 novembre 2007 Statut Membre Dernière intervention 9 juin 2008 > phil232 Messages postés 607 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 31 janvier 2008
14 déc. 2007 à 18:03
J'ai une erreur de compilation, Membre de méthode ou de données introuvable et il me sélectionne ".DataSource="
0
SAYLA Messages postés 51 Date d'inscription jeudi 15 novembre 2007 Statut Membre Dernière intervention 9 juin 2008 > phil232 Messages postés 607 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 31 janvier 2008
14 déc. 2007 à 18:04
Private Sub Espèce_Click()
Race.DataSource = "SELECT * FROM races WHERE Espèce = '" & espèces & "'"
Race.Requery
End Sub
C'est le code que j'ai saisi
0
phil232 Messages postés 607 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 31 janvier 2008 178
14 déc. 2007 à 18:23
est tu toujours avec une textbox ou t'as déjà créé une liste deroulante ?

pour une combo (liste déroulante [ça m'est trop longue, je vais continuer à lappeller combo) tu a les propriétés

merde, je t'es données la mauvaise prop

RowSourceType = Table/Query ' à configurer dans les props
RowSource = "SELECT * FROM races WHERE Espèce = '" & espèces & "'" ' à utiliser dans le code


http://office.microsoft.com/en-us/access/HP051884911033.aspx
0
SAYLA Messages postés 51 Date d'inscription jeudi 15 novembre 2007 Statut Membre Dernière intervention 9 juin 2008
15 déc. 2007 à 15:16
Ok, merci pour le lien du site internet en fait c'était encore plus simple que tout ça :
J'ai un champ "Espèce" qui est une zone de liste déroulante dans mon formulaire "animaux", j'ai un champ "Race" qui est une zone de liste déroulante dans mon formulaire "animaux". Le champ "Race" provient de la table "races" qui comprend deux champs "Race" et "Espèce" ("Espèce" est une zone de liste déroulante qui provient d'une table "espèces" contenant un seul champ "Espèce").
Lors de la crétaion de la zone de liste "Race" dans les propriétés données,contenu : ouvrir le générateur d'expression afficher la table "races" afficher "Race" et afficher "Espèce" sous "Espèce" dans les critaires inscrire "[Forms]![animaux]![Espèce], puis valider. Puis dans le champ "Espèce" inscrire un code VB sur Après Mise à jour :
Private Sub Espèce_AfterUpdate()
Me.Race = Null
Me.Race.Requery
Me.Race = Me.Race.ItemData(0)
End Sub
Et voilà, ça marche.
Encore merci pour votre aide, bonne journée et bon week-end
0