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

Projet ADP : Comment rafraichir la liste des vues ?

4 réponses
Avatar
TF
Bonjour,
J'ai créé une vue dynamiquement par VBA, visuellement, je ne la trouve pas
dans la liste des vues (Onglet Requête) du projet ADP. Mais quand je
parcours la liste en
VBA, le code VBA la retrouve.

Le but : je réalise une recherche, le résultat sera imprimé dans un état.
Le nom de la vue change suivant la connexion sur la base.
Dans l'évènement sur Ouverture de l'état, j'ai fixé le nom de la vue avec
Me.RecordSource=le nom de la requête

Mon problème, c'est que cet état ne trouve pas la vue, j'ai le code d'erreur
2580. Mais je quitte la base et la réouvre, la vue est bien là.

Comment alors rafraichir la liste de vues en VBA ?
Merci

4 réponses

Avatar
J-Pierre
Bonjour,

La réponse, que je ne garantis pas.

Avec VBA, tu ouvres une connexion et tu trouves ta vue. Avec Access, je ne crois pas que tu disposes de la fonction Actualiser
comme avec Enterprise Manager, il ne peut donc travailler qu'avec les objets existants à l'ouverture ou créés par
développement.

Il serait sans doute plus simple de créer toutes les vues dont tu peux avoir besoin, et de modifier la source de ton état. Tu
peux aussi mettre directement la requête en language SQL comme source avec du code VBA, mais la vue est plus performante car
compilée.

J-Pierre

"TF" a écrit dans le message de news:40473c22$0$5915$
Bonjour,
J'ai créé une vue dynamiquement par VBA, visuellement, je ne la trouve pas
dans la liste des vues (Onglet Requête) du projet ADP. Mais quand je
parcours la liste en
VBA, le code VBA la retrouve.

Le but : je réalise une recherche, le résultat sera imprimé dans un état.
Le nom de la vue change suivant la connexion sur la base.
Dans l'évènement sur Ouverture de l'état, j'ai fixé le nom de la vue avec
Me.RecordSource=le nom de la requête

Mon problème, c'est que cet état ne trouve pas la vue, j'ai le code d'erreur
2580. Mais je quitte la base et la réouvre, la vue est bien là.

Comment alors rafraichir la liste de vues en VBA ?
Merci





