Salut,
"Francis"Je reviens sur une question déjà posée (15/03/08), et que je n'avais
pas réussi à résoudre. J'ai à nouveau tenté le coup d'appliquer la
méthode de Jessy
http://access.fr.free.fr/download.php?lng=fr&pg0
et ça ne marche toujours pas: la procédure bloque sur l'instruction:
DBEngine.CompactDataBase strDbFile, strDbFileOld
Vérifie si tu as bien renseigné la référence à "Microsoft DAO 3.6 Object
Libray" et qu'elle se situe bien avant (plus haut) que ADO, si utilisé...
Si je remplace les variables strDbFile et StrDbFileOld par les chemins
et noms de mon fichier, j'ai alors un message d'erreur d'exécution 3356
qui me dit que j'ai essayé d'ouvrir une base de données déjà ouverte en
mode exclusif etc...
Pourquoi remplacer ces variables ? Le code de Jessy fonctionne tel quel,
si tu souhaites le modifier, il faut le comprendre ;-)
Salut,
"Francis"
Je reviens sur une question déjà posée (15/03/08), et que je n'avais
pas réussi à résoudre. J'ai à nouveau tenté le coup d'appliquer la
méthode de Jessy
http://access.fr.free.fr/download.php?lng=fr&pg0
et ça ne marche toujours pas: la procédure bloque sur l'instruction:
DBEngine.CompactDataBase strDbFile, strDbFileOld
Vérifie si tu as bien renseigné la référence à "Microsoft DAO 3.6 Object
Libray" et qu'elle se situe bien avant (plus haut) que ADO, si utilisé...
Si je remplace les variables strDbFile et StrDbFileOld par les chemins
et noms de mon fichier, j'ai alors un message d'erreur d'exécution 3356
qui me dit que j'ai essayé d'ouvrir une base de données déjà ouverte en
mode exclusif etc...
Pourquoi remplacer ces variables ? Le code de Jessy fonctionne tel quel,
si tu souhaites le modifier, il faut le comprendre ;-)
Salut,
"Francis"Je reviens sur une question déjà posée (15/03/08), et que je n'avais
pas réussi à résoudre. J'ai à nouveau tenté le coup d'appliquer la
méthode de Jessy
http://access.fr.free.fr/download.php?lng=fr&pg0
et ça ne marche toujours pas: la procédure bloque sur l'instruction:
DBEngine.CompactDataBase strDbFile, strDbFileOld
Vérifie si tu as bien renseigné la référence à "Microsoft DAO 3.6 Object
Libray" et qu'elle se situe bien avant (plus haut) que ADO, si utilisé...
Si je remplace les variables strDbFile et StrDbFileOld par les chemins
et noms de mon fichier, j'ai alors un message d'erreur d'exécution 3356
qui me dit que j'ai essayé d'ouvrir une base de données déjà ouverte en
mode exclusif etc...
Pourquoi remplacer ces variables ? Le code de Jessy fonctionne tel quel,
si tu souhaites le modifier, il faut le comprendre ;-)
Bonjour,
Je reviens sur une question déjà posée (15/03/08), et que je n'avais
pas réussi à résoudre. J'ai à nouveau tenté le coup d'appliquer la
méthode de Jessy
http://access.fr.free.fr/download.php?lng=fr&pg0
et ça ne marche toujours pas: la procédure bloque sur l'instruction:
DBEngine.CompactDataBase strDbFile, strDbFileOld
Par contre, avec l'exemple téléchargé db1.mdb, ça marche au poil.
Si je remplace les variables strDbFile et StrDbFileOld par les chemins
et noms de mon fichier, j'ai alors un message d'erreur d'exécution 3356
qui me dit que j'ai essayé d'ouvrir une base de données déjà ouverte en
mode exclusif etc...
Bonjour,
Je reviens sur une question déjà posée (15/03/08), et que je n'avais
pas réussi à résoudre. J'ai à nouveau tenté le coup d'appliquer la
méthode de Jessy
http://access.fr.free.fr/download.php?lng=fr&pg0
et ça ne marche toujours pas: la procédure bloque sur l'instruction:
DBEngine.CompactDataBase strDbFile, strDbFileOld
Par contre, avec l'exemple téléchargé db1.mdb, ça marche au poil.
Si je remplace les variables strDbFile et StrDbFileOld par les chemins
et noms de mon fichier, j'ai alors un message d'erreur d'exécution 3356
qui me dit que j'ai essayé d'ouvrir une base de données déjà ouverte en
mode exclusif etc...
Bonjour,
Je reviens sur une question déjà posée (15/03/08), et que je n'avais
pas réussi à résoudre. J'ai à nouveau tenté le coup d'appliquer la
méthode de Jessy
http://access.fr.free.fr/download.php?lng=fr&pg0
et ça ne marche toujours pas: la procédure bloque sur l'instruction:
DBEngine.CompactDataBase strDbFile, strDbFileOld
Par contre, avec l'exemple téléchargé db1.mdb, ça marche au poil.
Si je remplace les variables strDbFile et StrDbFileOld par les chemins
et noms de mon fichier, j'ai alors un message d'erreur d'exécution 3356
qui me dit que j'ai essayé d'ouvrir une base de données déjà ouverte en
mode exclusif etc...
Bonjour,
"Francis" a écrit dans le message de
news:Bonjour,
Je reviens sur une question déjà posée (15/03/08), et que je n'avais
pas réussi à résoudre. J'ai à nouveau tenté le coup d'appliquer la
méthode de Jessy
http://access.fr.free.fr/download.php?lng=fr&pg0
et ça ne marche toujours pas: la procédure bloque sur l'instruction:
DBEngine.CompactDataBase strDbFile, strDbFileOld
Par contre, avec l'exemple téléchargé db1.mdb, ça marche au poil.
Ok.Si je remplace les variables strDbFile et StrDbFileOld par les chemins
et noms de mon fichier, j'ai alors un message d'erreur d'exécution 3356
qui me dit que j'ai essayé d'ouvrir une base de données déjà ouverte en
mode exclusif etc...
Donc c'est assez simple, ce sont au niveau des valeurs de tes variables
que cela coince, donne les valeurs de tes 2 variables pour voir si tu as
compris le principe.
Bonjour,
"Francis" <fhgc@wanad.padspam.fr> a écrit dans le message de
news:mn.3c557d8745b9703e.51093@wanad.padspam.fr...
Bonjour,
Je reviens sur une question déjà posée (15/03/08), et que je n'avais
pas réussi à résoudre. J'ai à nouveau tenté le coup d'appliquer la
méthode de Jessy
http://access.fr.free.fr/download.php?lng=fr&pg0
et ça ne marche toujours pas: la procédure bloque sur l'instruction:
DBEngine.CompactDataBase strDbFile, strDbFileOld
Par contre, avec l'exemple téléchargé db1.mdb, ça marche au poil.
Ok.
Si je remplace les variables strDbFile et StrDbFileOld par les chemins
et noms de mon fichier, j'ai alors un message d'erreur d'exécution 3356
qui me dit que j'ai essayé d'ouvrir une base de données déjà ouverte en
mode exclusif etc...
Donc c'est assez simple, ce sont au niveau des valeurs de tes variables
que cela coince, donne les valeurs de tes 2 variables pour voir si tu as
compris le principe.
Bonjour,
"Francis" a écrit dans le message de
news:Bonjour,
Je reviens sur une question déjà posée (15/03/08), et que je n'avais
pas réussi à résoudre. J'ai à nouveau tenté le coup d'appliquer la
méthode de Jessy
http://access.fr.free.fr/download.php?lng=fr&pg0
et ça ne marche toujours pas: la procédure bloque sur l'instruction:
DBEngine.CompactDataBase strDbFile, strDbFileOld
Par contre, avec l'exemple téléchargé db1.mdb, ça marche au poil.
Ok.Si je remplace les variables strDbFile et StrDbFileOld par les chemins
et noms de mon fichier, j'ai alors un message d'erreur d'exécution 3356
qui me dit que j'ai essayé d'ouvrir une base de données déjà ouverte en
mode exclusif etc...
Donc c'est assez simple, ce sont au niveau des valeurs de tes variables
que cela coince, donne les valeurs de tes 2 variables pour voir si tu as
compris le principe.
Bonjour,
"Francis" a écrit dans le message de
news:Bonjour,
Je reviens sur une question déjà posée (15/03/08), et que je n'avais
pas réussi à résoudre. J'ai à nouveau tenté le coup d'appliquer la
méthode de Jessy
http://access.fr.free.fr/download.php?lng=fr&pg0
et ça ne marche toujours pas: la procédure bloque sur l'instruction:
DBEngine.CompactDataBase strDbFile, strDbFileOld
Par contre, avec l'exemple téléchargé db1.mdb, ça marche au poil.
Ok.Si je remplace les variables strDbFile et StrDbFileOld par les chemins
et noms de mon fichier, j'ai alors un message d'erreur d'exécution 3356
qui me dit que j'ai essayé d'ouvrir une base de données déjà ouverte en
mode exclusif etc...
Donc c'est assez simple, ce sont au niveau des valeurs de tes variables
que cela coince, donne les valeurs de tes 2 variables pour voir si tu as
compris le principe.
Bonjour,
"Francis" <fhgc@wanad.padspam.fr> a écrit dans le message de
news:mn.3c557d8745b9703e.51093@wanad.padspam.fr...
Bonjour,
Je reviens sur une question déjà posée (15/03/08), et que je n'avais
pas réussi à résoudre. J'ai à nouveau tenté le coup d'appliquer la
méthode de Jessy
http://access.fr.free.fr/download.php?lng=fr&pg0
et ça ne marche toujours pas: la procédure bloque sur l'instruction:
DBEngine.CompactDataBase strDbFile, strDbFileOld
Par contre, avec l'exemple téléchargé db1.mdb, ça marche au poil.
Ok.
Si je remplace les variables strDbFile et StrDbFileOld par les chemins
et noms de mon fichier, j'ai alors un message d'erreur d'exécution 3356
qui me dit que j'ai essayé d'ouvrir une base de données déjà ouverte en
mode exclusif etc...
Donc c'est assez simple, ce sont au niveau des valeurs de tes variables
que cela coince, donne les valeurs de tes 2 variables pour voir si tu as
compris le principe.
Bonjour,
"Francis" a écrit dans le message de
news:Bonjour,
Je reviens sur une question déjà posée (15/03/08), et que je n'avais
pas réussi à résoudre. J'ai à nouveau tenté le coup d'appliquer la
méthode de Jessy
http://access.fr.free.fr/download.php?lng=fr&pg0
et ça ne marche toujours pas: la procédure bloque sur l'instruction:
DBEngine.CompactDataBase strDbFile, strDbFileOld
Par contre, avec l'exemple téléchargé db1.mdb, ça marche au poil.
Ok.Si je remplace les variables strDbFile et StrDbFileOld par les chemins
et noms de mon fichier, j'ai alors un message d'erreur d'exécution 3356
qui me dit que j'ai essayé d'ouvrir une base de données déjà ouverte en
mode exclusif etc...
Donc c'est assez simple, ce sont au niveau des valeurs de tes variables
que cela coince, donne les valeurs de tes 2 variables pour voir si tu as
compris le principe.
Salut,
"Francis"
[...]La base ANCRE xx.mdb.tmp est bien créée, mais elle est vide. Par
ailleurs, le fichier ANCRE xx.ldb existe.
et si tu remplace le nom "Ancre xx.mdb" par "Ancre_xx.mdb" ?
Salut,
"Francis"
[...]
La base ANCRE xx.mdb.tmp est bien créée, mais elle est vide. Par
ailleurs, le fichier ANCRE xx.ldb existe.
et si tu remplace le nom "Ancre xx.mdb" par "Ancre_xx.mdb" ?
Salut,
"Francis"
[...]La base ANCRE xx.mdb.tmp est bien créée, mais elle est vide. Par
ailleurs, le fichier ANCRE xx.ldb existe.
et si tu remplace le nom "Ancre xx.mdb" par "Ancre_xx.mdb" ?
Michel_D a couché sur son écran :
> Bonjour,
>
> "Francis" a écrit dans le message de
> news:
>> Bonjour,
>>
>> Je reviens sur une question déjà posée (15/03/08), et que je n'avais
>> pas réussi à résoudre. J'ai à nouveau tenté le coup d'appliquer la
>> méthode de Jessy
>> http://access.fr.free.fr/download.php?lng=fr&pg0
>> et ça ne marche toujours pas: la procédure bloque sur l'instruction:
>> DBEngine.CompactDataBase strDbFile, strDbFileOld
>> Par contre, avec l'exemple téléchargé db1.mdb, ça marche au poil.
>
> Ok.
>
>> Si je remplace les variables strDbFile et StrDbFileOld par les chemins
>> et noms de mon fichier, j'ai alors un message d'erreur d'exécution 3356
>> qui me dit que j'ai essayé d'ouvrir une base de données déjà ouverte en
>> mode exclusif etc...
>
> Donc c'est assez simple, ce sont au niveau des valeurs de tes variables
> que cela coince, donne les valeurs de tes 2 variables pour voir si tu as
> compris le principe.
Salut Michel,
Sympa de te pencher sur mon pb.
Voici le code récupéré de Jessy et qui me pose pb
========== > Option Compare Database
Option Explicit
Function CompactEXE() As Boolean
Dim strDbFile As String
strDbFile = CurrentDb.Name & ".tmp"
If Dir(strDbFile) <> "" Then Kill strDbFile
DBEngine.CreateDatabase strDbFile, dbLangGeneral
DoCmd.CopyObject strDbFile, , acMacro, "mcrCompact"
DoCmd.CopyObject strDbFile, , acModule, "modCompactCurrentDb"
Shell "MSACCESS.EXE """ & strDbFile & """ /x mcrCompact", _
vbMinimizedNoFocus
End Function
Public Function Compact()
Dim acApp As Access.Application
Dim strDbPath As String, strDbFile As String
Dim strDbFileOld As String
strDbPath = CurrentDb.Name
strDbFile = Left(strDbPath, Len(strDbPath) - 4)
strDbFileOld = Left(strDbFile, Len(strDbFile) - 4) & ".old"
Set acApp = GetObject(strDbFile)
With acApp
.SysCmd acSysCmdSetStatus, "Compactage en cours..."
.CloseCurrentDatabase
DBEngine.CompactDatabase strDbFile, strDbFileOld
' DBEngine.CompactDatabase "E:Mes DocumentsANCRE 2008ANCRE
060708.mdb", "E:Mes DocumentsANCRE 2008ANCRE 060708.mdb.old"
' Ça, c'est mon instruction pour bipasser celle d'origine.
Kill strDbFile
Name strDbFileOld As strDbFile
.OpenCurrentDatabase strDbFile
.SysCmd acSysCmdClearStatus
End With
Application.Quit
End Function
========== > En plus de ça, on charge la maco mcrCompact, dont la seule instruction
est de lancer Compact()
Depuis hier soir, j'ai tenté beaucoup de choses, mais en vain. A un
moment, on m'a dit que la fonction GetObject n'était pas définie.
Alors, j'ai créé la PublicFunction GetObject(), et, depuis, je récupère
dans les deux cas (instr d'origine ou la mienne)le même message qui me
dit que j'ai "essayé d'ouvrir une base de données déjà ouverte en mode
exclusif par l'utilisateur 'Admin' sur la machine 'FC'. Recommencez
lorsque la base de données sera disponible".
Comprenne qui pourra... Moi, ça me passe au dessus de la tête.
J'espère que ça t'inspirera davantage que moi :-)
Michel_D a couché sur son écran :
> Bonjour,
>
> "Francis" <fhgc@wanad.padspam.fr> a écrit dans le message de
> news:mn.3c557d8745b9703e.51093@wanad.padspam.fr...
>> Bonjour,
>>
>> Je reviens sur une question déjà posée (15/03/08), et que je n'avais
>> pas réussi à résoudre. J'ai à nouveau tenté le coup d'appliquer la
>> méthode de Jessy
>> http://access.fr.free.fr/download.php?lng=fr&pg0
>> et ça ne marche toujours pas: la procédure bloque sur l'instruction:
>> DBEngine.CompactDataBase strDbFile, strDbFileOld
>> Par contre, avec l'exemple téléchargé db1.mdb, ça marche au poil.
>
> Ok.
>
>> Si je remplace les variables strDbFile et StrDbFileOld par les chemins
>> et noms de mon fichier, j'ai alors un message d'erreur d'exécution 3356
>> qui me dit que j'ai essayé d'ouvrir une base de données déjà ouverte en
>> mode exclusif etc...
>
> Donc c'est assez simple, ce sont au niveau des valeurs de tes variables
> que cela coince, donne les valeurs de tes 2 variables pour voir si tu as
> compris le principe.
Salut Michel,
Sympa de te pencher sur mon pb.
Voici le code récupéré de Jessy et qui me pose pb
========== > Option Compare Database
Option Explicit
Function CompactEXE() As Boolean
Dim strDbFile As String
strDbFile = CurrentDb.Name & ".tmp"
If Dir(strDbFile) <> "" Then Kill strDbFile
DBEngine.CreateDatabase strDbFile, dbLangGeneral
DoCmd.CopyObject strDbFile, , acMacro, "mcrCompact"
DoCmd.CopyObject strDbFile, , acModule, "modCompactCurrentDb"
Shell "MSACCESS.EXE """ & strDbFile & """ /x mcrCompact", _
vbMinimizedNoFocus
End Function
Public Function Compact()
Dim acApp As Access.Application
Dim strDbPath As String, strDbFile As String
Dim strDbFileOld As String
strDbPath = CurrentDb.Name
strDbFile = Left(strDbPath, Len(strDbPath) - 4)
strDbFileOld = Left(strDbFile, Len(strDbFile) - 4) & ".old"
Set acApp = GetObject(strDbFile)
With acApp
.SysCmd acSysCmdSetStatus, "Compactage en cours..."
.CloseCurrentDatabase
DBEngine.CompactDatabase strDbFile, strDbFileOld
' DBEngine.CompactDatabase "E:Mes DocumentsANCRE 2008ANCRE
060708.mdb", "E:Mes DocumentsANCRE 2008ANCRE 060708.mdb.old"
' Ça, c'est mon instruction pour bipasser celle d'origine.
Kill strDbFile
Name strDbFileOld As strDbFile
.OpenCurrentDatabase strDbFile
.SysCmd acSysCmdClearStatus
End With
Application.Quit
End Function
========== > En plus de ça, on charge la maco mcrCompact, dont la seule instruction
est de lancer Compact()
Depuis hier soir, j'ai tenté beaucoup de choses, mais en vain. A un
moment, on m'a dit que la fonction GetObject n'était pas définie.
Alors, j'ai créé la PublicFunction GetObject(), et, depuis, je récupère
dans les deux cas (instr d'origine ou la mienne)le même message qui me
dit que j'ai "essayé d'ouvrir une base de données déjà ouverte en mode
exclusif par l'utilisateur 'Admin' sur la machine 'FC'. Recommencez
lorsque la base de données sera disponible".
Comprenne qui pourra... Moi, ça me passe au dessus de la tête.
J'espère que ça t'inspirera davantage que moi :-)
Michel_D a couché sur son écran :
> Bonjour,
>
> "Francis" a écrit dans le message de
> news:
>> Bonjour,
>>
>> Je reviens sur une question déjà posée (15/03/08), et que je n'avais
>> pas réussi à résoudre. J'ai à nouveau tenté le coup d'appliquer la
>> méthode de Jessy
>> http://access.fr.free.fr/download.php?lng=fr&pg0
>> et ça ne marche toujours pas: la procédure bloque sur l'instruction:
>> DBEngine.CompactDataBase strDbFile, strDbFileOld
>> Par contre, avec l'exemple téléchargé db1.mdb, ça marche au poil.
>
> Ok.
>
>> Si je remplace les variables strDbFile et StrDbFileOld par les chemins
>> et noms de mon fichier, j'ai alors un message d'erreur d'exécution 3356
>> qui me dit que j'ai essayé d'ouvrir une base de données déjà ouverte en
>> mode exclusif etc...
>
> Donc c'est assez simple, ce sont au niveau des valeurs de tes variables
> que cela coince, donne les valeurs de tes 2 variables pour voir si tu as
> compris le principe.
Salut Michel,
Sympa de te pencher sur mon pb.
Voici le code récupéré de Jessy et qui me pose pb
========== > Option Compare Database
Option Explicit
Function CompactEXE() As Boolean
Dim strDbFile As String
strDbFile = CurrentDb.Name & ".tmp"
If Dir(strDbFile) <> "" Then Kill strDbFile
DBEngine.CreateDatabase strDbFile, dbLangGeneral
DoCmd.CopyObject strDbFile, , acMacro, "mcrCompact"
DoCmd.CopyObject strDbFile, , acModule, "modCompactCurrentDb"
Shell "MSACCESS.EXE """ & strDbFile & """ /x mcrCompact", _
vbMinimizedNoFocus
End Function
Public Function Compact()
Dim acApp As Access.Application
Dim strDbPath As String, strDbFile As String
Dim strDbFileOld As String
strDbPath = CurrentDb.Name
strDbFile = Left(strDbPath, Len(strDbPath) - 4)
strDbFileOld = Left(strDbFile, Len(strDbFile) - 4) & ".old"
Set acApp = GetObject(strDbFile)
With acApp
.SysCmd acSysCmdSetStatus, "Compactage en cours..."
.CloseCurrentDatabase
DBEngine.CompactDatabase strDbFile, strDbFileOld
' DBEngine.CompactDatabase "E:Mes DocumentsANCRE 2008ANCRE
060708.mdb", "E:Mes DocumentsANCRE 2008ANCRE 060708.mdb.old"
' Ça, c'est mon instruction pour bipasser celle d'origine.
Kill strDbFile
Name strDbFileOld As strDbFile
.OpenCurrentDatabase strDbFile
.SysCmd acSysCmdClearStatus
End With
Application.Quit
End Function
========== > En plus de ça, on charge la maco mcrCompact, dont la seule instruction
est de lancer Compact()
Depuis hier soir, j'ai tenté beaucoup de choses, mais en vain. A un
moment, on m'a dit que la fonction GetObject n'était pas définie.
Alors, j'ai créé la PublicFunction GetObject(), et, depuis, je récupère
dans les deux cas (instr d'origine ou la mienne)le même message qui me
dit que j'ai "essayé d'ouvrir une base de données déjà ouverte en mode
exclusif par l'utilisateur 'Admin' sur la machine 'FC'. Recommencez
lorsque la base de données sera disponible".
Comprenne qui pourra... Moi, ça me passe au dessus de la tête.
J'espère que ça t'inspirera davantage que moi :-)
re,
"Francis" a écrit dans le message de
news:Michel_D a couché sur son écran :Bonjour,
"Francis" a écrit dans le message de
news:Bonjour,
Je reviens sur une question déjà posée (15/03/08), et que je n'avais
pas réussi à résoudre. J'ai à nouveau tenté le coup d'appliquer la
méthode de Jessy
http://access.fr.free.fr/download.php?lng=fr&pg0
et ça ne marche toujours pas: la procédure bloque sur l'instruction:
DBEngine.CompactDataBase strDbFile, strDbFileOld
Par contre, avec l'exemple téléchargé db1.mdb, ça marche au poil.
Ok.Si je remplace les variables strDbFile et StrDbFileOld par les chemins
et noms de mon fichier, j'ai alors un message d'erreur d'exécution 3356
qui me dit que j'ai essayé d'ouvrir une base de données déjà ouverte en
mode exclusif etc...
Donc c'est assez simple, ce sont au niveau des valeurs de tes variables
que cela coince, donne les valeurs de tes 2 variables pour voir si tu as
compris le principe.
Salut Michel,
Sympa de te pencher sur mon pb.
Voici le code récupéré de Jessy et qui me pose pb
========== >> Option Compare Database
Option Explicit
Function CompactEXE() As Boolean
Dim strDbFile As String
strDbFile = CurrentDb.Name & ".tmp"
If Dir(strDbFile) <> "" Then Kill strDbFile
DBEngine.CreateDatabase strDbFile, dbLangGeneral
DoCmd.CopyObject strDbFile, , acMacro, "mcrCompact"
DoCmd.CopyObject strDbFile, , acModule, "modCompactCurrentDb"
Shell "MSACCESS.EXE """ & strDbFile & """ /x mcrCompact", _
vbMinimizedNoFocus
End Function
Public Function Compact()
Dim acApp As Access.Application
Dim strDbPath As String, strDbFile As String
Dim strDbFileOld As String
strDbPath = CurrentDb.Name
strDbFile = Left(strDbPath, Len(strDbPath) - 4)
strDbFileOld = Left(strDbFile, Len(strDbFile) - 4) & ".old"
Set acApp = GetObject(strDbFile)
With acApp
.SysCmd acSysCmdSetStatus, "Compactage en cours..."
.CloseCurrentDatabase
DBEngine.CompactDatabase strDbFile, strDbFileOld
' DBEngine.CompactDatabase "E:Mes DocumentsANCRE 2008ANCRE
060708.mdb", "E:Mes DocumentsANCRE 2008ANCRE 060708.mdb.old"
' Ça, c'est mon instruction pour bipasser celle d'origine.
Kill strDbFile
Name strDbFileOld As strDbFile
.OpenCurrentDatabase strDbFile
.SysCmd acSysCmdClearStatus
End With
Application.Quit
End Function
========== >> En plus de ça, on charge la maco mcrCompact, dont la seule instruction
est de lancer Compact()
Depuis hier soir, j'ai tenté beaucoup de choses, mais en vain. A un
moment, on m'a dit que la fonction GetObject n'était pas définie.
Alors, j'ai créé la PublicFunction GetObject(), et, depuis, je récupère
dans les deux cas (instr d'origine ou la mienne)le même message qui me
dit que j'ai "essayé d'ouvrir une base de données déjà ouverte en mode
exclusif par l'utilisateur 'Admin' sur la machine 'FC'. Recommencez
lorsque la base de données sera disponible".
Comprenne qui pourra... Moi, ça me passe au dessus de la tête.
J'espère que ça t'inspirera davantage que moi :-)
Avant toute chose un extrait issu de l'aide :
DBEngine.CompactDatabase olddb, newdb, locale, options, password
...
Vous devez fermer la base de données olddb pour la compacter.
En environnement multi-utilisateur, aucun utilisateur ne peut
ouvrir la base de données olddb durant son compactage.
Si la base de données olddb n'est pas fermée ou n'est pas
utilisable en mode exclusif, une erreur se produit.
PS:Je viens de tester sur une base il n'y a aucun problème dés l'instant
que la base que tu veux compacter ne CONTIENT pas le code destiné
au compactage sinon à voir la remarque de Pierre.
re,
"Francis" <fhgc@wanad.padspam.fr> a écrit dans le message de
news:mn.42747d87f282cca6.51093@wanad.padspam.fr...
Michel_D a couché sur son écran :
Bonjour,
"Francis" <fhgc@wanad.padspam.fr> a écrit dans le message de
news:mn.3c557d8745b9703e.51093@wanad.padspam.fr...
Bonjour,
Je reviens sur une question déjà posée (15/03/08), et que je n'avais
pas réussi à résoudre. J'ai à nouveau tenté le coup d'appliquer la
méthode de Jessy
http://access.fr.free.fr/download.php?lng=fr&pg0
et ça ne marche toujours pas: la procédure bloque sur l'instruction:
DBEngine.CompactDataBase strDbFile, strDbFileOld
Par contre, avec l'exemple téléchargé db1.mdb, ça marche au poil.
Ok.
Si je remplace les variables strDbFile et StrDbFileOld par les chemins
et noms de mon fichier, j'ai alors un message d'erreur d'exécution 3356
qui me dit que j'ai essayé d'ouvrir une base de données déjà ouverte en
mode exclusif etc...
Donc c'est assez simple, ce sont au niveau des valeurs de tes variables
que cela coince, donne les valeurs de tes 2 variables pour voir si tu as
compris le principe.
Salut Michel,
Sympa de te pencher sur mon pb.
Voici le code récupéré de Jessy et qui me pose pb
========== >> Option Compare Database
Option Explicit
Function CompactEXE() As Boolean
Dim strDbFile As String
strDbFile = CurrentDb.Name & ".tmp"
If Dir(strDbFile) <> "" Then Kill strDbFile
DBEngine.CreateDatabase strDbFile, dbLangGeneral
DoCmd.CopyObject strDbFile, , acMacro, "mcrCompact"
DoCmd.CopyObject strDbFile, , acModule, "modCompactCurrentDb"
Shell "MSACCESS.EXE """ & strDbFile & """ /x mcrCompact", _
vbMinimizedNoFocus
End Function
Public Function Compact()
Dim acApp As Access.Application
Dim strDbPath As String, strDbFile As String
Dim strDbFileOld As String
strDbPath = CurrentDb.Name
strDbFile = Left(strDbPath, Len(strDbPath) - 4)
strDbFileOld = Left(strDbFile, Len(strDbFile) - 4) & ".old"
Set acApp = GetObject(strDbFile)
With acApp
.SysCmd acSysCmdSetStatus, "Compactage en cours..."
.CloseCurrentDatabase
DBEngine.CompactDatabase strDbFile, strDbFileOld
' DBEngine.CompactDatabase "E:Mes DocumentsANCRE 2008ANCRE
060708.mdb", "E:Mes DocumentsANCRE 2008ANCRE 060708.mdb.old"
' Ça, c'est mon instruction pour bipasser celle d'origine.
Kill strDbFile
Name strDbFileOld As strDbFile
.OpenCurrentDatabase strDbFile
.SysCmd acSysCmdClearStatus
End With
Application.Quit
End Function
========== >> En plus de ça, on charge la maco mcrCompact, dont la seule instruction
est de lancer Compact()
Depuis hier soir, j'ai tenté beaucoup de choses, mais en vain. A un
moment, on m'a dit que la fonction GetObject n'était pas définie.
Alors, j'ai créé la PublicFunction GetObject(), et, depuis, je récupère
dans les deux cas (instr d'origine ou la mienne)le même message qui me
dit que j'ai "essayé d'ouvrir une base de données déjà ouverte en mode
exclusif par l'utilisateur 'Admin' sur la machine 'FC'. Recommencez
lorsque la base de données sera disponible".
Comprenne qui pourra... Moi, ça me passe au dessus de la tête.
J'espère que ça t'inspirera davantage que moi :-)
Avant toute chose un extrait issu de l'aide :
DBEngine.CompactDatabase olddb, newdb, locale, options, password
...
Vous devez fermer la base de données olddb pour la compacter.
En environnement multi-utilisateur, aucun utilisateur ne peut
ouvrir la base de données olddb durant son compactage.
Si la base de données olddb n'est pas fermée ou n'est pas
utilisable en mode exclusif, une erreur se produit.
PS:Je viens de tester sur une base il n'y a aucun problème dés l'instant
que la base que tu veux compacter ne CONTIENT pas le code destiné
au compactage sinon à voir la remarque de Pierre.
re,
"Francis" a écrit dans le message de
news:Michel_D a couché sur son écran :Bonjour,
"Francis" a écrit dans le message de
news:Bonjour,
Je reviens sur une question déjà posée (15/03/08), et que je n'avais
pas réussi à résoudre. J'ai à nouveau tenté le coup d'appliquer la
méthode de Jessy
http://access.fr.free.fr/download.php?lng=fr&pg0
et ça ne marche toujours pas: la procédure bloque sur l'instruction:
DBEngine.CompactDataBase strDbFile, strDbFileOld
Par contre, avec l'exemple téléchargé db1.mdb, ça marche au poil.
Ok.Si je remplace les variables strDbFile et StrDbFileOld par les chemins
et noms de mon fichier, j'ai alors un message d'erreur d'exécution 3356
qui me dit que j'ai essayé d'ouvrir une base de données déjà ouverte en
mode exclusif etc...
Donc c'est assez simple, ce sont au niveau des valeurs de tes variables
que cela coince, donne les valeurs de tes 2 variables pour voir si tu as
compris le principe.
Salut Michel,
Sympa de te pencher sur mon pb.
Voici le code récupéré de Jessy et qui me pose pb
========== >> Option Compare Database
Option Explicit
Function CompactEXE() As Boolean
Dim strDbFile As String
strDbFile = CurrentDb.Name & ".tmp"
If Dir(strDbFile) <> "" Then Kill strDbFile
DBEngine.CreateDatabase strDbFile, dbLangGeneral
DoCmd.CopyObject strDbFile, , acMacro, "mcrCompact"
DoCmd.CopyObject strDbFile, , acModule, "modCompactCurrentDb"
Shell "MSACCESS.EXE """ & strDbFile & """ /x mcrCompact", _
vbMinimizedNoFocus
End Function
Public Function Compact()
Dim acApp As Access.Application
Dim strDbPath As String, strDbFile As String
Dim strDbFileOld As String
strDbPath = CurrentDb.Name
strDbFile = Left(strDbPath, Len(strDbPath) - 4)
strDbFileOld = Left(strDbFile, Len(strDbFile) - 4) & ".old"
Set acApp = GetObject(strDbFile)
With acApp
.SysCmd acSysCmdSetStatus, "Compactage en cours..."
.CloseCurrentDatabase
DBEngine.CompactDatabase strDbFile, strDbFileOld
' DBEngine.CompactDatabase "E:Mes DocumentsANCRE 2008ANCRE
060708.mdb", "E:Mes DocumentsANCRE 2008ANCRE 060708.mdb.old"
' Ça, c'est mon instruction pour bipasser celle d'origine.
Kill strDbFile
Name strDbFileOld As strDbFile
.OpenCurrentDatabase strDbFile
.SysCmd acSysCmdClearStatus
End With
Application.Quit
End Function
========== >> En plus de ça, on charge la maco mcrCompact, dont la seule instruction
est de lancer Compact()
Depuis hier soir, j'ai tenté beaucoup de choses, mais en vain. A un
moment, on m'a dit que la fonction GetObject n'était pas définie.
Alors, j'ai créé la PublicFunction GetObject(), et, depuis, je récupère
dans les deux cas (instr d'origine ou la mienne)le même message qui me
dit que j'ai "essayé d'ouvrir une base de données déjà ouverte en mode
exclusif par l'utilisateur 'Admin' sur la machine 'FC'. Recommencez
lorsque la base de données sera disponible".
Comprenne qui pourra... Moi, ça me passe au dessus de la tête.
J'espère que ça t'inspirera davantage que moi :-)
Avant toute chose un extrait issu de l'aide :
DBEngine.CompactDatabase olddb, newdb, locale, options, password
...
Vous devez fermer la base de données olddb pour la compacter.
En environnement multi-utilisateur, aucun utilisateur ne peut
ouvrir la base de données olddb durant son compactage.
Si la base de données olddb n'est pas fermée ou n'est pas
utilisable en mode exclusif, une erreur se produit.
PS:Je viens de tester sur une base il n'y a aucun problème dés l'instant
que la base que tu veux compacter ne CONTIENT pas le code destiné
au compactage sinon à voir la remarque de Pierre.
Michel_D a couché sur son écran :
> re,
>
> "Francis" a écrit dans le message de
> news:
>> Michel_D a couché sur son écran :
>>> Bonjour,
>>>
>>> "Francis" a écrit dans le message de
>>> news:
>>>> Bonjour,
>>>>
>>>> Je reviens sur une question déjà posée (15/03/08), et que je n'avais
>>>> pas réussi à résoudre. J'ai à nouveau tenté le coup d'appliquer la
>>>> méthode de Jessy
>>>> http://access.fr.free.fr/download.php?lng=fr&pg0
>>>> et ça ne marche toujours pas: la procédure bloque sur l'instruction:
>>>> DBEngine.CompactDataBase strDbFile, strDbFileOld
>>>> Par contre, avec l'exemple téléchargé db1.mdb, ça marche au poil.
>>>
>>> Ok.
>>>
>>>> Si je remplace les variables strDbFile et StrDbFileOld par les chemins
>>>> et noms de mon fichier, j'ai alors un message d'erreur d'exécution 3356
>>>> qui me dit que j'ai essayé d'ouvrir une base de données déjà ouverte en
>>>> mode exclusif etc...
>>>
>>> Donc c'est assez simple, ce sont au niveau des valeurs de tes variables
>>> que cela coince, donne les valeurs de tes 2 variables pour voir si tu as
>>> compris le principe.
>>
>> Salut Michel,
>>
>> Sympa de te pencher sur mon pb.
>>
>> Voici le code récupéré de Jessy et qui me pose pb
>> ========== > >> Option Compare Database
>> Option Explicit
>>
>> Function CompactEXE() As Boolean
>>
>> Dim strDbFile As String
>>
>> strDbFile = CurrentDb.Name & ".tmp"
>>
>> If Dir(strDbFile) <> "" Then Kill strDbFile
>>
>> DBEngine.CreateDatabase strDbFile, dbLangGeneral
>>
>> DoCmd.CopyObject strDbFile, , acMacro, "mcrCompact"
>> DoCmd.CopyObject strDbFile, , acModule, "modCompactCurrentDb"
>>
>> Shell "MSACCESS.EXE """ & strDbFile & """ /x mcrCompact", _
>> vbMinimizedNoFocus
>>
>> End Function
>>
>> Public Function Compact()
>> Dim acApp As Access.Application
>> Dim strDbPath As String, strDbFile As String
>> Dim strDbFileOld As String
>>
>> strDbPath = CurrentDb.Name
>> strDbFile = Left(strDbPath, Len(strDbPath) - 4)
>> strDbFileOld = Left(strDbFile, Len(strDbFile) - 4) & ".old"
>>
>> Set acApp = GetObject(strDbFile)
>>
>> With acApp
>> .SysCmd acSysCmdSetStatus, "Compactage en cours..."
>> .CloseCurrentDatabase
>> DBEngine.CompactDatabase strDbFile, strDbFileOld
>> ' DBEngine.CompactDatabase "E:Mes DocumentsANCRE 2008ANCRE
>> 060708.mdb", "E:Mes DocumentsANCRE 2008ANCRE 060708.mdb.old"
>> ' Ça, c'est mon instruction pour bipasser celle d'origine.
>> Kill strDbFile
>> Name strDbFileOld As strDbFile
>> .OpenCurrentDatabase strDbFile
>> .SysCmd acSysCmdClearStatus
>> End With
>> Application.Quit
>> End Function
>> ========== > >> En plus de ça, on charge la maco mcrCompact, dont la seule instruction
>> est de lancer Compact()
>> Depuis hier soir, j'ai tenté beaucoup de choses, mais en vain. A un
>> moment, on m'a dit que la fonction GetObject n'était pas définie.
>> Alors, j'ai créé la PublicFunction GetObject(), et, depuis, je récupère
>> dans les deux cas (instr d'origine ou la mienne)le même message qui me
>> dit que j'ai "essayé d'ouvrir une base de données déjà ouverte en mode
>> exclusif par l'utilisateur 'Admin' sur la machine 'FC'. Recommencez
>> lorsque la base de données sera disponible".
>>
>> Comprenne qui pourra... Moi, ça me passe au dessus de la tête.
>> J'espère que ça t'inspirera davantage que moi :-)
>
Bonjour Michel,
> Avant toute chose un extrait issu de l'aide :
>
> DBEngine.CompactDatabase olddb, newdb, locale, options, password
> ...
> Vous devez fermer la base de données olddb pour la compacter.
Je suppose que c'est l'instruction
If Dir(strDbFile) <> "" Then Kill strDbFile
qui s'en charge
> En environnement multi-utilisateur, aucun utilisateur ne peut
> ouvrir la base de données olddb durant son compactage.
> Si la base de données olddb n'est pas fermée ou n'est pas
> utilisable en mode exclusif, une erreur se produit.
Je suis seul utilisateur de la base, et le résultat est le même que je
mette le mode exclusif ou partagé dans les options/avancé
>
> PS:Je viens de tester sur une base il n'y a aucun problème dés l'instant
> que la base que tu veux compacter ne CONTIENT pas le code destiné
> au compactage sinon à voir la remarque de Pierre.
Je pense, moi aussi, que la cause tourne autour de qquechose de ce
genre.
Mais si j'ai bien tout compris, le code développé par Jessy tient
compte de cette contrainte pour permettre précisément de
compacter/sauvegarder la base pendant qu'elle est ouverte.
Comme il dit de faire, j'ai importé la macro "mcrCompact" et le module
"modCompactCurrentDb" dans ma base et j'ai créé un bouton pour lancer
la la fonction "CompactEXE()" pour effectuer le compactage.
Ou bien, alors, je suis complètement à côté de la plaque... :-(
Là, je dois m'absenter pendant qques heures, mais je sens que ce sera
mon os à ronger pour la soirée.
Et merci d'avance pour toutes vos propositions à venir
Michel_D a couché sur son écran :
> re,
>
> "Francis" <fhgc@wanad.padspam.fr> a écrit dans le message de
> news:mn.42747d87f282cca6.51093@wanad.padspam.fr...
>> Michel_D a couché sur son écran :
>>> Bonjour,
>>>
>>> "Francis" <fhgc@wanad.padspam.fr> a écrit dans le message de
>>> news:mn.3c557d8745b9703e.51093@wanad.padspam.fr...
>>>> Bonjour,
>>>>
>>>> Je reviens sur une question déjà posée (15/03/08), et que je n'avais
>>>> pas réussi à résoudre. J'ai à nouveau tenté le coup d'appliquer la
>>>> méthode de Jessy
>>>> http://access.fr.free.fr/download.php?lng=fr&pg0
>>>> et ça ne marche toujours pas: la procédure bloque sur l'instruction:
>>>> DBEngine.CompactDataBase strDbFile, strDbFileOld
>>>> Par contre, avec l'exemple téléchargé db1.mdb, ça marche au poil.
>>>
>>> Ok.
>>>
>>>> Si je remplace les variables strDbFile et StrDbFileOld par les chemins
>>>> et noms de mon fichier, j'ai alors un message d'erreur d'exécution 3356
>>>> qui me dit que j'ai essayé d'ouvrir une base de données déjà ouverte en
>>>> mode exclusif etc...
>>>
>>> Donc c'est assez simple, ce sont au niveau des valeurs de tes variables
>>> que cela coince, donne les valeurs de tes 2 variables pour voir si tu as
>>> compris le principe.
>>
>> Salut Michel,
>>
>> Sympa de te pencher sur mon pb.
>>
>> Voici le code récupéré de Jessy et qui me pose pb
>> ========== > >> Option Compare Database
>> Option Explicit
>>
>> Function CompactEXE() As Boolean
>>
>> Dim strDbFile As String
>>
>> strDbFile = CurrentDb.Name & ".tmp"
>>
>> If Dir(strDbFile) <> "" Then Kill strDbFile
>>
>> DBEngine.CreateDatabase strDbFile, dbLangGeneral
>>
>> DoCmd.CopyObject strDbFile, , acMacro, "mcrCompact"
>> DoCmd.CopyObject strDbFile, , acModule, "modCompactCurrentDb"
>>
>> Shell "MSACCESS.EXE """ & strDbFile & """ /x mcrCompact", _
>> vbMinimizedNoFocus
>>
>> End Function
>>
>> Public Function Compact()
>> Dim acApp As Access.Application
>> Dim strDbPath As String, strDbFile As String
>> Dim strDbFileOld As String
>>
>> strDbPath = CurrentDb.Name
>> strDbFile = Left(strDbPath, Len(strDbPath) - 4)
>> strDbFileOld = Left(strDbFile, Len(strDbFile) - 4) & ".old"
>>
>> Set acApp = GetObject(strDbFile)
>>
>> With acApp
>> .SysCmd acSysCmdSetStatus, "Compactage en cours..."
>> .CloseCurrentDatabase
>> DBEngine.CompactDatabase strDbFile, strDbFileOld
>> ' DBEngine.CompactDatabase "E:Mes DocumentsANCRE 2008ANCRE
>> 060708.mdb", "E:Mes DocumentsANCRE 2008ANCRE 060708.mdb.old"
>> ' Ça, c'est mon instruction pour bipasser celle d'origine.
>> Kill strDbFile
>> Name strDbFileOld As strDbFile
>> .OpenCurrentDatabase strDbFile
>> .SysCmd acSysCmdClearStatus
>> End With
>> Application.Quit
>> End Function
>> ========== > >> En plus de ça, on charge la maco mcrCompact, dont la seule instruction
>> est de lancer Compact()
>> Depuis hier soir, j'ai tenté beaucoup de choses, mais en vain. A un
>> moment, on m'a dit que la fonction GetObject n'était pas définie.
>> Alors, j'ai créé la PublicFunction GetObject(), et, depuis, je récupère
>> dans les deux cas (instr d'origine ou la mienne)le même message qui me
>> dit que j'ai "essayé d'ouvrir une base de données déjà ouverte en mode
>> exclusif par l'utilisateur 'Admin' sur la machine 'FC'. Recommencez
>> lorsque la base de données sera disponible".
>>
>> Comprenne qui pourra... Moi, ça me passe au dessus de la tête.
>> J'espère que ça t'inspirera davantage que moi :-)
>
Bonjour Michel,
> Avant toute chose un extrait issu de l'aide :
>
> DBEngine.CompactDatabase olddb, newdb, locale, options, password
> ...
> Vous devez fermer la base de données olddb pour la compacter.
Je suppose que c'est l'instruction
If Dir(strDbFile) <> "" Then Kill strDbFile
qui s'en charge
> En environnement multi-utilisateur, aucun utilisateur ne peut
> ouvrir la base de données olddb durant son compactage.
> Si la base de données olddb n'est pas fermée ou n'est pas
> utilisable en mode exclusif, une erreur se produit.
Je suis seul utilisateur de la base, et le résultat est le même que je
mette le mode exclusif ou partagé dans les options/avancé
>
> PS:Je viens de tester sur une base il n'y a aucun problème dés l'instant
> que la base que tu veux compacter ne CONTIENT pas le code destiné
> au compactage sinon à voir la remarque de Pierre.
Je pense, moi aussi, que la cause tourne autour de qquechose de ce
genre.
Mais si j'ai bien tout compris, le code développé par Jessy tient
compte de cette contrainte pour permettre précisément de
compacter/sauvegarder la base pendant qu'elle est ouverte.
Comme il dit de faire, j'ai importé la macro "mcrCompact" et le module
"modCompactCurrentDb" dans ma base et j'ai créé un bouton pour lancer
la la fonction "CompactEXE()" pour effectuer le compactage.
Ou bien, alors, je suis complètement à côté de la plaque... :-(
Là, je dois m'absenter pendant qques heures, mais je sens que ce sera
mon os à ronger pour la soirée.
Et merci d'avance pour toutes vos propositions à venir
Michel_D a couché sur son écran :
> re,
>
> "Francis" a écrit dans le message de
> news:
>> Michel_D a couché sur son écran :
>>> Bonjour,
>>>
>>> "Francis" a écrit dans le message de
>>> news:
>>>> Bonjour,
>>>>
>>>> Je reviens sur une question déjà posée (15/03/08), et que je n'avais
>>>> pas réussi à résoudre. J'ai à nouveau tenté le coup d'appliquer la
>>>> méthode de Jessy
>>>> http://access.fr.free.fr/download.php?lng=fr&pg0
>>>> et ça ne marche toujours pas: la procédure bloque sur l'instruction:
>>>> DBEngine.CompactDataBase strDbFile, strDbFileOld
>>>> Par contre, avec l'exemple téléchargé db1.mdb, ça marche au poil.
>>>
>>> Ok.
>>>
>>>> Si je remplace les variables strDbFile et StrDbFileOld par les chemins
>>>> et noms de mon fichier, j'ai alors un message d'erreur d'exécution 3356
>>>> qui me dit que j'ai essayé d'ouvrir une base de données déjà ouverte en
>>>> mode exclusif etc...
>>>
>>> Donc c'est assez simple, ce sont au niveau des valeurs de tes variables
>>> que cela coince, donne les valeurs de tes 2 variables pour voir si tu as
>>> compris le principe.
>>
>> Salut Michel,
>>
>> Sympa de te pencher sur mon pb.
>>
>> Voici le code récupéré de Jessy et qui me pose pb
>> ========== > >> Option Compare Database
>> Option Explicit
>>
>> Function CompactEXE() As Boolean
>>
>> Dim strDbFile As String
>>
>> strDbFile = CurrentDb.Name & ".tmp"
>>
>> If Dir(strDbFile) <> "" Then Kill strDbFile
>>
>> DBEngine.CreateDatabase strDbFile, dbLangGeneral
>>
>> DoCmd.CopyObject strDbFile, , acMacro, "mcrCompact"
>> DoCmd.CopyObject strDbFile, , acModule, "modCompactCurrentDb"
>>
>> Shell "MSACCESS.EXE """ & strDbFile & """ /x mcrCompact", _
>> vbMinimizedNoFocus
>>
>> End Function
>>
>> Public Function Compact()
>> Dim acApp As Access.Application
>> Dim strDbPath As String, strDbFile As String
>> Dim strDbFileOld As String
>>
>> strDbPath = CurrentDb.Name
>> strDbFile = Left(strDbPath, Len(strDbPath) - 4)
>> strDbFileOld = Left(strDbFile, Len(strDbFile) - 4) & ".old"
>>
>> Set acApp = GetObject(strDbFile)
>>
>> With acApp
>> .SysCmd acSysCmdSetStatus, "Compactage en cours..."
>> .CloseCurrentDatabase
>> DBEngine.CompactDatabase strDbFile, strDbFileOld
>> ' DBEngine.CompactDatabase "E:Mes DocumentsANCRE 2008ANCRE
>> 060708.mdb", "E:Mes DocumentsANCRE 2008ANCRE 060708.mdb.old"
>> ' Ça, c'est mon instruction pour bipasser celle d'origine.
>> Kill strDbFile
>> Name strDbFileOld As strDbFile
>> .OpenCurrentDatabase strDbFile
>> .SysCmd acSysCmdClearStatus
>> End With
>> Application.Quit
>> End Function
>> ========== > >> En plus de ça, on charge la maco mcrCompact, dont la seule instruction
>> est de lancer Compact()
>> Depuis hier soir, j'ai tenté beaucoup de choses, mais en vain. A un
>> moment, on m'a dit que la fonction GetObject n'était pas définie.
>> Alors, j'ai créé la PublicFunction GetObject(), et, depuis, je récupère
>> dans les deux cas (instr d'origine ou la mienne)le même message qui me
>> dit que j'ai "essayé d'ouvrir une base de données déjà ouverte en mode
>> exclusif par l'utilisateur 'Admin' sur la machine 'FC'. Recommencez
>> lorsque la base de données sera disponible".
>>
>> Comprenne qui pourra... Moi, ça me passe au dessus de la tête.
>> J'espère que ça t'inspirera davantage que moi :-)
>
Bonjour Michel,
> Avant toute chose un extrait issu de l'aide :
>
> DBEngine.CompactDatabase olddb, newdb, locale, options, password
> ...
> Vous devez fermer la base de données olddb pour la compacter.
Je suppose que c'est l'instruction
If Dir(strDbFile) <> "" Then Kill strDbFile
qui s'en charge
> En environnement multi-utilisateur, aucun utilisateur ne peut
> ouvrir la base de données olddb durant son compactage.
> Si la base de données olddb n'est pas fermée ou n'est pas
> utilisable en mode exclusif, une erreur se produit.
Je suis seul utilisateur de la base, et le résultat est le même que je
mette le mode exclusif ou partagé dans les options/avancé
>
> PS:Je viens de tester sur une base il n'y a aucun problème dés l'instant
> que la base que tu veux compacter ne CONTIENT pas le code destiné
> au compactage sinon à voir la remarque de Pierre.
Je pense, moi aussi, que la cause tourne autour de qquechose de ce
genre.
Mais si j'ai bien tout compris, le code développé par Jessy tient
compte de cette contrainte pour permettre précisément de
compacter/sauvegarder la base pendant qu'elle est ouverte.
Comme il dit de faire, j'ai importé la macro "mcrCompact" et le module
"modCompactCurrentDb" dans ma base et j'ai créé un bouton pour lancer
la la fonction "CompactEXE()" pour effectuer le compactage.
Ou bien, alors, je suis complètement à côté de la plaque... :-(
Là, je dois m'absenter pendant qques heures, mais je sens que ce sera
mon os à ronger pour la soirée.
Et merci d'avance pour toutes vos propositions à venir