Problème d'ouverture de formulaire à partir d'un autre

Fermé
gumbi machine Messages postés 57 Date d'inscription mercredi 13 janvier 2010 Statut Membre Dernière intervention 4 avril 2016 - 26 mars 2016 à 02:19
le meruvien Messages postés 1111 Date d'inscription vendredi 12 août 2011 Statut Membre Dernière intervention 15 avril 2024 - 26 mars 2016 à 09:11
Bonjour,

J'ai un problème pour ouvrir un formulaire d'un autre.

J'ai créé un formulaire de sélection contenant une liste déroulante qui affiche un SELECT DISTINCT des informations d'un des champs de mon formulaire de consultation d'inventaire.

Donc, je sélectionne une occurrence dans la liste déroulante, je clic sur mon bouton et mon formulaire de consultation s'ouvre et affiche uniquement les items d'inventaire correspondant à ma sélection du formulaire précédent.

Jusque là, tout fonction très bien...

Mon problème est que mon champ est un champ texte et lorsque celui-ci contient une apostrophe ( ' ), j'ai le message d'erreur suivant:

Exemple:

Erreur de syntaxe (opérateur absent) dans l'expression [CHAMP]='aujourd'hui".

Je sais que le problème est en lien avec l'apostrophe dans mon champ...

Voici le code VB de mon bouton:

Dim stDocName As String
Dim stLinkCriteria As String

stDocName = "F_CNSUL_INV"
Dim stMac As String

stLinkCriteria = "[CHAMP]=" & "'" & Me![SELECT_CHAMP] & "'"
DoCmd.OpenForm stDocName, , , stLinkCriteria

Je ne suis pas très fort en VB...

Quelqu'un a une idée pour régler mon problème ?

Merci à l'avance

5 réponses

le meruvien Messages postés 1111 Date d'inscription vendredi 12 août 2011 Statut Membre Dernière intervention 15 avril 2024 40
26 mars 2016 à 06:12
bonjour,
En effet, l'erreur vient des guillemets!
[champ], c'est quoi? un champ du form ou un simple nom?
si c'est un champ du form, enlève les guillemets, sinon, enlève les []
essaie ça:
stLinkCriteria = "CHAMP=" & Me![SELECT_CHAMP]
DoCmd.OpenForm stDocName, , , stLinkCriteria
ou:
stLinkCriteria = [CHAMP]=" & Me![SELECT_CHAMP]
0
gumbi machine Messages postés 57 Date d'inscription mercredi 13 janvier 2010 Statut Membre Dernière intervention 4 avril 2016 5
26 mars 2016 à 07:25
Bonjour le meruvien,

ça ne fonctionne pas...

Dans mon exemple, (aujourd'hui) est le texte sélectionné dans la liste déroulante du champ [SELECT_CHAMP], [SELECT_CHAMP] est le champ de mon formulaire source et [CHAMP] est celui de mon formulaire cible.

merci de m'aider !
0
le meruvien Messages postés 1111 Date d'inscription vendredi 12 août 2011 Statut Membre Dernière intervention 15 avril 2024 40
26 mars 2016 à 07:59
oui, par exemple:

une table "magasin" avec auchan, leclerc, carrefour
ces noms sont donc dans la liste deroulante!
si je veut ouvrir le form d'auchan, je sélectionne "auchan" dans ma LD, et mon code sera donc:
stLinkCriteria = [magasin]=Me![SELECT_CHAMP]

ou tu met directement:
docmd.openform stdocname,,,"[magasin]=Me![SELECT_CHAMP]"
0
gumbi machine Messages postés 57 Date d'inscription mercredi 13 janvier 2010 Statut Membre Dernière intervention 4 avril 2016 5
26 mars 2016 à 08:06
C'est ça...

Sauf que dans mon cas, c'est (d'auchan) qui s'affiche dans ma liste déroulante... il y a l'apostrophe ( ' ) à l'intérieur de mon champ... et c'Est ce qui cause le problème...

Quand il n'y a pas d'apostrophe dans la sélection, tout fonctionne à merveille !

comment je peux faire pour que le code VB "oubli" l'apostrophe ?
0
le meruvien Messages postés 1111 Date d'inscription vendredi 12 août 2011 Statut Membre Dernière intervention 15 avril 2024 40
26 mars 2016 à 08:24
je comprend pas ce que tu veut dire, met un exemple!
0
gumbi machine Messages postés 57 Date d'inscription mercredi 13 janvier 2010 Statut Membre Dernière intervention 4 avril 2016 5
26 mars 2016 à 08:42
Disons que j'ai 2 choix dans ma liste déroulante...

Demain
Aujourd'hui

Si je sélectionne Demain, le lien se fait et mon formulaire s'ouvre avec tous (et uniquement) les enregistrements qui ont Demain dans le champ [CHAMP]

Si je sélectionne Aujourd'hui (dans lequel il y a un apostrophe (single quote)), j'ai le message d'erreur...
0
le meruvien Messages postés 1111 Date d'inscription vendredi 12 août 2011 Statut Membre Dernière intervention 15 avril 2024 40
26 mars 2016 à 08:46
oui, effectivement!
essaie de mettre aujourd'hui entre guillement, sinon, triche un peut, et remplace le guillement par un trait bas: aujourd_hui
0

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

Posez votre question
gumbi machine Messages postés 57 Date d'inscription mercredi 13 janvier 2010 Statut Membre Dernière intervention 4 avril 2016 5
26 mars 2016 à 09:06
Les guillemets ne fonctionne pas, j'ai tout essayé...

Et je ne peut pas tricher, je ne serai pas l'utilisateur final.

Je dois pouvoir gérer la présence de l'apostrophe à l'intérieur du champ.

il doit y avoir un moyen qu'il ce fasse une conversion de l'apostrophe en un autre caractère lorsque présent à l'intérieur du champ pour que ça n'entre pas en conflit ?
0
le meruvien Messages postés 1111 Date d'inscription vendredi 12 août 2011 Statut Membre Dernière intervention 15 avril 2024 40
26 mars 2016 à 09:11
ben oui, tu peut remplacer automatiquement apres la saisie l'apostrophe par un trait bas ou autre chose!
0