Problème sous Access 2007

Fermé
Rougv86 - 30 août 2008 à 12:50
 Le Pingou - 7 sept. 2008 à 23:49
Bonjour tout le monde!

J'ai un petit problème avec une base de données ( pour un classement sportif ) que j'essaie de créer sous Access 2007. Ayant découvert ce logiciel depuis peu, je n'y connais pas grand chose. Voici ce que je voudrais faire :

J'ai créé une table "Points" avec les champs "ID", "NOM / Prénom" et "Points".

J'ai ensuite commencé à faire un formulaire : je choisis dans une liste déroulante une valeur du champ "NOM / Prénom", et j'aimerais que, en cliquant, par exemple sur un bouton "Valider", un nombre de points (déterminé auparavant) soit attribué automatiquement en plus de la valeur existante du champ "Points" associé au NOM / Prénom

Je vais donner un exemple, vous comprendrez peut-être mieux :)

Mr. "MUCHE Truc" a 10 points. Dans la liste déroulante du formulaire, je choisis son nom. J'ai décidé auparavant qu'en cliquant sur Valider, 50 points seraient attribués. Une fois son nom choisi, je clique donc sur Valider, et hop ! MUCHE Truc se retrouve avec 60 points ( 10 + 50 ).

Quelqu'un saurait-il quelle procédure effectuer ? Que créer ? Quel code (je suppose qu'il faut une macro ou un truc du genre pour ca ) faut-il taper ??

Voilà, en espérant m'être fait comprendre!!

Merci d'avance !
A voir également:

28 réponses

LatelyGeek Messages postés 1758 Date d'inscription vendredi 4 janvier 2008 Statut Membre Dernière intervention 5 janvier 2023 550
30 août 2008 à 15:35
Me!NomDuFormulaire!NomDuChamp.Value = Me!NomDuFormulaire!NomDuChamp.Value + 50

Ce ci dans la propriété Sur Clic du Bouton.

Si le nombre de points à ajouter est variable, tu peux créer une zone de texte indépendante que tu renseigneras et la syntaxe deviendra:

Me!NomDuFormulaire!NomDuChamp.Value = Me!NomDuFormulaire!NomDuChamp.Value + !Me!NomDuFormulaire!NomDeLaZoneDeTexte.Value
0
Ca ne marche pas !

Quand je mets cette formule dans la propriété "Sur Clic" du Bouton, on me met le message d'erreur suivant :

" Erreur d'exécution '2465' :

Microsoft Office Access ne trouve pas le champ 'Form1' auquel il est fait référence dans votre expression"

Suivant tes instructions, j'ai donc rentré la formule : Me!Form1!Points.Value = Me!Form1!Points.Value + 50 , Form1 étant le nom de mon formulaire, et Points le nom du champ.
Que faut-il faire ??

En voyant la formule que tu m'as donnée, je me suis dit : mais comment Access va-t-il savoir qu'il faut ajouter 50 à la valeur Points en relation avec le nom choisi dans la liste déroulante ? Ta formule résout-elle ce problème ?

En tout cas, merci pour ton aide! En espérant que tu aies d'autres idées!
0
Personne n'a d'autres idées ??
0
LatelyGeek Messages postés 1758 Date d'inscription vendredi 4 janvier 2008 Statut Membre Dernière intervention 5 janvier 2023 550
1 sept. 2008 à 18:31
Je sais pas ce qui m'est passé par la tête. Les vacances, sans doute...

Me!Points.Value = Me!Points.Value +50

Le Form1 n'a absolument rien à faire là...

Et pour ce qui est de comment Access va comprendre à qui il faut ajouter les 50: A celui qui est actuellement affiché dans le formulaire.
0

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

Posez votre question
Ca ne marche toujours pas. Voilà ce que j'ai mis dans le générateur de code, dans la propriété "Sur Clic" du Bouton :

Private Sub Commande2_Click()
Me!Points.Value = Me!Points.Value + 50
End Sub

Et j'ai toujours droit au même message d'erreur :

"
Erreur d'exécution '2465' :

Microsoft Office Access ne trouve pas le champ 'Points' auquel il est fait référence dans votre expression

