Bonjour,
J'ai une base de données en mode partagée qui se met à jour toutes les nuits à l'aide d'un batch.
Mais depuis 3 jours, je ne sais pour quelle raison, il me renvoie cette erreur:
Vous avez essayé d'ouvrir une base de données déjà ouverte en mode exclusif par l'utilisateur 'admin' sur la machine xxx.
Recommencez lorsque la base de données sera disponible.
Puis stop la mise à jour par le batch. J'ai vérifiée toutes mes bases elles sont en mode partagée, lors de la mise à jour du soir il n'y que le batch d'ouvert.
Dans le code on procède à l'ouverture de la base pour l'update des données jusqu'à mercredi il n'y avait jamais eu de pbs, le code est le même, rien n'a été changé et il n'y a aucunes autres bases ouvertes.
D'où pourrait venir le problème à votre avis. Merci d'avance pour vos indications.
Voici un extrait de mon code, le batch plante à la dernière ligne:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 Public Function majrefs(typo) Dim strsql$, bd As Database, rec As Recordset, i%, quer As QueryDef, nb% ' Test si fichier export est bien antérieur à l'import strsql = "SELECT Import_LN.*, Import_LN.DT_MODIF, Export_LN.DT_MODIF" strsql = strsql & " FROM Import_LN INNER JOIN Export_LN ON (Import_LN.IDBP = Export_LN.IDBP) AND (Import_LN.REFERENCE = Export_LN.REFERENCE) " strsql = strsql & " WHERE (((Import_LN.DT_MODIF)<[export_ln].[dt_modif])) OR (((Import_LN.DT_MODIF) Is Null) AND ((Export_LN.DT_MODIF) Is Not Null)) " Set bd = CurrentDb Set rec = bd.OpenRecordset(strsql) If rec.RecordCount <> 0 Then ' Pb : On écrit les messages et on continue : Set rec = bd.OpenRecordset("journal") rec.AddNew rec.Fields("dt") = Now rec.Fields("Action") = "Import Incohérent" rec.Fields("Resultat") = "Enregistrement avec Pb Modif LN !!!" rec.Update DoCmd.RunSQL "delete * from __anterieur_ln" ' écriture des anomalies : If typo = "MAnu" Then majrefs = False: Exit Function majrefs = True End If majrefs = True ' sauvegarde des données gestion marquées : DoCmd.RunSQL "delete * from ref_marquees" strsql = "INSERT INTO REf_Marquees SELECT REFERENCES.* FROM [References] WHERE (((REFERENCES.Flag_Gestion)=True))" DoCmd.RunSQL strsql
Partager