Depuis Excel, Connexion à ACCESS 2016 sécurisée au niveau généra

Fermé
FannyGIR1 Messages postés 3 Date d'inscription lundi 8 janvier 2018 Statut Membre Dernière intervention 9 janvier 2018 - 8 janv. 2018 à 17:52
 FannyGIR1 - 12 janv. 2018 à 16:17
Bonjour

J'essaye d'effectuer des actions dans une base de données ACCESS 2016 depuis un fichier Excel.
Cette base de données est protégée par un mot de passe général.

J'ai l'erreur suivante: Erreur d’exécution 2147217843 (80040e4d) mot de passe non valide
Je suis sure de mon mot de passe. Mon code fonctionne également si j'enlève le mot de passe.

J'avoue être un peu désemparée car je cherche depuis des heures sur internet et je trouve pas la solution à mon problème.

Voici le code utilisé:

Option Explicit

Public Const NomBD = "INTEGRATION SOCIAL2.ACCDB"
Public Const CheminBD = "C:\Conso\"
Public Const MotdePasseBD = "TEST"

Sub SuppressionTableAccess()
'macro destinée à supprimer une table

Dim strMyPath As String
Dim strDBName As String
Dim strDB As String
Dim StrSQL As String
Dim StrQuery As String
Dim strTableSupp

Dim connDB As New ADODB.Connection

' --------------THE CONNECTION OBJECT
strDBName = NomBD
strMyPath = CheminBD
strDB = strMyPath & strDBName

'-------------- Connect to a data source:
connDB.Open ConnectionString:="Provider = Microsoft.ACE.OLEDB.16.0; data source=" & strDB & "; Jet OLEDB:Database Password=" & MotdePasseBD
StrQuery = "DROP TABLE [" & strTableSupp & "]"

'-------------- Performs the actual query
On Error Resume Next
connDB.Execute StrQuery

'-------------- close the objects
connDB.Close

'-------------- destroy the variables
Set connDB = Nothing

End Sub


Auriez vous une idée de ce qui cloche ?
Un grand merci d'avance pour votre aide !
A voir également:

2 réponses

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
Modifié le 12 janv. 2018 à 15:24
Bonjour

Suite à une vieille discussion avec une base access protégée


Merci, Michel. Finalement j'ai pu trouver le problème que j'avais. En effet, dans une chaîne de connexion en VB.Net ou même 6 ou VBA, si on veut se connecter sur une base de données ACCess version 2000 ou antérieur dans laquelle on a défini des utilisateurs et mots de passe, il faut intégrer dans la chaine l'emplacement du fichier "system file" .mdw car celui-ci est détaché de la base elle même. Exemple de chaine:

"Provider=Microsoft.Jet.OLEDB.4.0;Password=ambracadaba;User ID=adrien;Data Source=C:\Centralisation\BDCOMPTA01.mdb;Persist Security Info=True;Jet OLEDB:System database=C:\Program Files\Common Files\System.mdw"

(par défaut ce fichier de groupe de travail se trouve dans ce dossier)


attention le script de cpnnexion a changé depuis XL2007 et que

Persist Security Info=True;Jet OLEDB:System database=C:\Program Files\Common Files\System.mdw"
soit toujours valable

Edit:
voir aussi dans
https://www.connectionstrings.com/access-2013/

With database password

This is the connection string to use when you have an Access 2007 - 2013 database protected with a password using the "Set Database Password" function in Access.

Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\myFolder\myAccessFile.accdb;
Jet OLEDB:Database Password=MyDbPassword;



Some reports of problems with password longer than 14 characters. Also that some characters might cause trouble. If you are having problems, try change password to a short one with normal characters.

Note! Reports say that a database encrypted using Access 2010 - 2013 default encryption scheme does not work with this connection string. In Access; try options and choose 2007 encryption method instead. That should make it work. We do not know of any other solution. Please get in touch if other solutions is available!




 Michel
0
Bonjour
Je vous remercie pour votre réponse.
Je crois que je vais demander à Microsoft !
Bien cordialement
0