Access:pb sur succession de requêtes création
Résolu
Arapata
Messages postés
9
Date d'inscription
Statut
Membre
Dernière intervention
-
Arapata Messages postés 9 Date d'inscription Statut Membre Dernière intervention -
Arapata Messages postés 9 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Actuellement en stage je me dois de développer un outils sous forme de site internet.
Le rapport avec Access est simple, j'ai besoin de créer un robot qui va me récupérer toutes les données dont à besoin mon outil et les envoyer à ma base de données MySQL.
Maintenant le soucis en lui même. Je dois récupérer sept tables toutes les nuits via une Gateway et pour éviter de bloquer la Gateway je lance sept requêtes de créations qui doivent donc faire une copie de ces tables en local afin de pouvoir travailler dessus.
Seulement Access n'arrive jamais à exécuter les sept requêtes d'affiler. Aussi bien qu'elles soient lancées via une macro que manuellement l'une après l'autre. Dès qu'une requête plante, je dois fermer la base en la compactant puis relancer la requête qui a planté et continuer jusqu'à ce que ça replante pour recommencer la manipulation susnommées ou jusqu'à en avoir finit.
Si quelqu'un aurait une idée d'où ça peut venir et comment y remédier alors merci d'avance :)
Actuellement en stage je me dois de développer un outils sous forme de site internet.
Le rapport avec Access est simple, j'ai besoin de créer un robot qui va me récupérer toutes les données dont à besoin mon outil et les envoyer à ma base de données MySQL.
Maintenant le soucis en lui même. Je dois récupérer sept tables toutes les nuits via une Gateway et pour éviter de bloquer la Gateway je lance sept requêtes de créations qui doivent donc faire une copie de ces tables en local afin de pouvoir travailler dessus.
Seulement Access n'arrive jamais à exécuter les sept requêtes d'affiler. Aussi bien qu'elles soient lancées via une macro que manuellement l'une après l'autre. Dès qu'une requête plante, je dois fermer la base en la compactant puis relancer la requête qui a planté et continuer jusqu'à ce que ça replante pour recommencer la manipulation susnommées ou jusqu'à en avoir finit.
Si quelqu'un aurait une idée d'où ça peut venir et comment y remédier alors merci d'avance :)
A voir également:
- Access:pb sur succession de requêtes création
- Acer quick access - Forum Logiciels
- Access appdata - Guide
- Exemple base de données access à télécharger gratuit - Forum Access
- Exemple base de données Access de gestion ✓ - Forum Logiciels
- Quick acces ✓ - Forum Windows
5 réponses
Salut,
il faut donc déjà découvrir pourquoi les requêtes se plantent...
Que sont-elles supposées faire ?
Peux-tu poster le SQL ?
il faut donc déjà découvrir pourquoi les requêtes se plantent...
Que sont-elles supposées faire ?
Peux-tu poster le SQL ?
le sql est des plus simples:
SELECT dbo_CRI_INTERVENTION.* INTO cri_intervention
FROM dbo_CRI_INTERVENTION;
Je récupère toute ma table liée et je le mets dans une nouvelle table en locale.
Quand au message d'erreur dans le cas où mes requêtes plantent:
Impossible d'ouvrir la base de données "nom_de_la_requête". Ce n'est pas une base de données que votre application reconnait, ou le fichier est peut être endommagé.
Je ferme la base données en la compactant, je rouvre la DB et relance la requête et ça marche. Mais bon impossible de faire un robot dans ces circonstances
SELECT dbo_CRI_INTERVENTION.* INTO cri_intervention
FROM dbo_CRI_INTERVENTION;
Je récupère toute ma table liée et je le mets dans une nouvelle table en locale.
Quand au message d'erreur dans le cas où mes requêtes plantent:
Impossible d'ouvrir la base de données "nom_de_la_requête". Ce n'est pas une base de données que votre application reconnait, ou le fichier est peut être endommagé.
Je ferme la base données en la compactant, je rouvre la DB et relance la requête et ça marche. Mais bon impossible de faire un robot dans ces circonstances
Tu dis que manuellement, ça plante aussi ? Etrange...
Comment fais-tu pour lancer les requêtes via ton 'robot' ?
Comment fais-tu pour lancer les requêtes via ton 'robot' ?
J'ai une macro autoexec qui lance mes 7 requetes créations l'une après l'autre (toutes identique à celle dont je t'ai donnée le code). Et j'ai un .bat qui me permet de lancer ma base access.
Mais le soucis n'est pas à ce niveau car en effet même en lançant les requêtes l'une après l'autre manuellement ça finit par planter.
Se peut il que ce soit lier à la taille des tables? Car elles font environ 100 000 lignes chacunes.
Pour un total de 2 à 3 Go il me semble.
Mais le soucis n'est pas à ce niveau car en effet même en lançant les requêtes l'une après l'autre manuellement ça finit par planter.
Se peut il que ce soit lier à la taille des tables? Car elles font environ 100 000 lignes chacunes.
Pour un total de 2 à 3 Go il me semble.
C'est étrange :
https://support.microsoft.com/fr-fr/office/action-de-macro-copierobjet-6b2d0a2c-7e43-4c0d-89c5-42d74da858c7?ocmsassetid=ha001226213&correlationid=81bced0c-0a25-491b-a375-9686944194d6&ui=fr-fr&rs=fr-fr&ad=fr
Sinon, le docmd.copyobject existe en VBA, ça pourrait sans doute marcher en appelant une fonction qui fait la copie via la macro, avec executercode...
https://support.microsoft.com/fr-fr/office/action-de-macro-copierobjet-6b2d0a2c-7e43-4c0d-89c5-42d74da858c7?ocmsassetid=ha001226213&correlationid=81bced0c-0a25-491b-a375-9686944194d6&ui=fr-fr&rs=fr-fr&ad=fr
Sinon, le docmd.copyobject existe en VBA, ça pourrait sans doute marcher en appelant une fonction qui fait la copie via la macro, avec executercode...
Alors en ce début de semaine je reprends là où nous en étions resté vendredi.
Pour le commande copierObjet dans Access en fait elle existe bien mais pas disponible par défaut. Pour y accéder il faut simplement cliquer sur afficher toutes les actions dans les options de création de macro ^^.
Néanmoins cette solution me copie la table avec mon lien odbc vers la table sur les serveurs de la boite. Or (et c'est là l'origine de tous mes problèmes) il me faut une copie de cette table indépendante de celle du serveur donc que je copie la table sans le lien odbc.
Je commence donc à sécher un peu au niveau de la solution à utiliser.
Pour le commande copierObjet dans Access en fait elle existe bien mais pas disponible par défaut. Pour y accéder il faut simplement cliquer sur afficher toutes les actions dans les options de création de macro ^^.
Néanmoins cette solution me copie la table avec mon lien odbc vers la table sur les serveurs de la boite. Or (et c'est là l'origine de tous mes problèmes) il me faut une copie de cette table indépendante de celle du serveur donc que je copie la table sans le lien odbc.
Je commence donc à sécher un peu au niveau de la solution à utiliser.
D'accord, ce n'est donc pas une table avec odbc mais une table liée...
Dans ce cas, et c'est bien un problème, la méthode copierobjet ne fait que dupliquer la table sur la base d'origine, ce qui fait qu'elle reste une table liée.
Si tu as accès à la base d'origine (celle qui contient les tables), tu devrais faire une copie de tes tables sur celle-ci, pour ensuite les recopier sur la base qui contient les tables liées, elles devraient redevenir des tables locales...
Sinon, je pense qu'il faudrait passer par du vba avec transaction pour être sûr que c'est bien recopié...
Dans ce cas, et c'est bien un problème, la méthode copierobjet ne fait que dupliquer la table sur la base d'origine, ce qui fait qu'elle reste une table liée.
Si tu as accès à la base d'origine (celle qui contient les tables), tu devrais faire une copie de tes tables sur celle-ci, pour ensuite les recopier sur la base qui contient les tables liées, elles devraient redevenir des tables locales...
Sinon, je pense qu'il faudrait passer par du vba avec transaction pour être sûr que c'est bien recopié...
Alors des news. J'ai essayé de passer par une nouvelle méthode et d'importer les tables plutôt que de créer des tables liées puis des tables locales. Hors cette nouvelle méthode plante exactement comme la première.
Je pense que le soucis vient de la gateway par laquelle je passe. Je vais donc contacter le responsable pour avoir des nouvelles sur la connexion à la gateway. Je te tiens au courant.
Je pense que le soucis vient de la gateway par laquelle je passe. Je vais donc contacter le responsable pour avoir des nouvelles sur la connexion à la gateway. Je te tiens au courant.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question