Avatar
TF
Merci,
Ce que j'ai fait.
J'ai construit ma requête et je l'envoie à l'état avec l'argument : OpenArgs
(de l'état).

Elle fonctionne sans problème mais j'aurais préféré la vue compilée.
Mais, si la vue existe déjà, je peux (par VBA) la supprimer et la
réprogrammer selon la situation sans aucun code d'erreur !!!!
Cordialement

"J-Pierre" a écrit dans le message de
news:
Bonjour,

La réponse, que je ne garantis pas.

Avec VBA, tu ouvres une connexion et tu trouves ta vue. Avec Access, je ne
crois pas que tu disposes de la fonction Actualiser

comme avec Enterprise Manager, il ne peut donc travailler qu'avec les
objets existants à l'ouverture ou créés par

développement.

Il serait sans doute plus simple de créer toutes les vues dont tu peux
avoir besoin, et de modifier la source de ton état. Tu

peux aussi mettre directement la requête en language SQL comme source avec
du code VBA, mais la vue est plus performante car

compilée.

J-Pierre

"TF" a écrit dans le message de
news:40473c22$0$5915$

Bonjour,
J'ai créé une vue dynamiquement par VBA, visuellement, je ne la trouve
pas


dans la liste des vues (Onglet Requête) du projet ADP. Mais quand je
parcours la liste en
VBA, le code VBA la retrouve.

Le but : je réalise une recherche, le résultat sera imprimé dans un
état.


Le nom de la vue change suivant la connexion sur la base.
Dans l'évènement sur Ouverture de l'état, j'ai fixé le nom de la vue
avec


Me.RecordSource=le nom de la requête

Mon problème, c'est que cet état ne trouve pas la vue, j'ai le code
d'erreur


2580. Mais je quitte la base et la réouvre, la vue est bien là.

Comment alors rafraichir la liste de vues en VBA ?
Merci









Avatar
J-Pierre
Je crois que tu as la réponse sur le NG SQLserver pour actualiser les données et les vues.

Supprimer et recréer des vues n'est pas une très bonne solution au point de vue performance, tu fais bosser le serveur avec
des fonctions de développement pendant la production. Il vaudrait mieux une vue et utiliser ServerFilter ou une procédure
cataloguée et utiliser InputParameters.

J-Pierre

"TF" a écrit dans le message de news:404866dd$0$5911$
Merci,
Ce que j'ai fait.
J'ai construit ma requête et je l'envoie à l'état avec l'argument : OpenArgs
(de l'état).

Elle fonctionne sans problème mais j'aurais préféré la vue compilée.
Mais, si la vue existe déjà, je peux (par VBA) la supprimer et la
réprogrammer selon la situation sans aucun code d'erreur !!!!
Cordialement

"J-Pierre" a écrit dans le message de
news:
Bonjour,

La réponse, que je ne garantis pas.

Avec VBA, tu ouvres une connexion et tu trouves ta vue. Avec Access, je ne
crois pas que tu disposes de la fonction Actualiser

comme avec Enterprise Manager, il ne peut donc travailler qu'avec les
objets existants à l'ouverture ou créés par

développement.

Il serait sans doute plus simple de créer toutes les vues dont tu peux
avoir besoin, et de modifier la source de ton état. Tu

peux aussi mettre directement la requête en language SQL comme source avec
du code VBA, mais la vue est plus performante car

compilée.

J-Pierre

"TF" a écrit dans le message de
news:40473c22$0$5915$

Bonjour,
J'ai créé une vue dynamiquement par VBA, visuellement, je ne la trouve
pas


dans la liste des vues (Onglet Requête) du projet ADP. Mais quand je
parcours la liste en
VBA, le code VBA la retrouve.

Le but : je réalise une recherche, le résultat sera imprimé dans un
état.


Le nom de la vue change suivant la connexion sur la base.
Dans l'évènement sur Ouverture de l'état, j'ai fixé le nom de la vue
avec


Me.RecordSource=le nom de la requête

Mon problème, c'est que cet état ne trouve pas la vue, j'ai le code
d'erreur


2580. Mais je quitte la base et la réouvre, la vue est bien là.

Comment alors rafraichir la liste de vues en VBA ?
Merci













Avatar
TF
Bonsoir J-Pierre,
C'est une bonne idée d'utiliser ServerFilter (je n'y ai pas pensé !).
Merci

"J-Pierre" a écrit dans le message de
news:
Je crois que tu as la réponse sur le NG SQLserver pour actualiser les
données et les vues.


Supprimer et recréer des vues n'est pas une très bonne solution au point
de vue performance, tu fais bosser le serveur avec

des fonctions de développement pendant la production. Il vaudrait mieux
une vue et utiliser ServerFilter ou une procédure

cataloguée et utiliser InputParameters.

J-Pierre

"TF" a écrit dans le message de
news:404866dd$0$5911$

Merci,
Ce que j'ai fait.
J'ai construit ma requête et je l'envoie à l'état avec l'argument :
OpenArgs


(de l'état).

Elle fonctionne sans problème mais j'aurais préféré la vue compilée.
Mais, si la vue existe déjà, je peux (par VBA) la supprimer et la
réprogrammer selon la situation sans aucun code d'erreur !!!!
Cordialement

"J-Pierre" a écrit dans le message
de


news:
Bonjour,

La réponse, que je ne garantis pas.

Avec VBA, tu ouvres une connexion et tu trouves ta vue. Avec Access,
je ne



crois pas que tu disposes de la fonction Actualiser
comme avec Enterprise Manager, il ne peut donc travailler qu'avec les
objets existants à l'ouverture ou créés par

développement.

Il serait sans doute plus simple de créer toutes les vues dont tu peux
avoir besoin, et de modifier la source de ton état. Tu

peux aussi mettre directement la requête en language SQL comme source
avec



du code VBA, mais la vue est plus performante car
compilée.

J-Pierre

"TF" a écrit dans le message de
news:40473c22$0$5915$

Bonjour,
J'ai créé une vue dynamiquement par VBA, visuellement, je ne la
trouve




pas
dans la liste des vues (Onglet Requête) du projet ADP. Mais quand je
parcours la liste en
VBA, le code VBA la retrouve.

Le but : je réalise une recherche, le résultat sera imprimé dans un
état.


Le nom de la vue change suivant la connexion sur la base.
Dans l'évènement sur Ouverture de l'état, j'ai fixé le nom de la vue
avec


Me.RecordSource=le nom de la requête

Mon problème, c'est que cet état ne trouve pas la vue, j'ai le code
d'erreur


2580. Mais je quitte la base et la réouvre, la vue est bien là.

Comment alors rafraichir la liste de vues en VBA ?
Merci