|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Candidat au titre de Membre du Club
![]() Inscription : octobre 2004 Messages : 37 ![]() |
Bonjour à tous,
Voilà le problème : Une base de données gère les membres d'un club sportif. Chaque membre a un numéro, j'ai pris le "numauto" de la clé primaire pour cela. Dans mon formulaire de saisies, j'ai prévu une zone texte (ScanCarte) dans laquelle on scane la carte du membre et la base de données nous dit si le membre est en ordre de cotisation ou non. Comme tout est très fluctuant, j'ai entrepris, hier, de mettre de l'ordre dans tout ça et de supprimer les personnes n'étant plus en ordre de cotisation depuis un moment. La base de données a bien supprimé les membre "en trop" ainsi que leur numéro, tout s'est bien passé. Comme je ne suis pas seul à me servir de cette base de données, il met venu l'idée de taper un numéro supprimé dans la zone "ScanCarte" et la machine me dit que le membre est en ordre de cotisation. Elle se base sur l'enregistrement actif. Pour moi, pas de problème, je le sais mais les personnes qui vont se servir de cette base de données risquent de ne plus rien comprendre. La question est donc la suivante : Comment faire pour afficher un MsgBox précisant que ce numéro n'existe plus si l'on tape le numéro d'un membre supprimé de la base de données. Je sais, il faudrait vraiment le vouloir pour se trouver dans cette configuration mais mes collègues sont capables de tout Le code de la gestion de ce ScanCarte : Code :
Très bonne journée à tous |
||
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() |
Bonjour,
Pour solutionner ton problème, je procéderais de la sorte: Lors d'une demande d'affichage d'un membre, je demanderais à Access de compter le nombre d'enregistrement est retourné avec le N° d'identifiant. S'il est égal à zéro => Un msgbox apparaît Sinon il affiche les données demandées. |
|
|
00
|
|
|
#3 | ||
|
Membre éclairé
![]() Michel Développeur informatique Inscription : février 2008 Messages : 261 ![]() |
Ci dessous un petit bout de code qui peut peut-être t'aider...
Code :
Michel |
||
|
|
00
|
|
|
#4 |
|
Candidat au titre de Membre du Club
![]() Inscription : octobre 2004 Messages : 37 ![]() |
Bonjour BernardMichel,
Je comprends ton raisonnement mais pas la moindre idée de comment le mettre en oeuvre. Merci pour ton aide Bonjour Michel, J'ai procédé, acces me retourne l'erreur de compilation suivante : et en surbrillance et le message est le suivant : Erreur de compilation Type défini par l'utilisateur non défini (ha ben oui, c'est pas moi qui le dit J'adore ces messages d'une limpidité de bouillon de séminaire Merci à toi de te pencher son mon "cas" |
|
|
00
|
|
|
#5 | |
|
Membre éclairé
![]() Michel Développeur informatique Inscription : février 2008 Messages : 261 ![]() |
A mon avis cela peut venir de 2 choses :
tu écris : Citation:
ou, si cela ne vient pas de là, il te manque peut-être une référence : "Microsoft ActiveX Data Objects 2.x Library" pour vérifier ce point, tu ouvres un module quelconque et tu vas dans le menu OUTILS/REFERENCE et tu vérifies que cette référence est bien cochée. Si ce n'est pas le cas, tu la coches. ENFIN Si cela vient ni de l'espace oublié, ni de la référence manquante... et ben ! Je sais pas !!! MAIS Si cela devait fonctionner, fais tout de même attention dans "mon" code, après la ligne : , il te faut dire ce que cela doit faire en cas de réponse "oui" ou "non" Michel |
|
|
|
00
|
|
|
#6 |
|
Candidat au titre de Membre du Club
![]() Inscription : octobre 2004 Messages : 37 ![]() |
Re Michel,
J'avais bien un problème de référence, j'ai suivi ton conseil et maintenant le déboggeur bloque au niveau de la seconde ligne de code. Pour l'autre souci, c'est moi qui ai oublié l'espace en recopiant cette ligne de code ici. Dans la base de données, c'est ok. Je ne vais pas te déranger plus longtemps, je vais chercher encore un peu et si ça ne donne rien, tant pis Mille mercis pour ton aide et très bonne soirée |
|
|
00
|
|
|
#7 | ||
|
Membre Expert
![]() |
Pour préciser, voici un exemple (il te faut bien entendu contrôler la requête "sql") pour que cela ai l'effet escompté:
Code :
|
||
|
|
00
|
|
|
#8 | ||
|
Candidat au titre de Membre du Club
![]() Inscription : octobre 2004 Messages : 37 ![]() |
Bonjour BernardMichel,
C'est vraiment très gentil de t'accrocher de telle manière, pour ma part j'avais presque baisser les bras Donc, j'ai suivi ton conseil et introduit le code suivant : Code :
Erreur d'exécution Erreur de syntaxe (opérateur absent) dans l'expression <<TMembre.NumInscription 1>> Il met la ligne 2 en surbrillance dans le débogeur Je ne suis décidemment pas copain avec les requêtes SQL Bonne journée et pardon d'être aussi lent à la détente |
||
|
|
00
|
|
|
#9 | ||
|
Membre Expert
![]() |
Deux petits bugs dans ma réponse:
La première, il faut évidemment insérer le signe "=" dans la requête, de cette façon: Code :
sql = "SELECT * FROM TMembre WHERE NumInscription = " & Me.ScanCarte Code :
On Error Resume Next ' Evite l'erreur sur "rst.MoveLast" Code :
|
||
|
|
10
|
|
|
#10 |
![]() ![]() Inscription : septembre 2003 Messages : 4 300 ![]() |
bjr,
commencez par supprimer le on error resume next, on y verra plus clair sinon chaque ligne est exécutée sans tenir compte des erreurs et le code fait n'importe quoi s'il y a une erreur, il faut ajouter un test éventuellement en amont
__________________
Assistant de création/modification de rubans Office Utilisez en VBA les librairies graphiques GDI, GDI+ et openGL Blog Office Mon Site DVP |
|
|
10
|
|
|
#11 | ||
|
Candidat au titre de Membre du Club
![]() Inscription : octobre 2004 Messages : 37 ![]() |
Mille mercis BernardMichel, j'y suis
![]() Le = j'avais trouvé mais je bloquais sur l'erreur "rst.movelast", l'affaire est dans le sac Il me reste encore à trouver le moyen de redonner le focus à ma zone de saisie ScanCarte après chaque manipulation du formulaire (msgbox notamment). Je me suis trouvé avec un nom de membre "236", ça manque de charme ![]() Voilà le code complet pour info si besoin (maintenant que je sais comment mettre du code dans le forum Code :
|
||
|
|
00
|
|
|
#12 |
|
Membre Expert
![]() |
Bjr,
En réponse à Arkham: Le "test en amont" dont tu fais mention est... justement le but du bout de code développé. Peut-être alors serait-il bon d'insérer, après le "rst.MoveLast" un "On Error Goto 0" pour supprimer l'effet de "On Error Resume Next". Mais, en l'espèce, tant que ce code n'évolue pas, il ne me semble pas problématique de le laisser tel quel En réponse à FLUP: A placer en fin de code: |
|
|
00
|
|
|
#13 | |
|
Candidat au titre de Membre du Club
![]() Inscription : octobre 2004 Messages : 37 ![]() |
Citation:
Ben là ça fonctionne, je n'ose même plus respirer, je regarde l'écran d'un oeil pour ne pas lui faire peur Comme tu as pu le voir, je ne suis pas un as en access, j'aurais même tendance à être une grosse brêle donc, tant que ça marche ... A ma décharge, c'est la première fois que je mets le nez dans Access et jusqu'ici, mon "truc" ne fonctionne pas trop mal (cela fait quand même 1 an que ça tourne au club sans trop de problèmes). Je dois à la vérité de dire aussi que sans ce forum, je serais toujours occupé à pédaler dans la choucroute. Belle et bonne journée à toi |
|
|
|
00
|
|
|
#14 |
|
Candidat au titre de Membre du Club
![]() Inscription : octobre 2004 Messages : 37 ![]() |
Le ScanCarte.set focus y est à la ligne 55 mais j'ai le problème un peu partout, le programme semble ne pas en tenir compte en sortant d'un MsgBox.
Je crois avoir vu de la documentation à ce sujet quelque part sur le site, je vais y mettre l'autre oeil Encore merci pour ta patience et passe une très bonne journée Flup = diminutif de Philippe en bruxellois (je me soigne |
|
|
00
|
|
|
#15 | ||
![]() ![]() Inscription : septembre 2003 Messages : 4 300 ![]() |
le on error resume next ne doit pas être utilisé sur une procédure complète comme ça
il y aura d'autres bug plus tard... le setfocus sur le scancard ne fonctionne pas? => comment sais-tu s'il y a une erreur avec ce "resume next"? sinon à la suite de FindFirst, il faut tester NoMatch et pas EOF je vois ça comme ça (j'ai pas Access ici, j'ai écris des trucs sous Excel avant de reporter dans le code initial, mais l'idée est là) : Code :
les gestion d'erreurs est à prendre ou à laisser bon courage
__________________
Assistant de création/modification de rubans Office Utilisez en VBA les librairies graphiques GDI, GDI+ et openGL Blog Office Mon Site DVP |
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com