Pourtant, ce champ 'Points' existe bel et bien !
0
LatelyGeek Messages postés 1758 Date d'inscription vendredi 4 janvier 2008 Statut Membre Dernière intervention 5 janvier 2023 550
1 sept. 2008 à 22:50
Alors alors... Mettons nous bien d'accord.

Tu es dans un formulaire, dans lequel est affiché un enregistrement contenant un champ nommé Points, et dans ce formulaire se trouve un bouton à la propriété Sur Clic duquel est attaché le module qui dit Me!Points.Value = Me!Points.Value + 50.

Il faut que tous les points exposés dans cette phrase soient bien respectés. J'ai l'air d'insister bêtement, mais ça DEVRAIT fonctionner, alors il y a forcément un truc qui déconne quelque part...
0
Euh.. je ne comprends pas bien ce que tu veux dire par : "un enregistrement contenant un champ nommé Points".
J'ai une table Compta (qui s'appelait avant Points, je l'ai renommée pour qu'il n'y ait pas de confusion), contenant un champ Nom_Prenom et un champ Points.
D'autre part, j'ai un Formulaire Form1, contenant :
- une liste déroulante permettant de choisir un enregistrement du champ "Nom_Prenom" de la table "Compta".
- un bouton Valider, avec ta formule dans la propriété sur clic.

C'est ce à quoi tu pensais ?

Sinon, tous les points exposés dans ta phrase sont respectés!
0
LatelyGeek Messages postés 1758 Date d'inscription vendredi 4 janvier 2008 Statut Membre Dernière intervention 5 janvier 2023 550
2 sept. 2008 à 13:06
Mais ke champ Point n'est pas dans le formulaire????? Sur quoi il est basé, ton formulaire? Sur rien, je suppose... Pas étonnant que ça ne fonctionne pas.

Tu crées un formulaire basé sur la table Compta.
Tu y ajoutes une liste modifiable en choisissant l'option 3 de l'assistant, qui va afficher à l'écran la personne et ses points. Tu mets le bouton Valider, et là, ça fonctionnera.
0
Je vais passer pour un gros boulet, mais : comment créer un formulaire "basé sur la table Compta" ? :)

Désolé, j'y connais vraiment rien.
Merci!
0
Ah ca y'est, j'ai compris ! Et ca marche !

En revanche, est ce qu'il est possible d'attribuer à différentes personnes des valeurs différentes, sur le même formulaire ??

Ex:

On choisit, "MUCHE Truc" dans une liste déroulante 1, on lui attribue 50 points
On choisit "MACHIN Truc" dans une liste déroulante 2, on lui attribue 30 points
On choisit "TRUC Bidule" dans une liste déroulante 3, on lui attribue 15 points , etc etc.. et tout ca dans le même formulaire

Comment faut il procéder pour pouvoir faire ça ??
0
LatelyGeek Messages postés 1758 Date d'inscription vendredi 4 janvier 2008 Statut Membre Dernière intervention 5 janvier 2023 550
2 sept. 2008 à 17:19
Oui, c'est possible, si on a un moyen d'expliquer à Access en fonction de quoi il choisit les points (ancienneté ou autre)

Explique moi STP
0
Ben j'veux juste pouvoir, en gros, faire un formulaire "de classement" :

On choisit dans la liste déroulante qui est 1er, et on lui attribue un nombre de points
On choisit dans une autre liste déroulante qui est le deuxieme, et on lui attribue un nombre de points (différent)
Et caetera...

Les valeurs des points à attribuer sont fixes, je les détermine par moi même.
0
LatelyGeek Messages postés 1758 Date d'inscription vendredi 4 janvier 2008 Statut Membre Dernière intervention 5 janvier 2023 550
2 sept. 2008 à 18:19
Essaye

Me!Points.Value = Me!Points.Value + InputBox("Combien de points?")
0
oui, mais le problème, c'est que quand je fais ca, il attribue automatiquement 50 points, non seulement à la valeur choisie dans la première liste déroulante, mais aussi à toutes les autres valeurs . En résumé, c'est comme si j'attribuais 50 points à tout le monde. Or, je voudrais pouvoir attribuer des nombres de points différents aux Noms choisis dans chaque liste déroulante, et non pas ajouter 50 partout. Tu saisis ?
0
LatelyGeek Messages postés 1758 Date d'inscription vendredi 4 janvier 2008 Statut Membre Dernière intervention 5 janvier 2023 550
2 sept. 2008 à 21:10
Le but de ça, c'est qu'Access te pose la question à chaque fois:
InputBox("Combien de points?")
0
Ben non, si je pouvais éviter de devoir à chaque fois mettre la valeur à attribuer, ca serait mieux. J'aimerais bien pouvoir déterminer dans un code, pour chaque bouton, combien de points sont attribués "Sur Clic".

