Accès à la base de données SQL dans Excel-VBA : dépannage de la chaîne de connexion
En accédant à une base de données SQL à partir d'Excel-VBA, les utilisateurs peuvent rencontrer les problèmes suivants erreur d'exécution : "L'opération n'est pas autorisée lorsque l'objet est fermé." lorsque vous tentez de copier des données du jeu d'enregistrements vers une plage Excel. Cette erreur indique souvent un problème avec la chaîne de connexion ou l'état du jeu d'enregistrements.
Une cause potentielle de ce problème est la spécification incorrecte de la chaîne de connexion. Assurez-vous que tous les paramètres nécessaires sont fournis, y compris le nom de la base de données et toutes les informations d'identification requises. La chaîne de connexion fournie dans l'extrait de code d'origine ne contient pas le paramètre Initial Catalog, qui spécifie la base de données à laquelle se connecter.
En ajoutant le paramètre Initial Catalog à la chaîne de connexion et en utilisant une méthode plus simple pour exécuter l'instruction SQL directement (par opposition à un objet ADODB.Command), le problème peut être résolu. Le code révisé ci-dessous inclut les modifications nécessaires :
Sub GetDataFromADO() 'Declare variables' Set objMyConn = New ADODB.Connection Set objMyRecordset = New ADODB.Recordset Dim strSQL As String 'Open Connection' objMyConn.ConnectionString = "Provider=SQLOLEDB;Data Source=localhost;Initial Catalog=MyDatabase;User ID=abc;Password=abc;" objMyConn.Open 'Set and Excecute SQL Command' strSQL = "select * from myTable" 'Open Recordset' Set objMyRecordset.ActiveConnection = objMyConn objMyRecordset.Open strSQL 'Copy Data to Excel' ActiveSheet.Range("A1").CopyFromRecordset (objMyRecordset) End Sub
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!