PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → Ouverture base de donnée Access
Ouverture base de donnée Access
Débuté par Alain, 13 juin 2008 13:28 - 2 réponses
Posté le 13 juin 2008 - 13:28
Je rencontre un problème bizarre...
Mon application ouvre une base de données Access, située sur le serveur, par HCONNECTE.
Cette base est utilisée par d'autres applications (non Windev) tournant sur des postes du réseau.
Lorsque ces applications sont ouvertes, mon application se plante sur le HCONNECTE avec un message indiquant que le fichier est en cours d'utilisation, alors que les autres applications ouvrent la base en lecture seule.

Je joins ci-dessous le détail de l'erreur que je récupère. Merci d'avance pour toute aide que vous pourrez m'apporter.

Message d'erreur:
----------------
Erreur à la ligne 45 du traitement Sélection du menu de _Menu.Menu.Localisation_base_de_donnée.
Vous avez appelé la fonction HConnecte.
Erreur de l'accès OLE DB.
Numéro d'erreur = 170128

Echec de la création de la base de données <W:\Nicelabel\Database\Etiquettes_Production.mdb>.

Détail de l'erreur système :

Description = Impossible d'utiliser ''; fichier en cours d'utilisation.
Source = Microsoft JET Database Engine
Help Context = 5003045
SQL State = 3045
Error Number = -2147467259
Native Error Number = -67044352


Informations techniques

Projet : Gestion Etiquettes

Dump de l'erreur du module <WD110HF.DLL> <11.00Fc>.

- Appel WL :
Traitement de <MenuPrincipal._Menu.Menu.Localisation_base_de_donnée>, ligne <45>, thread <0>
Fonction <HConnecte>, n° de syntaxe <4>

- Niveau : erreur fatale (EL_FATAL)

- Code erreur : 73001

- Code erreur WD55 : 3001

- Pas de code d'erreur système

- Message d'erreur système :
Description = Impossible d'utiliser ''; fichier en cours d'utilisation.
Source = Microsoft JET Database Engine
Help Context = 5003045
SQL State = 3045
Error Number = -2147467259
Native Error Number = -67044352


- Que s'est-il passé ?
Erreur de l'accès OLE DB.
Numéro d'erreur = 170128

Echec de la création de la base de données <W:\Nicelabel\Database\Etiquettes_Production.mdb>.

- Infos de debug :
IEWDOLDB=106003
Module=<WDOLDB>
Version=<11.00Az>

Version du MDAC = <2.81.1117.0>.



[Connection parameters]
DataSource = <W:\Nicelabel\Database\Etiquettes_Production.mdb>
Initial Catalog = <>
Provider = <Microsoft.Jet.OLEDB.4.0>
User = <>
Password = <>
Extended Info = <>
Access = <Read/Write>

[Connection settings]
ConnectionTimeout = <-1>
CommandTimeout = <-1>

[Data format]
Query Parameter Checked = <0> = <>
Query Parameter Needing conversion = <0> = <>
DecimalSeparator = <Undefined>
DateFormat = <>

[Cursor settings Match]
LockType = <adLockUnspecified>, Location = <adUseNone>, Type = <adOpenUnspecified>, Capacities = <ffffffff>
LockType = <adLockUnspecified>, Location = <adUseNone>, Type = <adOpenUnspecified>, Capacities = <ffffffff>
LockType = <adLockUnspecified>, Location = <adUseNone>, Type = <adOpenUnspecified>, Capacities = <ffffffff>

Fonction (7,198)

- Infos attachées :
EIT_ADOCODE : <-2147217897>
EIT_BASECODE : <-67044352>
EIT_ODBCDESCRIPTION : <Impossible d'utiliser ''; fichier en cours d'utilisation.>
EIT_ODBCCODE : <3045>
EIT_NATIVECODE : <170128>
EIT_DATEHEURE : 13/06/2008 11:08:57
EIT_PILEWL :
Sélection du menu de _Menu.Menu.Localisation_base_de_donnée (MenuPrincipal._Menu.Menu.Localisation_base_de_donnée), ligne 45

- Identifiant dans le .err : 72801


Assistance
Posté le 25 novembre 2015 - 09:57
Même soucis avec Windev 19.
Apparemment, Access verrouille ses données dès qu'un utilisateur est connecté dessus.

Par contre, ce soucis se produit avce une version compilée et déployée sur un poste utilisateur, jamais sur mon poste de développement... :o
Membre enregistré
27 messages
Popularité : -1 (3 votes)
Posté le 25 novembre 2015 - 12:23
Bonjour,
Voici un bout de code qui fonctionne chez moi, pour ouvrir une base Access partagée.

Ma Base est protégée avec des comptes utilisateurs, d'où le paramétrage du fichier mdw et la chaines passée dans infosEtendues.
Si il n'y a pas de protection , cela peut être retiré.

cnxAccess..Provider=hOledbAccess2000
cnxAccess..BaseDeDonnées=""
cnxAccess..Source="W:\Nicelabel\Database\Etiquettes_Production.mdb"
cnxAccess..Accès=hOLectureEcriture

//Si la base est protégée
sFicMDW est une chaîne="W:\Nicelabel\Database\system.mdw" //par exemple
cnxAccess..Utilisateur="admin"
cnxAccess..MotDePasse="toto"
sChaineCnx est une chaîne

sChaineCnx=[
Cache Authentication=True;
Encrypt Password=False;
Mask Password=False;
Window Handle=0;
Mode=16;
Prompt=4;
Extended Properties=;
Locale Identifier=1033;
OLE DB Services=-2;
Persist Security Info=True;
Jet OLEDB:System database=%1;
Jet OLEDB:Registry Path=;
Jet OLEDB:Database Password=;
Jet OLEDB:Engine Type=0;
Jet OLEDB:Database Locking Mode=1;
Jet OLEDB:Global Partial Bulk Ops=2;
Jet OLEDB:Global Bulk Transactions=1;
Jet OLEDB:New Database Password=;
Jet OLEDB:Create System Database=False;
Jet OLEDB:Encrypt Database=False;
Jet OLEDB:Don't Copy Locale on Compact=False;
Jet OLEDB:Compact Without Replica Repair=False;
Jet OLEDB:SFP=False;
Jet OLEDB:Compact Reclaimed Space Amount=0
]
cnxAccess..InfosEtendues=ChaîneConstruit(sChaineCnx,sFicMDW)


//Ouverture
SI PAS HOuvreConnexion(cnxAccess) ALORS
Info(HErreurInfo(hErrComplet))
RETOUR
FIN


Bon Dev.

--
Didier Fournier
Développeur indépendant