Il me demande d'entrer une valeur de parametre
essaye de ma donner le message complet j'ai besoin de connaître le paramètre.
Il me demande d'entrer une valeur de parametre
essaye de ma donner le message complet j'ai besoin de connaître le paramètre.
je n'ai pas trouvé access 2000, afin d'effectuer des tests sur le site.
Désolé
Ci-joint l'image sur un document Word
Veux-tu bien
1° créer une requête appelée TST , peu importe son contenu.
2° Remplacer Private Sub RefreshQuery() par le code suivant
3° ouvre le formulaire
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37 Private Sub RefreshQuery() Dim SQL As String, strWhere As String SQL = " SELECT Num, OF, Gestionnaire, CodeArticle, QteOrdre, Cause, Dateappro FROM tblSauvegardeTraitementCauseRetard" ' voir si toutes les 3 cases sont cochées ---->on affiche tout If Me.chkGestionnaire + Me.chkOF + Me.chkCdeArticle = -3 Then GoTo terminerSQL 'si non aménager la clause Where If Not Me.chkGestionnaire Then 'attention, si le nom d'un gestionnaire contient un apostrophe, ( par ex Jean D'Hond )tu auras une erreur strWhere = strWhere & " AND tblSauvegardeTraitementCauseRetard!Gestionnaire = '" & Me.cmbGestionnaire & "'" ' le champ est du texte End If If Not Me.chkOF Then strWhere = strWhere & " AND tblSauvegardeTraitementCauseRetard!OF = '" & Me.cmbOF & "'" ' le champ est du texte End If If Not Me.chkCdeArticle Then strWhere = strWhere & " AND tblSauvegardeTraitementCauseRetard!CodeArticle like ""*"" & " & Me.txtCdeArticle & " & ""*""" ' " ' le champ est du texte End If 'supprimer le 1er "and" strWhere = (Right(strWhere, Len(strWhere) - 4)) ' ajouter WHERE devant strWhere = " WHERE " & strWhere SQL = SQL & strWhere terminerSQL: SQL = SQL & ";" Me.lstResultat.RowSource = SQL Me.lstResultat.Requery '--------------------- Debug.Print SQL Dim q As QueryDef Set q = CurrentDb.QueryDefs("tst") q.SQL = SQL End Sub
4° coche la case "code article"
5° le code par exemple "850"
Cela va provoquer la modification de la requête TST.
6° ouvre TST, tu devrais avoir le même message.
7° ouvre TST en mode sql, copie le code et colle-le dans un post
je viens de trouver le problème.
Dans la zone txtCdeArticle, il fallait que je mette " ".
C'est en lisant ta dernière intervention, que je me suis apperçu de mon erreur.
Désolé
Je t'ai fait cherché pour rien.
Je pense que cela va poser des pb par les utilisateurs.
Afin de palier a ce souci, je vais enlever les entrequôtes.
Qu'en penses-tu?
Je ne comprends pas ton message.
par exemple, si tu veux afficher le code 1SBK140128R8500,
il faut introduire dans le champ txtCdeArticle : 1SBK140128R8500
ou par exemple 8500
mais pas "1SBK140128R8500".
Je constate que sur mon poste ça marche même si j'encadre avec les quotes inutiles.
Et chez toi ?
Pour reprendre ton exemple, il faut que je mette "R85" afin d'avoir tous les codes articles qui on R85.
Si je met rien, aucun affichage
Essaie ceci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 Private Sub RefreshQuery() Dim SQL As String, strWhere As String SQL = " SELECT Num, OF, Gestionnaire, CodeArticle, QteOrdre, Cause, Dateappro FROM tblSauvegardeTraitementCauseRetard" ' voir si toutes les 3 cases sont cochées ---->on affiche tout If Me.chkGestionnaire + Me.chkOF + Me.chkCdeArticle = -3 Then GoTo terminerSQL 'si non aménager la clause Where If Not Me.chkGestionnaire Then 'attention, si le nom d'un gestionnaire contient un apostrophe, ( par ex Jean D'Hond )tu auras une erreur strWhere = strWhere & " AND tblSauvegardeTraitementCauseRetard!Gestionnaire = '" & Me.cmbGestionnaire & "'" ' le champ est du texte End If If Not Me.chkOF Then strWhere = strWhere & " AND tblSauvegardeTraitementCauseRetard!OF = '" & Me.cmbOF & "'" ' le champ est du texte End If If Not Me.chkCdeArticle Then strWhere = strWhere & " AND tblSauvegardeTraitementCauseRetard!CodeArticle like ""*" & Me.txtCdeArticle & "*""" End If 'supprimer le 1er "and" strWhere = (Right(strWhere, Len(strWhere) - 4)) ' ajouter WHERE devant strWhere = " WHERE " & strWhere SQL = SQL & strWhere terminerSQL: SQL = SQL & ";" Debug.Print SQL Me.lstResultat.RowSource = SQL Me.lstResultat.Requery End Sub
Tu es un champion
Je suis à la maison, je réponds à ton mail.
Encore merci
N’exagérons rien, l’erreur était chez moi et je ne l’avais pas vue : lors des tests du code « article » j’introduisais, par hasard , uniquement des chiffres.
Je confesse : un court instant, j’ai cru à un bug dans Access2003 !
Je te reviens avec des propositions pour une version plus élaborée de ton formulaire.
A+
Compare frmgestionnaire2 (ton idée originale : le résultat = une liste) et frmgestionnaire3 (le résultat = un sous-formulaire).
Le travail de programmation est pratiquement le même mais
Avantages de frmgestionnaire3
chaque champ du résultat peut être copié dans le presse-papier
Des événements peuvent être provoqués :
- par exemple un double-click sur le un champ « gestionnaire » pourrait entraîner l’ouverture d’un formulaire donnant les coordonnées de ce gestionnaire voire l’envoi automatique d’un mail de demande d’explication complémentaire (je suppose que tu as Outlook)
- click sur un code article --> affichage de sa description et pourquoi pas sa photo si le fichier existe ….
Bref, bien plus de place pour ton imagination : the sky is the limit. C’est un autre débat.
Je te propose de clôturer ici ce topic et si tu es d’accord, n’oublie pas le Flag Résolu.
Amicalement.
Un grand merci Claude, pour dévouement.
Je regarde ce que tu m'as envoyé et je te tiens au courrant.
Amicalement
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager