|
FORUMS PROFESSIONNELS WINDEV, WEBDEV et WINDEV Mobile |
| | | | | |
| Acceder à une base de donnée Access |
| Débuté par Jean-François P, 13 fév. 2019 10:49 - 13 réponses |
| |
| | | |
|
| |
Membre enregistré 110 messages |
|
| Posté le 13 février 2019 - 10:49 |
Bonjour,
Je suis un peu perdu, je voudrais avoir accès à une base de donnée access utilisé par un autre programme.
J'ai le code suivant mais impossible d'avoir accès à la BDD :
HPasse("*","Mon_Mot_DePasse") HDéclareExterne("Mon_Chemin\Ma_BDD.accdb", "Liste") SI ErreurDétectée = Vrai ALORS Erreur(HErreurInfo()) FIN
Le message d'erreur est : "Ce fichier n'est pas au format windev".
Quelqu'un a un conseil à me donner?
Merci beaucoup. |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 1 640 messages |
|
| Posté le 13 février 2019 - 11:13 |
Salut,
Avec ou sans analyse ?
Essaye ce bout de code : nConnection est un entier = SQLConnecte(sCheminBaseAcces","","","","OLEDB",hOledbAccess2000) // change la constante hOledbAccess2000 en fonction de la version de ta base
Ce code permet d'executer des instructions SQL au avec SQLExec() |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 110 messages |
|
| Posté le 13 février 2019 - 11:29 |
Salut,
Merci pour ta réponse. J'ai besoin d'y accéder sans analyse.
Je vais essayer ton code et je reviens vers toiMessage modifié, 13 février 2019 - 11:38 |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 110 messages |
|
| Posté le 14 février 2019 - 09:56 |
Bonjour,
Avec ou sans analyse ?
Essaye ce bout de code : nConnection est un entier = SQLConnecte(sCheminBaseAcces","","","","OLEDB",hOledbAccess2000) // change la constante hOledbAccess2000 en fonction de la version de ta base
J'ai besoin d'y accéder sans analyse. Du coup ce code ne peut pas marché. Je dois passé par une déclaration externe, mais c'est à ce niveau que ça pêche.
HPasse("*","Mon_Mot_DePasse") HDéclareExterne("Mon_Chemin\Ma_BDD.accdb","Liste") SIErreurDétectée=VraiALORS
Erreur(HErreurInfo()) FIN
Mon code ne fonctionne pas et je ne comprend pas l’erreur.
Merci pour votre aide |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 37 messages |
|
| Posté le 14 février 2019 - 12:23 |
Bonjour, j'ouvre une BDD (.mdb) sans analyse comme ceci. Je suppose que pour une .accdb c'est pareille. Je n'ai pas testé.
LOCAL cnx est une Connexion sdCli est une Source dede Données cnx..Provider = hOledbAccess2000 cnx..Source = "Mon_Chemin\Ma_BDD.mdb" cnx..Accès = hOLectureEcriture cnx..InfosEtendues = "Mode=16"
SI HDéclareExterne("tblClients",sdCli,cnx) ALORS HLitPremier(sdCli,"fldClient") Info(sdCli.fldclient,sdCli.fldName) HFerme(sdCli) HAnnuleDéclaration(sdCli) FIN
-- Bonne journée
J. Feyen |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 1 640 messages |
|
| Posté le 14 février 2019 - 12:37 |
@Jean-François P
J'utilise ce code dans un projet, sans analyse. Par contre, cette methode ne permet pas les fonction H, uniquement SQLExec() |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 110 messages |
|
| Posté le 14 février 2019 - 14:54 |
J.Feyen merci pour vos réponses,
En utilisant votre méthode en l'adaptant à ma situation :
cnx est une Connexion sdCli est une Source dede Données
cnx..Provider=hOledbAccess2010 cnx..Source="C:\XPR\PROS Plus\Database\2019 02.accdb" cnx..MotDePasse="Monmdp" cnx..Accès=hOLectureEcriture cnx..InfosEtendues="Mode=16"
SI HDéclareExterne("SystemEvents",sdCli,cnx) ALORS FIN Erreur(HErreurInfo())
Ce message d'erreur apparaît :
Détail de l’erreur système : Description= Impossible de démarrer votre application. Le fichier d’informations du groupe de travail est absent ou ouvert en mode exclusif par un autre utilisateur.
François C. je vous remercie également pour vos réponses,
J'ai fais de même et en utilisant votre méthode en l'adaptant à ma situation :
nConnection est un entier = SQLConnecte("C:\XPR\PROS Plus\Database\2019 02.accdb","","Monmdp","","OLEDB",hOledbAccess2010) SI nConnection <> 0 ALORS SINON SQLInfoGene() Erreur("La connexion à la source de données " + "C:\XPR\PROS Plus\Database\2019 02.accdb" + " a échoué." + RC + ... "Code erreur : " + SQL.Erreur + RC + SQL.MesErreur) FIN
Le même message d'erreur apparaît :
Détail de l’erreur système : Description= Impossible de démarrer votre application. Le fichier d’informations du groupe de travail est absent ou ouvert en mode exclusif par un autre utilisateur.
Je teins à préciser que je n'ai pas Access sur mon PC et que cette BDD n'est ouverte nul part.
Vous avez des idées?
Merci |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 110 messages |
|
| Posté le 15 février 2019 - 11:16 |
| Je suis toujours en train de chercher et je n'ai pas de solution, personne n'a jamais eu affaire à ce problème? |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 512 messages |
|
| Posté le 15 février 2019 - 11:56 |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 512 messages |
|
| Posté le 15 février 2019 - 12:06 |
(message précédent complété, celui-ci est à supprimer) -- Pour me contacter par courrier électronique, cliquez sur le lien ci-dessous (protection antispam): http://cerbermail.com/…Message modifié, 15 février 2019 - 12:09 |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 512 messages |
|
| Posté le 15 février 2019 - 13:51 |
Et s'il s'agit d'une base de données de type ACCDB, alors il n'est pas utile de passer un mot de passe, mais il faut penser à ouvrir la connexion.
Le code pourrait alors ressembler à ceci :
cnx est une Connexion sdCli est une Source dede Données
cnx..Provider = hOledbAccess2010 cnx..Source = "C:\XPR\PROS Plus\Database\2019 02.accdb" cnx..Accès = hOLectureEcriture
SI PAS HOuvreConnexion(cnx) ALORS Erreur("HOuvreConnexion(cnx)",HErreurInfo()) RENVOYER Faux FIN
SI PAS HDéclareExterne("SystemEvents",sdCli,cnx) ALORS Erreur("HDéclareExterne('SystemEvents')",HErreurInfo()) RENVOYER Faux FIN
-- Pour me contacter par courrier électronique, cliquez sur le lien ci-dessous (protection antispam): http://cerbermail.com/…Message modifié, 15 février 2019 - 13:52 |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 512 messages |
|
| Posté le 15 février 2019 - 17:21 |
Bon, après avoir re-re-re-vérifié sur un fichier ACCDB, je constate qu'il faut renseigner le mot de passe de la base de données. ( apparemment j'avais mal testé la première fois ).
Donc le mot de passe de base de données est transmis via les informations étendues. Par exemple si le mot de pas est "MDP' :
cnx..InfosEtendues="Jet OLEDB:Database Password=MDP"
Pour une chaîne de connexion complexes, les différents paramères doivent être séparés par des cvaractères ";" (point-virgule). Par exemple :
cnx..InfosEtendues="Mode=16;Jet OLEDB:Database Password=MDP"
-- Pour me contacter par courrier électronique, cliquez sur le lien ci-dessous (protection antispam): http://cerbermail.com/… |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 110 messages |
|
| Posté le 18 février 2019 - 08:35 |
Bonjour,
Après un bon week-end ensoleillé j'ai l'immense plaisir d'avoir cette réponse qui m'aide énormément. J'arrive enfin à me connecter à ma base de donnée.
Il fallait effectivement rentrer le mot de passe dans les InfosEtendues.
Un grand merci à vous.
Bonne journée. |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 72 messages |
|
| Posté le 20 novembre 2020 - 14:00 |
Bonjour,
j'ai utilisé votre code pour me connecter à ma BDD ACCESS et ça fonctionne. Cependant, je souhaiterai qu'elle apparaisse dans l'analyse et lorsque je veux importer ma BDD j'ai l'erreur suivante :
Impossible de se connecter à c:\...................mdb Erreur de l'accès OLE DB. Numéro d'erreur =170124
Echec de l'ouverture de la connexion : Source de données <C:\ ........ .mdb> Provider OLEDB <Microsoft.ACE.OLEDB.12.0>
J'ai essayé tous les types de connexion Access mais g toujours la même erreur. Est ce que quelqu'un aurait une solution ?
Merci à vous. |
| |
| |
| | | |
|
| | | | |
| | |
| | |
| |
|
|
|