Maison >base de données >tutoriel mysql >Comment corriger l'erreur d'exécution 3704 lors de l'accès aux bases de données SQL dans Excel VBA ?

Comment corriger l'erreur d'exécution 3704 lors de l'accès aux bases de données SQL dans Excel VBA ?

Susan Sarandon
Susan Sarandonoriginal
2025-01-04 08:27:39347parcourir

How to Fix Run-time Error 3704 When Accessing SQL Databases in Excel VBA?

Accès à la base de données SQL dans Excel-VBA : résolution de l'erreur d'exécution 3704

Lors de l'accès aux données d'une base de données SQL à l'aide du code VBA, vous pouvez rencontrer une erreur lors de la tentative pour copier les données du jeu d'enregistrements vers Excel. Plus précisément, l'erreur « Erreur d'exécution 3704 : l'opération n'est pas autorisée lorsque l'objet est fermé » se produit lorsque l'objet jeu d'enregistrements est fermé.

Pour résoudre ce problème :

  1. Vérifiez l'accessibilité de la base de données : Assurez-vous que la base de données est accessible par VBA. Assurez-vous que la base de données est en cours d'exécution, que la chaîne de connexion est correcte et que l'utilisateur dispose des autorisations nécessaires pour accéder à la base de données.
  2. Ajouter le catalogue initial à la chaîne de connexion : Modifiez la chaîne de connexion pour inclure le catalogue initial, qui représente le nom de la base de données. Par exemple :
objMyConn.ConnectionString = "Provider=SQLOLEDB;Data Source=localhost;Initial Catalog=MyDatabase;User ID=abc;Password=abc;"
  1. Ouvrez directement le jeu d'enregistrements : Au lieu d'utiliser l'objet ADODB.Command, vous pouvez ouvrir directement le jeu d'enregistrements à l'aide de l'instruction SQL. Voici un extrait de code mis à jour :
Const adCmdText As Long = 1
Dim strSQL As String

... // Other code above

' Open Recordset'
Set objMyRecordset.ActiveConnection = objMyConn
strSQL = "select * from myTable"
objMyRecordset.Open strSQL            

... // Rest of the code below

En effectuant ces ajustements, vous devriez pouvoir copier avec succès les données de la base de données SQL vers Excel à l'aide de VBA sans rencontrer l'erreur d'exécution 3704.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn