Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

filtre de formulaire qui ne s'applique pas

7 réponses
Avatar
Alex
J'ai un bug depuis peu sur mon application. J'ouvre un formulaire (qui
contient un sous formulaire) a l'aide de l'instruction suivante :

DoCmd.OpenForm "FormCommandePartie1", , , "[CommandeID] = " & CommandeID

j'ai vérifié la valeur de CommandeID (un long, clé primaire de ma table) qui
vaut ce que je veux, mais a chaque fois il me crée un nouvel enregistrement
(dans l'activation, newrecord est vrai, et le CommandeID est un nouveau
généré par l'autoincrement). Si une fois le forumlaire affiché je demande
d'appliquer le filtre, alors ma commande s'affiche bien et tout a l'air
normal ... mais j'aimerais que le filtre soit appliquer directement

Le plus étrange c'est que ça a bien marcher jusqu'a maintenant, et que je
n'est rien changé dans ce formulaire !!! (j'ai changé des trucs dans le
formulaire qui appelle celui ci, mais la commande OpenForm n'a pas bougé, ni
le numéro de commande)

J'avais déjà eu le problème, et je l'avais résolu en récupérant une
sauvegarde plus ancienne, et en réimportant les modifications que j'avais
faites ... mais j'aimerais bien savoir si quelqu'un sait d'ou ça vient


Antoine

7 réponses

Avatar
3stone
Salut,

"Alex"
J'ai un bug depuis peu sur mon application. J'ouvre un formulaire (qui
contient un sous formulaire) a l'aide de l'instruction suivante :

DoCmd.OpenForm "FormCommandePartie1", , , "[CommandeID] = " & CommandeID

j'ai vérifié la valeur de CommandeID (un long, clé primaire de ma table) qui
vaut ce que je veux, mais a chaque fois il me crée un nouvel enregistrement
(dans l'activation, newrecord est vrai, et le CommandeID est un nouveau
généré par l'autoincrement). Si une fois le forumlaire affiché je demande
d'appliquer le filtre, alors ma commande s'affiche bien et tout a l'air
normal ... mais j'aimerais que le filtre soit appliquer directement

Le plus étrange c'est que ça a bien marcher jusqu'a maintenant, et que je
n'est rien changé dans ce formulaire !!! (j'ai changé des trucs dans le
formulaire qui appelle celui ci, mais la commande OpenForm n'a pas bougé, ni
le numéro de commande)

J'avais déjà eu le problème, et je l'avais résolu en récupérant une
sauvegarde plus ancienne, et en réimportant les modifications que j'avais
faites ... mais j'aimerais bien savoir si quelqu'un sait d'ou ça vient



Ne créerais tu pas une valeur, numérique ou autre, pour un champ
et cela automatiquement à l'ouverture ?

Ou bien tu assigne une valeur par défaut ?


--
A+
Pierre (3stone) Access MVP
-----------------------------
http://users.skynet.be/mpfa
-----------------------------

Avatar
Alex
"3stone" a écrit dans le message de
news:
Salut,

"Alex"
J'ai un bug depuis peu sur mon application. J'ouvre un formulaire (qui
contient un sous formulaire) a l'aide de l'instruction suivante :

DoCmd.OpenForm "FormCommandePartie1", , , "[CommandeID] = " & CommandeID

j'ai vérifié la valeur de CommandeID (un long, clé primaire de ma table)
qui


vaut ce que je veux, mais a chaque fois il me crée un nouvel
enregistrement


(dans l'activation, newrecord est vrai, et le CommandeID est un nouveau
généré par l'autoincrement). Si une fois le forumlaire affiché je
demande


d'appliquer le filtre, alors ma commande s'affiche bien et tout a l'air
normal ... mais j'aimerais que le filtre soit appliquer directement

Le plus étrange c'est que ça a bien marcher jusqu'a maintenant, et que
je


n'est rien changé dans ce formulaire !!! (j'ai changé des trucs dans le
formulaire qui appelle celui ci, mais la commande OpenForm n'a pas
bougé, ni


le numéro de commande)

J'avais déjà eu le problème, et je l'avais résolu en récupérant une
sauvegarde plus ancienne, et en réimportant les modifications que
j'avais


faites ... mais j'aimerais bien savoir si quelqu'un sait d'ou ça vient



Ne créerais tu pas une valeur, numérique ou autre, pour un champ
et cela automatiquement à l'ouverture ?

Ou bien tu assigne une valeur par défaut ?


J'avais quelques controles avec des valeurs par défauts dans le sous
formulaire, je les ai enlever mais ça ne change rien
sinon j'ai le probleme du new record = vrai dès l'appel de la fonction "sur
activation" du formulaire, donc avant que je ne puisse affecter la moindre
valeur a un champ par code. J'ai quelques valeurs par défaut dans ma table
mais je ne pense pas que ça vienne de la (je ne cherche pas a créer une
nouvelle entrée justement)


