[ACCESS] Liste de choix

Fermé
gogot01 Messages postés 13 Date d'inscription jeudi 19 janvier 2006 Statut Membre Dernière intervention 24 février 2007 - 17 févr. 2007 à 10:03
blux Messages postés 26001 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 24 avril 2024 - 25 févr. 2007 à 14:52
Bonjour,
Je suis un vrai débutant sous access et voici mon problème...

J'ai fait une table JOUEURS avec comme attributs :
1- le nom des joueurs
2- état (fixé à 0 par défaut)

Dans une liste de choix, je choisis un nom de joueurs, provenant de ma table JOUEURS...
J'aimerai que, après avoir sélectionné mon nom de joueur, l'état qui lui correspond passe à 1 automatiquement.

Merci pour votre aide

6 réponses

gogot01 Messages postés 13 Date d'inscription jeudi 19 janvier 2006 Statut Membre Dernière intervention 24 février 2007
19 févr. 2007 à 15:14
Toujours personne pour m'aider ! SVP......
0
gogot01 Messages postés 13 Date d'inscription jeudi 19 janvier 2006 Statut Membre Dernière intervention 24 février 2007
21 févr. 2007 à 11:32
J'essaie de trouver qqc, mais pas facile...

Je tente avec "AprèsMAJ", et une macro qui utilise ItemSelected, mais y'a pas moyen !

Help me SVP
0
blux Messages postés 26001 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 24 avril 2024 3 289
21 févr. 2007 à 12:37
Salut,

en fait, il faut récupérer le nom du joueur :
ma_liste.value
créer une requête SQL qui va mettre à jour :
UPDATE JOUEURS SET Etat = 1 WHERE nom_joueur=ma_liste.value
Et c'est à mettre dans le code 'sur changement'.

Ca devrait être tout !
0
gogot01 Messages postés 13 Date d'inscription jeudi 19 janvier 2006 Statut Membre Dernière intervention 24 février 2007
22 févr. 2007 à 12:09
Merci, mais je suis un simple débutant...

Pourriez-vous, SVP, me décrire un peu + la chose !

Comment récupérer le nom du joueur ?
Comment créer cette requête ?

Désolé, mais j'essaie et je n'arrive pas...
0

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

Posez votre question
blux Messages postés 26001 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 24 avril 2024 3 289
23 févr. 2007 à 09:47
Et bien, dans les propriétés de la zone de liste, tu choisis l'évènement 'sur changement', tu récupères le nom renvoyé par ta liste et tu le mets en paramètre d'une requête qui va mettre à jour ta table :
DoCmd.runsql (UPDATE JOUEURS SET Etat = 1 WHERE nom_joueur=ma_liste.value)
0
gogot01 Messages postés 13 Date d'inscription jeudi 19 janvier 2006 Statut Membre Dernière intervention 24 février 2007
23 févr. 2007 à 11:25
Merci beaucoup pour votre aide.
Je touche au but grâce à vous : je persiste...

J'ai mis donc dans le code, sur l'évènement 'AprèsMAJ' de ma liste nommée 'LISTE_JOUEURS' :

" Private Sub LISTE_JOUEUR_AfterUpdate()

DoCmd.runsql (UPDATE JOUEURS SET Etat = 1 WHERE nom_joueur=LISTE_JOUEUR.value)

End Sub"

Hélas, lors de la sélection d'un joueur dans ma liste, Access me donne 'Erreur de compilation : erreur de syntaxe'...

A l'aide, SVP !?!
0
blux Messages postés 26001 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 24 avril 2024 3 289
23 févr. 2007 à 11:33
Oui, c'est normal, il faut lui dire de comparer avec le contenu de liste_joueur et non avec 'liste_joueur' :
Dim Str as String
Str = "UPDATE JOUEURS SET Etat = 1 "
Str = Str + "WHERE nom_joueur = '" & LISTE_JOUEUR.value & "';"
DoCmd.runsql Str
0
gogot01 Messages postés 13 Date d'inscription jeudi 19 janvier 2006 Statut Membre Dernière intervention 24 février 2007
23 févr. 2007 à 12:03
Merci encore !

Je viens de rentrer votre code...
Plus d'erreur de compilation mais tjrs un souci !

Quand je sélectionne un nom de joueur (Toto par exemple), une nouvelle fenêtre s'affiche (titre 'Entrer une valeur de paramètre' avec 'nom_joueur')...
J'entre le nom 'toto' puis OK. Apparaît une alerte me disant que "Vous allez mettre à jour 0 lignes [...]"... je clique sur OK, et je vais voir dans la table 'JOUEURS'

L'état de 'Toto' est tjrs à 0... lol !
0
blux Messages postés 26001 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 24 avril 2024 3 289
23 févr. 2007 à 22:03
Dans la requête que je t'ai fournie, remplace nom_joueur par le nom de la colonne qui contient le nom des joueurs...
0
gogot01 Messages postés 13 Date d'inscription jeudi 19 janvier 2006 Statut Membre Dernière intervention 24 février 2007
23 févr. 2007 à 22:35
Merci de vous donner du mal pour moi !

J'ai bien fait ce que vous m'avez demandé : plus de fenêtre s'affiche, seul le message "vous allez mettre à jour 0 lignes [...]" apparaît.
Par contre, quand je sélectionne le nom 'toto', l'état de Toto ne passe pas à 1.

Rappel : table 'Joueurs', avec en colonne 1 'Nom' et en colonne 2 'Etat'
Voici le code que j'ai mis :
Private Sub LISTE_JOUEURA1_AfterUpdate()
Dim Str As String
Str = "UPDATE Joueurs SET Etat = 1 "
Str = Str + "WHERE Nom = '" & LISTE_JOUEURA1.Value & "';"
DoCmd.RunSQL Str
End Sub


PS : si vous voulez que je vous envoie par mail mon doc Accees, je n'y vois aucun inconvénient...
0
blux Messages postés 26001 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 24 avril 2024 3 289
23 févr. 2007 à 22:49
Le seul truc qui pourrait clocher, c'est que LISTE_JOUEURA1 ne renvoie pas le nom du joueur mais un identifiant...

Pour en être sûr, rajoute la ligne msgbox Str avant le runsql, ACCESS affichera le contenu de str, et on verra ce qui ne va pas...
0