|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité régulier
![]() Inscription : août 2008 Messages : 25 ![]() |
Bonjour,
J'ai réalisé une petite appli sur Access 2003 SP3 qui exporte sous Excel les résultats d'une sélection. Ceci fonctionne bien sur une machine qui a cet Access 2003 et Office 2010 mais plante si on travaille sur d'autres machines qui ont Office 2003 SP3 avec ce même Access 2003. Bien sur j'adapte dans les références de VBA le bon MS Excel Object Library sinon rien ne marche! J'envoie les données depuis des recordsets (ouverts et fermés dès qu'il n'y en a plus besoin) dans une cession d'excel qui demarre avec un fichier modèle et le sauvegarde en le renommant. A la fin du transfert, je demande l'exécution d'une macro située dans le fichier Excel pour mettre en forme les données. A ce stade, je laisse le dossier Excel ouvert pour que l'utilisateur voit si cela lui convient et le sauvegarde la ou il veut. J'ai cependant plusieurs anomalies:
J'ai vérifié si un enregistrement particulier contenait une valeur anormale mais rien d'évident. La mémoire disponible a-t-elle une incidence sur ce comportement? Il semble que si je selectionne peu d'enregistrement cela passe. QQu'un a-t-il une idée car le but est de diffuser cette appli sur pas mal de machines tournant sous 2003. Merci d'avance |
|
|
00
|
|
|
#2 | ||
|
Invité régulier
![]() Inscription : août 2008 Messages : 25 ![]() |
Mon premier message n'ayant pas lévé l'enthousiasme des foules, voila le code dans le détail!
Pour la comprehension, la base est essentiellement composée d'une table formations (T01), d'une table parcours (T05) liées entr'elles par une table de jonction (T06) puisqu'un parcours est composé de formations et qu'une formation peut faire partie de plusieurs parcours. Code :
A+ |
||
|
|
00
|
|
|
#3 | |
|
Expert Confirmé
![]() Chercheur de bonheur Inscription : août 2007 Messages : 2 256 ![]() |
Bonjour,
pour ceci : Citation:
Ensuite, dans ton code il manque au moins après chaque close ceci Pour le reste, je ne procède jamais de la sorte, alors je ne peux t'aider.
__________________
(\ _ /) Cordialement G@dz (='.'=) (")-(") Vous avez des neurones. Sollicitez-les. ![]() . Si vous êtes aidé, pensez à Voter.
|
|
|
|
00
|
|
|
#4 |
|
Invité régulier
![]() Inscription : août 2008 Messages : 25 ![]() |
Merci pour ta réponse mais j'avoue que après qq heures passées sur le sujet cela commence à devenir énervant, d'autant plus rageant que cela marche bien sur un poste et pas sur l'autre!
J'ai donc mis set rstxx= nothing et je pensais que comme on libère de la mémoire cela allait dans le bon sens mais tj le meme pb. En fait, j'ai l'impression que le transfer se fait pour une certaine quantité de données puis s'arrete avec tj le meme message: erreur définie par l'application ou par l'objet. Il est un fait qu'à part les versions d'office, les ordi ont une mémoire très différente: 1Go pour celui qui plante, 4 pour l'autre. Tu dis que tu ne procède jamais comme cela, as tu une autre piste? A part cela, c'est un bien joli bébé sur la photo! Merci |
|
|
00
|
|
|
#5 |
|
Invité régulier
![]() Inscription : août 2008 Messages : 25 ![]() |
Je viens de penser à une autre limite possible: Dans access, j'exporte des champs memo qui ont plus de 255 caractères: y a-t-il une limite entre office 2003 sous windows XP par rapport a office 2010 sous Windows 7 soit dans la copie, le transfer ou la mémoire allouée qui provoquerait le blocage sur ces enregistrements?
A+ |
|
|
00
|
|
|
#6 | ||
|
Nouveau Membre du Club
![]() Stéphane Formateur en informatique Inscription : janvier 2011 Messages : 30 ![]() |
Bonjour
Cela ne va pas solutionner ton pb ... Mais ça permet de placer le contenu d'un Recordset dans Excel Avec la méthode CopyFromRecordset Cordialement, Code :
|
||
|
|
00
|
|
|
#7 |
|
Invité régulier
![]() Inscription : août 2008 Messages : 25 ![]() |
Merci pour ta réponse, je garde cela dans un coin, on ne sait jamais cela peut tj servir!
En fait, j'ai fini par trouver l'origine du pb: j'ai développé l'appli sur une machine équipée d'office 2010 sous Win7 et elle plantait avec office 2003 sous XP. En fait, il semble impossible de transférer plus de 255 catactères sous 2003. Si je limite le nombre de caractères venant des champs mémo à 255 (par MID(nomchamp,1,255)), plus de pb mais bien sur pas plus de 255 caractères! Chose curieuse d'ailleurs, en utilisant 300 comme limite, cela ne plante pas non plus mais seuls 255 caractères sont transférés à la cellule Excel. Mystère! A signaler par ailleurs un comportement différent selon les machines: sur l'ordi en Excel 2010 et Win7, le fait de laisser l'objet appexcel ouvert entre deux sessions ne pose pas pb. Sur une autre, Office 2007 et Win7, il faut faire appexcel.close et appexcel=nothing pour ne pas planter au deuxième jet. Merci à tous pour ces aides. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com