2010-11-03 6 views
0

J'ai un projet où je lis des données d'une feuille de calcul Excel et l'enregistre dans les tables d'accès (pas une importation directe - voir this question si vous êtes intéressé). Mon problème actuel est que chaque fois que j'exécute mon "importation", puis j'essaie d'ouvrir le classeur dans Excel, il est "verrouillé pour l'édition" tant que je ne ferme pas Access. Je ne pense pas cela devrait être le cas. Mon processus estExcel 2007 classeur verrouillé après l'accès à partir d'Access 2007

  1. Ouvrez le classeur avec Automation.
  2. Créer une collection de noms de feuille.
  3. Libère les objets Automation.
  4. S'il y a plusieurs feuilles, demandez à l'utilisateur de les traiter.
  5. Ouvrez un jeu d'enregistrements ADO sur une plage spécifique & pour lire certaines données.
  6. Relâchez le jeu d'enregistrements & connexion.
  7. Ouvrez un jeu d'enregistrements ADO sur une plage spécifique différente & lire un groupe de données.
  8. Relâchez le jeu d'enregistrements & connexion.
  9. Fermez le formulaire de contrôle.

Les étapes 1 à 4 et 9 résident dans le fichier de formulaire, le reste dans un module.

Ai-je raté quelque chose? Je pense J'ai publié toutes les références au classeur ....

Répondre

1

Si votre étape 1 comprend quelque chose comme ceci:

Dim objExcel As New Excel.Application 

Et libérer plus tard l'objet est la suivante:

Set objExcel = Nothing 

Essayer inclure cette ligne juste avant de définir la variable objet à Nothing:

objExcel.Quit 

Il contribue également à rendre l'application Excel par exemple visible après le démarrage si vous êtes moins susceptible de laisser courir Excel invisible:

objExcel.Visible = True 
+0

Le .Quit a fait le tour .. Merci! – RolandTumble

Questions connexes