Avatar
Alex
Je viens de découvrir par hasard que si je met mon formulaire en type
recordset "instantané" alors j'ai plus le bug ... mais bon ça ne m'arrange
pas du tout ...

Si ça peut vous donner l'idée d'une piste a explorer ...
Avatar
3stone
Salut,

"Alex"
<snip>
J'avais quelques controles avec des valeurs par défauts dans le sous
formulaire, je les ai enlever mais ça ne change rien
sinon j'ai le probleme du new record = vrai dès l'appel de la fonction "sur
activation" du formulaire, donc avant que je ne puisse affecter la moindre
valeur a un champ par code. J'ai quelques valeurs par défaut dans ma table
mais je ne pense pas que ça vienne de la (je ne cherche pas a créer une
nouvelle entrée justement)



Ce n'est pas la "valeur par défaut" en soi qui crée problème,
mais, je me disais que tu le faisais (incorrectement) par VBA.

Et la création d'une valeur par code, non ?


--
A+
Pierre (3stone) Access MVP
-----------------------------
http://users.skynet.be/mpfa
-----------------------------

Avatar
Alex
J'avais quelques controles avec des valeurs par défauts dans le sous
formulaire, je les ai enlever mais ça ne change rien
sinon j'ai le probleme du new record = vrai dès l'appel de la fonction
"sur


activation" du formulaire, donc avant que je ne puisse affecter la
moindre


valeur a un champ par code. J'ai quelques valeurs par défaut dans ma
table


mais je ne pense pas que ça vienne de la (je ne cherche pas a créer une
nouvelle entrée justement)



Ce n'est pas la "valeur par défaut" en soi qui crée problème,
mais, je me disais que tu le faisais (incorrectement) par VBA.

Et la création d'une valeur par code, non ?


J'ai testé en virant le sous formulaire et tout le code VB (pour n'avoir que
le chargement de la table dans le formulaire) et les controles qui sont
directement liés a la commande ne sont pas remplis.

J'y suis meme aller plus fort, j'ai enlever la totalite des controles (sauf
1 qui est lié a l'une des valeurs de la table) et la totalite du code sauf
form_current ou je ne teste que la valeur de new record, et il crée toujours
un new record ... (comme j'essaye d'ouvrir une commande a partir d'une liste
de commande, je suis sur qu'il y a bien une commande ayant le commandeID que
je souhaite voir)

donc j'ai soit une option du formulaire mal configurer, soit un truc dans ma
table de donnée de foireux ...


Antoine

PS : merci d'essayer de m'aider 3stone, là je commence a plus trop savoir ou
chercher


Avatar
3stone
re,

"Alex"
[...]
J'y suis meme aller plus fort, j'ai enlever la totalite des controles (sauf
1 qui est lié a l'une des valeurs de la table) et la totalite du code sauf
form_current ou je ne teste que la valeur de new record, et il crée toujours
un new record ... (comme j'essaye d'ouvrir une commande a partir d'une liste
de commande, je suis sur qu'il y a bien une commande ayant le commandeID que
je souhaite voir)

donc j'ai soit une option du formulaire mal configurer, soit un truc dans ma
table de donnée de foireux ...



Même en mettant le formulaire en "Entrée de données", cela ne crée
pas d'enregistrement vide, TANT que rien n'est saisi dans le formulaire,
à la main ou par code...


Si cela peut t'aider, je veux bien jeter un oeil... format A97 ou A2000
(pour mon mail, fait répondre sur ce message)



--
A+
Pierre (3stone) Access MVP
-----------------------------
http://users.skynet.be/mpfa
-----------------------------

Avatar
Alex
Bon j'ai résolu le prob en reprennant un vieux projet et en reimportant tout
sauf le formulaire, et en recuperant aussi le code du formulaire

je suppose donc que c'est un prob d'option du formulaire ... (vu que la
c'est strictement le meme code et que ça marche)


"3stone" a écrit dans le message de
news:%
re,

"Alex"
[...]
J'y suis meme aller plus fort, j'ai enlever la totalite des controles
(sauf


1 qui est lié a l'une des valeurs de la table) et la totalite du code
sauf


form_current ou je ne teste que la valeur de new record, et il crée
toujours


un new record ... (comme j'essaye d'ouvrir une commande a partir d'une
liste


de commande, je suis sur qu'il y a bien une commande ayant le commandeID
que


je souhaite voir)

donc j'ai soit une option du formulaire mal configurer, soit un truc
dans ma


table de donnée de foireux ...



Même en mettant le formulaire en "Entrée de données", cela ne crée
pas d'enregistrement vide, TANT que rien n'est saisi dans le
formulaire,

à la main ou par code...


Si cela peut t'aider, je veux bien jeter un oeil... format A97 ou
A2000

(pour mon mail, fait répondre sur ce message)



--
A+
Pierre (3stone) Access MVP
-----------------------------
http://users.skynet.be/mpfa
-----------------------------