Menu

Access:pb sur succession de requêtes création [Résolu/Fermé]

Arapata 9 Messages postés mardi 20 mars 2012Date d'inscription 29 mars 2012 Dernière intervention - 23 mars 2012 à 11:13 - Dernière réponse : Arapata 9 Messages postés mardi 20 mars 2012Date d'inscription 29 mars 2012 Dernière intervention
- 29 mars 2012 à 09:17
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 :)

Afficher la suite 

15 réponses

blux 23854 Messages postés dimanche 26 août 2001Date d'inscriptionModérateurStatut 1 mars 2018 Dernière intervention - 23 mars 2012 à 11:38
0
Merci
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 ?
Arapata 9 Messages postés mardi 20 mars 2012Date d'inscription 29 mars 2012 Dernière intervention - 23 mars 2012 à 12:00
0
Merci
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
blux 23854 Messages postés dimanche 26 août 2001Date d'inscriptionModérateurStatut 1 mars 2018 Dernière intervention - 23 mars 2012 à 12:34
0
Merci
Tu dis que manuellement, ça plante aussi ? Etrange...

Comment fais-tu pour lancer les requêtes via ton 'robot' ?
blux 23854 Messages postés dimanche 26 août 2001Date d'inscriptionModérateurStatut 1 mars 2018 Dernière intervention - 23 mars 2012 à 14:37
Plutôt que de t'amuser avec des requêtes SQL qui durent, tu devrais essayer l'action copierobjet dans ta macro et dupliquer ta table, ça serait plus court...
Arapata 9 Messages postés mardi 20 mars 2012Date d'inscription 29 mars 2012 Dernière intervention - 23 mars 2012 à 15:52
Ok je vais regarder ça. Je dois avouer que je ne connaissais pas du tout access il y a un mois ^^.
Je te dirais si ça marche.

Edit: la table est bien copiée mais c'est toujours une table liée. Hors j'ai besoin de ne plus avoir le lien odbc sur ma nouvelle table.
blux 23854 Messages postés dimanche 26 août 2001Date d'inscriptionModérateurStatut 1 mars 2018 Dernière intervention - 23 mars 2012 à 15:53
C'est étrange :

http://office.microsoft.com/fr-ch/access-help/action-de-macro-copierobjet-HA001226213.aspx

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...
Arapata 9 Messages postés mardi 20 mars 2012Date d'inscription 29 mars 2012 Dernière intervention - 23 mars 2012 à 17:53
Ok, je testerais ça lundi en arrivant au boulot. En tout cas merci pour ton aide jusque maintenant :)
blux 23854 Messages postés dimanche 26 août 2001Date d'inscriptionModérateurStatut 1 mars 2018 Dernière intervention - 23 mars 2012 à 19:36
Je viens de tester sur un 2007 et effectivement, pas de commande copierobjet !!!
Arapata 9 Messages postés mardi 20 mars 2012Date d'inscription 29 mars 2012 Dernière intervention - 26 mars 2012 à 09:38
0
Merci
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.
blux 23854 Messages postés dimanche 26 août 2001Date d'inscriptionModérateurStatut 1 mars 2018 Dernière intervention - 26 mars 2012 à 09:55
Un truc m'échappe : tu parles de lien odbc, mais celui-ci n'existe pas au niveau de la base, il n'est en principe utilisé que lorsque l'on veut accéder à des données depuis l'extérieur...
Si tu recopies l'objet, je ne vois pas ce qui te fait dire que tu as également recopié 'le lien odbc' ?
Arapata 9 Messages postés mardi 20 mars 2012Date d'inscription 29 mars 2012 Dernière intervention - 26 mars 2012 à 10:38
J'avais fait un copier objet vendredi soir. La table résultante avait le logo d'une table liée.
Ce matin cette fameuse table contenait les informations mises à jour pendant le week end sur la table source de l'entreprise. La table copiée possède donc bien toujours le lien vers la table source.
blux 23854 Messages postés dimanche 26 août 2001Date d'inscriptionModérateurStatut 1 mars 2018 Dernière intervention - 26 mars 2012 à 11:10
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é...
Arapata 9 Messages postés mardi 20 mars 2012Date d'inscription 29 mars 2012 Dernière intervention - 26 mars 2012 à 15:17
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.
Arapata 9 Messages postés mardi 20 mars 2012Date d'inscription 29 mars 2012 Dernière intervention - 29 mars 2012 à 09:17
0
Merci
Bon le problème est enfin résolu. Le soucis venait bien de la connexion avec la Gateway.

J'ai donc poser des filtres supplémentaires pour alléger la quantité de données récupérées sur les tables et maintenant tout fonctionne.

Merci pour ton aide et ton temps.