Mais à la limite, c'est pas ca le plus important.
Ce qui ne vas pas pour l'instant, c'est que je n'arrive pas à dissocier les différentes listes déroulantes, pour qu'il n'attribue pas la valeur souhaitée à tous les enregistrements sélectionnés dans les différentes listes déroulantes

L'idéal, ca serait de pouvoir faire un code tel que, pour chaque liste déroulante, on puisse attribuer une valeur souhaitée (sans avoir recours à InputBox("Combien de points?") ). Ce serait possible ?

En tout cas, merci beaucoup de ta patience :=)
0
LatelyGeek Messages postés 1758 Date d'inscription vendredi 4 janvier 2008 Statut Membre Dernière intervention 5 janvier 2023 550
3 sept. 2008 à 12:43
Je ne comprends pas. En fonction de QUOI sont attribués les points?????

Pourquoi passer par un formulaire et un bouton??? Pourquoi pas une requête Mise à Jour????

Sinon, tu fais un bouton "+30", un bouton "+50" etc, avec un code diffréent à chaque fois, et tu cliques sur celui que tu veux après avoir sélectionné la personne dans la liste, mais j'avoue ne pas bien saisir le pourquoi du comment, dans ton truc.
0
Les points sont attribués, en quelque sorte, "en fonction de rien", c'est moi qui détermine combien de points ajouter "sur clic" de tel ou tel bouton. Le nombre de points à ajouter n'est pas une variable, il est une valeur fixe dans le code.

L'idée du formulaire et du bouton n'était juste qu'une solution, une requête de mise à jour me satisferait aussi, le seul problème, c'est que je ne sais pas non plus quel code taper. Cette idée m'avait été donnée sur un autre forum où j'ai soumis mon problème, mais personne ne m'a répondu quand j'ai demandé des précisions.

D'autre part, tu me dis : "Sinon, tu fais un bouton "+30", un bouton "+50" etc, avec un code différent à chaque fois" : c'est justement ça que je cherche à faire. Mais le problème, c'est que je ne sais pas comment faire pour différencier ces boutons, histoire qu'il ne m'ajoute pas +30 ou +50 à tout le monde, mais juste à une personne. Si je mets sur un bouton Me!Points.Value = Me!Points.value + 50, et sur un autre bouton, Me!Points.Value = Me!Points.value + 30, ca ne marche pas. Comment faire ?
0
LatelyGeek Messages postés 1758 Date d'inscription vendredi 4 janvier 2008 Statut Membre Dernière intervention 5 janvier 2023 550
3 sept. 2008 à 22:28
Si je mets sur un bouton Me!Points.Value = Me!Points.value + 50, et sur un autre bouton, Me!Points.Value = Me!Points.value + 30, ca ne marche pas. Comment faire ?

Toutes les solutions que je t'ai données jusqu'à présent fonctionnent chez moi, et je ne comprends vraiment pas du tout où est ton problème. Si tu écris +30 sur un bouton et +50 sur un autre, qu'est ce qui ne marche pas?????
0
Si j'écris + 30 sur un bouton et + 50 sur l'autre, quand je clique sur le bouton +30, ca ajoute 30 points au gars qui est concerné par le + 30, mais aussi au gars qui est concerné uniquement par le +50. Mais je ne veux ajouter + 30 qu'à une seule personne ! pas à tout le monde! et idem pour le +50. Je voudrais pouvoir avoir des "ensembles" : une liste déroulante ou je choisis un nom, et un bouton +50 par exemple qui ajoute 50 points uniquement à ce nom ; une autre liste déroulante ou je choisis un nom, et un bouton +30 qui ajoute 30 points uniquement à ce nom.. etc etc. Or, je n'arrive pas à ce qu'Access différencie ces différents "ensembles"
0