|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : septembre 2007 Messages : 17 ![]() |
Bonjour, je suis un noob en access et j'aurai besoin de petits conseils pour gerer les jeux et concours du net.
Sous access 2007, j'ai donc une base Concours qui ne contient qu'une table concours. Chaque concours est reférecé par un N° concours. Ce que j'aimerai (en mode feuille) c'est que lorsque j'entre un numéro deja enregistré qu'access m'envoit un message comme quoi j'ai deja participé a ce concours. J'ai tenté des trucs avec la proprieté "Valide si" mais je pense ne pas avoir entrer la contrainte correctement. Donc si quelqun pouvait me donner la syntaxe ou la solution ca serai sympa. Ensuite, a chaque concours correspond un intitulé, un login et un mot de passe, j'aimerai que lorsque j'entre un intitulé deja existant que les champs login et mot de passe se remplissent automatiquement. Merci d'avance. |
|
|
00
|
|
|
#2 |
|
Expert Confirmé
![]() Diem VOVivre Inscription : avril 2006 Messages : 2 644 ![]() |
pour la première question:
dans ta table sur le champ dans le champ "indexé" met à "Oui-Sans doublons" pour ne pas permettre de doublons. pour la seconde: sur l'événement avant maj tu peux vérifier l'existance de la valeur avec DLookUp puis activer le filtre sur la valeur saisie si elle existe. ps:bienvenu sur le forum |
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : septembre 2007 Messages : 17 ![]() |
Merci pour la rapidité.
En ce qui concerne les doublons j'ai deja essayé et ca marche mais le message apparait seulement une fois que je passe a l'enregistrement suivant alors qu'avec la proprieté "Valide si" il suffit de passer au champ suivant pour savoir si j'ai deja joué et je peu personnaliser le message. J'ai essayé avec ceci Valide si "<>", <> "SELECT Concours.[N° Concours] FROM Concours;" , <> [N° Concours] , dans tous les cas je recois mon message mais il considere tout comme erreur. Pour la seconde cela me parrait une bonne idée mais je ne sais absolument pas comment me servir de cette fonction ni a quel endroit le faire, syntaxe ect... Un peu plus de precision serai sympa, je fais vraiment ca en amateur. |
|
|
00
|
|
|
#4 | ||||
|
Expert Confirmé
![]() Diem VOVivre Inscription : avril 2006 Messages : 2 644 ![]() |
bon,
sur l'événement avant MAJ de ton champ 'n°concours': Code :
Code :
|
||||
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() Inscription : septembre 2007 Messages : 17 ![]() |
Merci beaucoup pour tout ce que tu a fais. Je teste des que j'ai le temps et je te tiens au courant.
|
|
|
00
|
|
|
#6 |
|
Invité de passage
![]() Inscription : septembre 2007 Messages : 17 ![]() |
Alors lorsque je procede comme tu dis, lors de l'execution j'ai une fenetre macros qui apparait me demandant un nom pour la macro, je rentre un nom et il crée un module avec ce code:
Sub verif() End Sub J'execute la macro et quand je rentre mon n° concours, j'obtiens erreur d'execution 424 objet requis. Si je ne crée pas la macro et en passant direct sous access pareil. Les references de ton code sont bonnes si tu parles du nom des champs. Voila. |
|
|
00
|
|
|
#7 | ||
|
Expert Confirmé
![]() Diem VOVivre Inscription : avril 2006 Messages : 2 644 ![]() |
en mode création de ton form,
tu selectionne la zone de texte 'n°concours' dans les propriétes, événement, tu sélectionnes la propriété Avant MAJ sur les trois petit points '...' tu choisi générateur de code tu y mets le code: Code :
remplace monchampConcours,monchampIntitule,monchampLogin,monchampMotdePasse par le nom de tes zone de texte. bon courage |
||
|
|
00
|
|
|
#8 | ||
|
Invité de passage
![]() Inscription : septembre 2007 Messages : 17 ![]() |
Alors, la première fonctionne tres bien mais pour la seconde rien ne s'affiche lorsque j'entre un intitulé deja enregistré et il n'y a pas d'erreur.
Voici le code que j'ai entré : Code :
|
||
|
|
00
|
|
|
#9 | ||
|
Invité de passage
![]() Inscription : septembre 2007 Messages : 17 ![]() |
Alors mon probleme est en partie reglé.
Pour ma seconde question j'ai utilisé un recordset et cela fonctionne tres bien. J'en reviens a la premiere. Ce code : Code :
Si j'ai bien compris les bases je pense qu'il est donc possible d'utiliser un recordset pour cette procedure mais ca devient trop dur pour moi. Merci d'avance si vous pouvez m'aider. |
||
|
|
00
|
|
|
#10 | ||
|
Invité de passage
![]() Inscription : septembre 2007 Messages : 17 ![]() |
Plus important que mon precedent post, que j'ai a peu pres reglé en demandant une verification du format de la valeur (mais je suis pas contre une autre explication). J'ai un peu vite parlé en disant que l'affichage automatique du login marchait bien.
Voici le code Code :
|
||
|
|
00
|
|
|
#11 |
|
Expert Confirmé
![]() Diem VOVivre Inscription : avril 2006 Messages : 2 644 ![]() |
si tu passes par les recordset, ce que je ne te recommande pas bien que cela marche, il faut utiliser les méthodes de celui ci pour vérifier qu'il retourne des enregistrements
soit l'usuel: .nomatch après un repositionnement au début ensuite: .eof soit le plus commun: .RecordCount pour ce qui est de l'utilisation de valeur numérique cela ne marche pas il faut le transformer en texte avec CStr() ou .text mais il faut pas mettre entre guillement ou apostrophe sinon il considère comme tu texte et ne renverra rien. càd: dans le critère d'un dlookup par ex il faut: "[monchamp]='123'" si monchamp est du texte "[monchamp]=123" si monchamp est un nombre |
|
|
00
|
|
|
#12 | ||||
|
Invité de passage
![]() Inscription : septembre 2007 Messages : 17 ![]() |
Merci encore pour ton aide Vodiem mais la je galere vraiment avec mon affichage automatique. D'apres ce que j'obtiens avec le code du poste precedent je me dis qu'une partie du code est bonne mais qu'il manque une petite condition. Ma logique me dit que ce code devrait fonctionner :
Code :
Code :
|
||||
|
|
00
|
|
|
#13 |
|
Expert Confirmé
![]() Diem VOVivre Inscription : avril 2006 Messages : 2 644 ![]() |
salut,
Code :
if sql = "SELECT * FROM Concours WHERE [Intitulé]= '" & [Intitulé].Text & "';" then dans le deuxième code: Code :
Private Sub Intitulé_BeforeUpdate(Cancel As Integer) sinon c'est correct mais tu vas récupérer le premier intitulé correspondant quelque soit le concours tu es sur que c'est ca que tu veux? |
|
|
00
|
|
|
#14 |
|
Invité de passage
![]() Inscription : septembre 2007 Messages : 17 ![]() |
Le code en double est seulement une erreur de copier/coller dans mon post.
Le code ci dessus me donne bien le login correspondant lorsque j'entre un intitulé deja existant independemment du n° concours (c'est tout ce que je veux). Au cas ou l'intitulé n'existe pas je voudrais le login "xkira" par defaut. En entrant un intitulé non existant j'obtiens cette erreur "Valeur non valide pour ce champs" sur cette ligne "Login.Value = rst![Login]", donc impossible d'enregistrer un concours avec un nouvel intitulé.
|
|
|
00
|
|
|
#15 |
|
Expert Confirmé
![]() Diem VOVivre Inscription : avril 2006 Messages : 2 644 ![]() |
bon si tu veux bien poster un extrait de ta bd compacté et zippé pour l'on puisse voir ce qui se passe chez toi et te faire les modifs nécessaires, histoire de finir ca avant les fêtes...
|
|
|
00
|
|
|
#16 |
|
Invité de passage
![]() Inscription : septembre 2007 Messages : 17 ![]() |
C'est vrai que ca commence a faire un bail mais ca m'a permis d'apprendre pas mal de choses en fait.
J'apporte alors quelques precisions, mon champs Login est amené a etre une liste deroulante. La base compactée comporte toutes les sortes d'enregistrements que je suis amené a faire. Concernant mon N° Concours j'aimerai qu'une fois que le message "Deja participé" apparait qu'il passe a un nouvel enregistrement vierge en appuyant sur "ok". Cette base a évoluée depuis sa création donc ne vous etonnez pas que des champs soient vides alors qu'ils devraient etre pleins. Merci d'avance, je pense que c'est la meilleure solution si je veux gagner une voiture pour ma mere avant noel. |
|
|
00
|
|
|
#17 |
|
Expert Confirmé
![]() Diem VOVivre Inscription : avril 2006 Messages : 2 644 ![]() |
je ne peux pas lire de ".accdb" met le ".mdb"
|
|
|
00
|
|
|
#18 |
|
Invité de passage
![]() Inscription : septembre 2007 Messages : 17 ![]() |
Voilà une version mdb access 2002-2003.
|
|
|
00
|
|
|
#19 | ||||
|
Expert Confirmé
![]() Diem VOVivre Inscription : avril 2006 Messages : 2 644 ![]() |
oui nomatch ne fonctionne pas dans ce cadre là.
en version recordset: Code :
Code :
|
||||
|
|
00
|
|
|
#20 |
|
Invité de passage
![]() Inscription : septembre 2007 Messages : 17 ![]() |
Victoire.
![]() Alors ca marche tres bien enfin. Si tu pouvais juste encore voir pour mon n°concours lorsqu'il y'a une msgbox pour qu'il passe (ou annule) a un nouvel enregistrement vierge apres je te lache promis. 1000 mercis. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com