Merci pour ton aide Pierre,
J'ai importé la macro et le module, mais ça ne fonctionne pas. Quand
j'exécute compact(), ça bugue à : Set acApp = GetObject(strDbFile) -
Erreur d'exécution 432 : Nom du fichier ou de la classe introuvable lors
de
l'opération d'Automation.
Comme je suis un peu débutante, ça me parle chinois. Est-ce au niveau des
outils références qu'il faut que je modifie quelque chose.
Merci de m'aider à nouveau.
Meilleures salutations
Lena
"3stone" a écrit dans le message de news:
#$Bonjour Marie Lena,
LenaDans une procédure, je supprime des enregistrements pour en ajouter
d'autres. Comme il s'agit d'un nombre assez important
d'enregistrements,j'aimerais compacter la base de données après la suppression pour
pouvoirajouter les nouveaux enregistrements sur une base compactée. Mais je
ne
souhaite pas renommer la base. Je voudrais pouvoir le faire très
simplement,de la même manière qu'avec l'outils options compacter une base de
données,mais tout ça à l'intérieur de ma procédure VBA.
Vas regader ceci :
http://access.jessy.free.fr/htm/DownLoad/CompactDb.htm
--
A+
Pierre (3stone) Access MVP
--------------------------------------
Une pour tous, tous pour une ;-)
http://users.skynet.be/mpfa/
--------------------------------------
Merci pour ton aide Pierre,
J'ai importé la macro et le module, mais ça ne fonctionne pas. Quand
j'exécute compact(), ça bugue à : Set acApp = GetObject(strDbFile) -
Erreur d'exécution 432 : Nom du fichier ou de la classe introuvable lors
de
l'opération d'Automation.
Comme je suis un peu débutante, ça me parle chinois. Est-ce au niveau des
outils références qu'il faut que je modifie quelque chose.
Merci de m'aider à nouveau.
Meilleures salutations
Lena
"3stone" <3stone@skynet.be> a écrit dans le message de news:
#$RpghuRDHA.2128@TK2MSFTNGP12.phx.gbl...
Bonjour Marie Lena,
Lena <marie.loye@bluewin.ch>
Dans une procédure, je supprime des enregistrements pour en ajouter
d'autres. Comme il s'agit d'un nombre assez important
d'enregistrements,
j'aimerais compacter la base de données après la suppression pour
pouvoir
ajouter les nouveaux enregistrements sur une base compactée. Mais je
ne
souhaite pas renommer la base. Je voudrais pouvoir le faire très
simplement,
de la même manière qu'avec l'outils options compacter une base de
données,
mais tout ça à l'intérieur de ma procédure VBA.
Vas regader ceci :
http://access.jessy.free.fr/htm/DownLoad/CompactDb.htm
--
A+
Pierre (3stone) Access MVP
--------------------------------------
Une pour tous, tous pour une ;-)
http://users.skynet.be/mpfa/
--------------------------------------
Merci pour ton aide Pierre,
J'ai importé la macro et le module, mais ça ne fonctionne pas. Quand
j'exécute compact(), ça bugue à : Set acApp = GetObject(strDbFile) -
Erreur d'exécution 432 : Nom du fichier ou de la classe introuvable lors
de
l'opération d'Automation.
Comme je suis un peu débutante, ça me parle chinois. Est-ce au niveau des
outils références qu'il faut que je modifie quelque chose.
Merci de m'aider à nouveau.
Meilleures salutations
Lena
"3stone" a écrit dans le message de news:
#$Bonjour Marie Lena,
LenaDans une procédure, je supprime des enregistrements pour en ajouter
d'autres. Comme il s'agit d'un nombre assez important
d'enregistrements,j'aimerais compacter la base de données après la suppression pour
pouvoirajouter les nouveaux enregistrements sur une base compactée. Mais je
ne
souhaite pas renommer la base. Je voudrais pouvoir le faire très
simplement,de la même manière qu'avec l'outils options compacter une base de
données,mais tout ça à l'intérieur de ma procédure VBA.
Vas regader ceci :
http://access.jessy.free.fr/htm/DownLoad/CompactDb.htm
--
A+
Pierre (3stone) Access MVP
--------------------------------------
Une pour tous, tous pour une ;-)
http://users.skynet.be/mpfa/
--------------------------------------
Merci pour ton aide Pierre,
J'ai importé la macro et le module, mais ça ne fonctionne pas. Quand
j'exécute compact(), ça bugue à : Set acApp = GetObject(strDbFile) -
Erreur d'exécution 432 : Nom du fichier ou de la classe introuvable lors
de
l'opération d'Automation.
Comme je suis un peu débutante, ça me parle chinois. Est-ce au niveau des
outils références qu'il faut que je modifie quelque chose.
Merci de m'aider à nouveau.
Meilleures salutations
Lena
"3stone" a écrit dans le message de news:
#$Bonjour Marie Lena,
LenaDans une procédure, je supprime des enregistrements pour en ajouter
d'autres. Comme il s'agit d'un nombre assez important
d'enregistrements,j'aimerais compacter la base de données après la suppression pour
pouvoirajouter les nouveaux enregistrements sur une base compactée. Mais je
ne
souhaite pas renommer la base. Je voudrais pouvoir le faire très
simplement,de la même manière qu'avec l'outils options compacter une base de
données,mais tout ça à l'intérieur de ma procédure VBA.
Vas regader ceci :
http://access.jessy.free.fr/htm/DownLoad/CompactDb.htm
--
A+
Pierre (3stone) Access MVP
--------------------------------------
Une pour tous, tous pour une ;-)
http://users.skynet.be/mpfa/
--------------------------------------
Merci pour ton aide Pierre,
J'ai importé la macro et le module, mais ça ne fonctionne pas. Quand
j'exécute compact(), ça bugue à : Set acApp = GetObject(strDbFile) -
Erreur d'exécution 432 : Nom du fichier ou de la classe introuvable lors
de
l'opération d'Automation.
Comme je suis un peu débutante, ça me parle chinois. Est-ce au niveau des
outils références qu'il faut que je modifie quelque chose.
Merci de m'aider à nouveau.
Meilleures salutations
Lena
"3stone" <3stone@skynet.be> a écrit dans le message de news:
#$RpghuRDHA.2128@TK2MSFTNGP12.phx.gbl...
Bonjour Marie Lena,
Lena <marie.loye@bluewin.ch>
Dans une procédure, je supprime des enregistrements pour en ajouter
d'autres. Comme il s'agit d'un nombre assez important
d'enregistrements,
j'aimerais compacter la base de données après la suppression pour
pouvoir
ajouter les nouveaux enregistrements sur une base compactée. Mais je
ne
souhaite pas renommer la base. Je voudrais pouvoir le faire très
simplement,
de la même manière qu'avec l'outils options compacter une base de
données,
mais tout ça à l'intérieur de ma procédure VBA.
Vas regader ceci :
http://access.jessy.free.fr/htm/DownLoad/CompactDb.htm
--
A+
Pierre (3stone) Access MVP
--------------------------------------
Une pour tous, tous pour une ;-)
http://users.skynet.be/mpfa/
--------------------------------------
Merci pour ton aide Pierre,
J'ai importé la macro et le module, mais ça ne fonctionne pas. Quand
j'exécute compact(), ça bugue à : Set acApp = GetObject(strDbFile) -
Erreur d'exécution 432 : Nom du fichier ou de la classe introuvable lors
de
l'opération d'Automation.
Comme je suis un peu débutante, ça me parle chinois. Est-ce au niveau des
outils références qu'il faut que je modifie quelque chose.
Merci de m'aider à nouveau.
Meilleures salutations
Lena
"3stone" a écrit dans le message de news:
#$Bonjour Marie Lena,
LenaDans une procédure, je supprime des enregistrements pour en ajouter
d'autres. Comme il s'agit d'un nombre assez important
d'enregistrements,j'aimerais compacter la base de données après la suppression pour
pouvoirajouter les nouveaux enregistrements sur une base compactée. Mais je
ne
souhaite pas renommer la base. Je voudrais pouvoir le faire très
simplement,de la même manière qu'avec l'outils options compacter une base de
données,mais tout ça à l'intérieur de ma procédure VBA.
Vas regader ceci :
http://access.jessy.free.fr/htm/DownLoad/CompactDb.htm
--
A+
Pierre (3stone) Access MVP
--------------------------------------
Une pour tous, tous pour une ;-)
http://users.skynet.be/mpfa/
--------------------------------------
Au fait j'oubliai...
J'ai pas encore mis le rectif sur mon site, le code que tu as
impose de rajouter la référence : "Microsoft Office x.0 Object Library"
Pour éviter cela, remplaces la fonction CompactExe() par :
**************************************************
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
**************************************************
--
@+
Jessy Sempere - Access MVP
------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Lena" a écrit dans le message news:Merci pour ton aide Pierre,
J'ai importé la macro et le module, mais ça ne fonctionne pas. Quand
j'exécute compact(), ça bugue à : Set acApp = GetObject(strDbFile) -
Erreur d'exécution 432 : Nom du fichier ou de la classe introuvable lors
del'opération d'Automation.
Comme je suis un peu débutante, ça me parle chinois. Est-ce au niveau
des
outils références qu'il faut que je modifie quelque chose.
Merci de m'aider à nouveau.
Meilleures salutations
Lena
"3stone" a écrit dans le message de news:
#$Bonjour Marie Lena,
LenaDans une procédure, je supprime des enregistrements pour en ajouter
d'autres. Comme il s'agit d'un nombre assez important
d'enregistrements,j'aimerais compacter la base de données après la suppression pour
pouvoirajouter les nouveaux enregistrements sur une base compactée. Mais je
nesouhaite pas renommer la base. Je voudrais pouvoir le faire très
simplement,de la même manière qu'avec l'outils options compacter une base de
données,mais tout ça à l'intérieur de ma procédure VBA.
Vas regader ceci :
http://access.jessy.free.fr/htm/DownLoad/CompactDb.htm
--
A+
Pierre (3stone) Access MVP
--------------------------------------
Une pour tous, tous pour une ;-)
http://users.skynet.be/mpfa/
--------------------------------------
Au fait j'oubliai...
J'ai pas encore mis le rectif sur mon site, le code que tu as
impose de rajouter la référence : "Microsoft Office x.0 Object Library"
Pour éviter cela, remplaces la fonction CompactExe() par :
**************************************************
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
**************************************************
--
@+
Jessy Sempere - Access MVP
news@access.fr.vu
------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Lena" <marie.loye@bluewin.ch> a écrit dans le message news:
3f0e600a_5@news.bluewin.ch...
Merci pour ton aide Pierre,
J'ai importé la macro et le module, mais ça ne fonctionne pas. Quand
j'exécute compact(), ça bugue à : Set acApp = GetObject(strDbFile) -
Erreur d'exécution 432 : Nom du fichier ou de la classe introuvable lors
de
l'opération d'Automation.
Comme je suis un peu débutante, ça me parle chinois. Est-ce au niveau
des
outils références qu'il faut que je modifie quelque chose.
Merci de m'aider à nouveau.
Meilleures salutations
Lena
"3stone" <3stone@skynet.be> a écrit dans le message de news:
#$RpghuRDHA.2128@TK2MSFTNGP12.phx.gbl...
Bonjour Marie Lena,
Lena <marie.loye@bluewin.ch>
Dans une procédure, je supprime des enregistrements pour en ajouter
d'autres. Comme il s'agit d'un nombre assez important
d'enregistrements,
j'aimerais compacter la base de données après la suppression pour
pouvoir
ajouter les nouveaux enregistrements sur une base compactée. Mais je
ne
souhaite pas renommer la base. Je voudrais pouvoir le faire très
simplement,
de la même manière qu'avec l'outils options compacter une base de
données,
mais tout ça à l'intérieur de ma procédure VBA.
Vas regader ceci :
http://access.jessy.free.fr/htm/DownLoad/CompactDb.htm
--
A+
Pierre (3stone) Access MVP
--------------------------------------
Une pour tous, tous pour une ;-)
http://users.skynet.be/mpfa/
--------------------------------------
Au fait j'oubliai...
J'ai pas encore mis le rectif sur mon site, le code que tu as
impose de rajouter la référence : "Microsoft Office x.0 Object Library"
Pour éviter cela, remplaces la fonction CompactExe() par :
**************************************************
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
**************************************************
--
@+
Jessy Sempere - Access MVP
------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Lena" a écrit dans le message news:Merci pour ton aide Pierre,
J'ai importé la macro et le module, mais ça ne fonctionne pas. Quand
j'exécute compact(), ça bugue à : Set acApp = GetObject(strDbFile) -
Erreur d'exécution 432 : Nom du fichier ou de la classe introuvable lors
del'opération d'Automation.
Comme je suis un peu débutante, ça me parle chinois. Est-ce au niveau
des
outils références qu'il faut que je modifie quelque chose.
Merci de m'aider à nouveau.
Meilleures salutations
Lena
"3stone" a écrit dans le message de news:
#$Bonjour Marie Lena,
LenaDans une procédure, je supprime des enregistrements pour en ajouter
d'autres. Comme il s'agit d'un nombre assez important
d'enregistrements,j'aimerais compacter la base de données après la suppression pour
pouvoirajouter les nouveaux enregistrements sur une base compactée. Mais je
nesouhaite pas renommer la base. Je voudrais pouvoir le faire très
simplement,de la même manière qu'avec l'outils options compacter une base de
données,mais tout ça à l'intérieur de ma procédure VBA.
Vas regader ceci :
http://access.jessy.free.fr/htm/DownLoad/CompactDb.htm
--
A+
Pierre (3stone) Access MVP
--------------------------------------
Une pour tous, tous pour une ;-)
http://users.skynet.be/mpfa/
--------------------------------------
Super, ça marche...
Maintenant une dernière petite question toute conne... Comment je procède
pour appeler la fonction compactEXE() dans ma procédure ?
"Jessy SEMPERE" a écrit dans le message de
news:
belofd$64o$Au fait j'oubliai...
J'ai pas encore mis le rectif sur mon site, le code que tu as
impose de rajouter la référence : "Microsoft Office x.0 Object Library"
Pour éviter cela, remplaces la fonction CompactExe() par :
**************************************************
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
**************************************************
--
@+
Jessy Sempere - Access MVP
------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Lena" a écrit dans le message news:Merci pour ton aide Pierre,
J'ai importé la macro et le module, mais ça ne fonctionne pas. Quand
j'exécute compact(), ça bugue à : Set acApp GetObject(strDbFile) -
Erreur d'exécution 432 : Nom du fichier ou de la classe introuvable
lors
del'opération d'Automation.
Comme je suis un peu débutante, ça me parle chinois. Est-ce au niveau
desoutils références qu'il faut que je modifie quelque chose.
Merci de m'aider à nouveau.
Meilleures salutations
Lena
"3stone" a écrit dans le message de news:
#$Bonjour Marie Lena,
LenaDans une procédure, je supprime des enregistrements pour en
ajouter
d'autres. Comme il s'agit d'un nombre assez important
d'enregistrements,j'aimerais compacter la base de données après la suppression pour
pouvoirajouter les nouveaux enregistrements sur une base compactée. Mais
je
nesouhaite pas renommer la base. Je voudrais pouvoir le faire très
simplement,de la même manière qu'avec l'outils options compacter une base de
données,mais tout ça à l'intérieur de ma procédure VBA.
Vas regader ceci :
http://access.jessy.free.fr/htm/DownLoad/CompactDb.htm
--
A+
Pierre (3stone) Access MVP
--------------------------------------
Une pour tous, tous pour une ;-)
http://users.skynet.be/mpfa/
--------------------------------------
Super, ça marche...
Maintenant une dernière petite question toute conne... Comment je procède
pour appeler la fonction compactEXE() dans ma procédure ?
"Jessy SEMPERE" <jessy.sempere@prg.sncf.fr> a écrit dans le message de
news:
belofd$64o$1@muguet.sncf.fr...
Au fait j'oubliai...
J'ai pas encore mis le rectif sur mon site, le code que tu as
impose de rajouter la référence : "Microsoft Office x.0 Object Library"
Pour éviter cela, remplaces la fonction CompactExe() par :
**************************************************
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
**************************************************
--
@+
Jessy Sempere - Access MVP
news@access.fr.vu
------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Lena" <marie.loye@bluewin.ch> a écrit dans le message news:
3f0e600a_5@news.bluewin.ch...
Merci pour ton aide Pierre,
J'ai importé la macro et le module, mais ça ne fonctionne pas. Quand
j'exécute compact(), ça bugue à : Set acApp GetObject(strDbFile) -
Erreur d'exécution 432 : Nom du fichier ou de la classe introuvable
lors
de
l'opération d'Automation.
Comme je suis un peu débutante, ça me parle chinois. Est-ce au niveau
des
outils références qu'il faut que je modifie quelque chose.
Merci de m'aider à nouveau.
Meilleures salutations
Lena
"3stone" <3stone@skynet.be> a écrit dans le message de news:
#$RpghuRDHA.2128@TK2MSFTNGP12.phx.gbl...
Bonjour Marie Lena,
Lena <marie.loye@bluewin.ch>
Dans une procédure, je supprime des enregistrements pour en
ajouter
d'autres. Comme il s'agit d'un nombre assez important
d'enregistrements,
j'aimerais compacter la base de données après la suppression pour
pouvoir
ajouter les nouveaux enregistrements sur une base compactée. Mais
je
ne
souhaite pas renommer la base. Je voudrais pouvoir le faire très
simplement,
de la même manière qu'avec l'outils options compacter une base de
données,
mais tout ça à l'intérieur de ma procédure VBA.
Vas regader ceci :
http://access.jessy.free.fr/htm/DownLoad/CompactDb.htm
--
A+
Pierre (3stone) Access MVP
--------------------------------------
Une pour tous, tous pour une ;-)
http://users.skynet.be/mpfa/
--------------------------------------
Super, ça marche...
Maintenant une dernière petite question toute conne... Comment je procède
pour appeler la fonction compactEXE() dans ma procédure ?
"Jessy SEMPERE" a écrit dans le message de
news:
belofd$64o$Au fait j'oubliai...
J'ai pas encore mis le rectif sur mon site, le code que tu as
impose de rajouter la référence : "Microsoft Office x.0 Object Library"
Pour éviter cela, remplaces la fonction CompactExe() par :
**************************************************
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
**************************************************
--
@+
Jessy Sempere - Access MVP
------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Lena" a écrit dans le message news:Merci pour ton aide Pierre,
J'ai importé la macro et le module, mais ça ne fonctionne pas. Quand
j'exécute compact(), ça bugue à : Set acApp GetObject(strDbFile) -
Erreur d'exécution 432 : Nom du fichier ou de la classe introuvable
lors
del'opération d'Automation.
Comme je suis un peu débutante, ça me parle chinois. Est-ce au niveau
desoutils références qu'il faut que je modifie quelque chose.
Merci de m'aider à nouveau.
Meilleures salutations
Lena
"3stone" a écrit dans le message de news:
#$Bonjour Marie Lena,
LenaDans une procédure, je supprime des enregistrements pour en
ajouter
d'autres. Comme il s'agit d'un nombre assez important
d'enregistrements,j'aimerais compacter la base de données après la suppression pour
pouvoirajouter les nouveaux enregistrements sur une base compactée. Mais
je
nesouhaite pas renommer la base. Je voudrais pouvoir le faire très
simplement,de la même manière qu'avec l'outils options compacter une base de
données,mais tout ça à l'intérieur de ma procédure VBA.
Vas regader ceci :
http://access.jessy.free.fr/htm/DownLoad/CompactDb.htm
--
A+
Pierre (3stone) Access MVP
--------------------------------------
Une pour tous, tous pour une ;-)
http://users.skynet.be/mpfa/
--------------------------------------
Re,Super, ça marche...
Ah c'est coolMaintenant une dernière petite question toute conne... Comment je
procède
pour appeler la fonction compactEXE() dans ma procédure ?
Ben normalement tu as importé le module et la macro dans ta base...
Donc si c'est bien le cas, il te suffit juste de l'appeler par son nom
mais attention si tu as du code qui suit l'appel de cette fonction, il
ne s'exécutera pas vu que lors du compactage, la base se ferme.
Donc :
Function TaFonction ()
{tes instructions}
CompactExe
'tout ce que tu mettras après, ne s'exécutera pas...
End Function
Tu peux aussi l'appeler depuis une macro :
Action : ExécuterCode
Argument : CompactExe()
Voilà
@+
Jessy Sempere - Access MVP
------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Jessy SEMPERE" a écrit dans le message de
news:belofd$64o$Au fait j'oubliai...
J'ai pas encore mis le rectif sur mon site, le code que tu as
impose de rajouter la référence : "Microsoft Office x.0 Object
Library"
Pour éviter cela, remplaces la fonction CompactExe() par :
**************************************************
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
**************************************************
--
@+
Jessy Sempere - Access MVP
------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Lena" a écrit dans le message news:Merci pour ton aide Pierre,
J'ai importé la macro et le module, mais ça ne fonctionne pas. Quand
j'exécute compact(), ça bugue à : Set acApp > GetObject(strDbFile) -
Erreur d'exécution 432 : Nom du fichier ou de la classe introuvable
lorsdel'opération d'Automation.
Comme je suis un peu débutante, ça me parle chinois. Est-ce au
niveau
desoutils références qu'il faut que je modifie quelque chose.
Merci de m'aider à nouveau.
Meilleures salutations
Lena
"3stone" a écrit dans le message de news:
#$Bonjour Marie Lena,
LenaDans une procédure, je supprime des enregistrements pour en
ajouterd'autres. Comme il s'agit d'un nombre assez important
d'enregistrements,j'aimerais compacter la base de données après la suppression
pour
pouvoirajouter les nouveaux enregistrements sur une base compactée.
Mais
jenesouhaite pas renommer la base. Je voudrais pouvoir le faire très
simplement,de la même manière qu'avec l'outils options compacter une base
de
données,mais tout ça à l'intérieur de ma procédure VBA.
Vas regader ceci :
http://access.jessy.free.fr/htm/DownLoad/CompactDb.htm
--
A+
Pierre (3stone) Access MVP
--------------------------------------
Une pour tous, tous pour une ;-)
http://users.skynet.be/mpfa/
--------------------------------------
Re,
Super, ça marche...
Ah c'est cool
Maintenant une dernière petite question toute conne... Comment je
procède
pour appeler la fonction compactEXE() dans ma procédure ?
Ben normalement tu as importé le module et la macro dans ta base...
Donc si c'est bien le cas, il te suffit juste de l'appeler par son nom
mais attention si tu as du code qui suit l'appel de cette fonction, il
ne s'exécutera pas vu que lors du compactage, la base se ferme.
Donc :
Function TaFonction ()
{tes instructions}
CompactExe
'tout ce que tu mettras après, ne s'exécutera pas...
End Function
Tu peux aussi l'appeler depuis une macro :
Action : ExécuterCode
Argument : CompactExe()
Voilà
@+
Jessy Sempere - Access MVP
news@access.fr.vu
------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Jessy SEMPERE" <jessy.sempere@prg.sncf.fr> a écrit dans le message de
news:
belofd$64o$1@muguet.sncf.fr...
Au fait j'oubliai...
J'ai pas encore mis le rectif sur mon site, le code que tu as
impose de rajouter la référence : "Microsoft Office x.0 Object
Library"
Pour éviter cela, remplaces la fonction CompactExe() par :
**************************************************
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
**************************************************
--
@+
Jessy Sempere - Access MVP
news@access.fr.vu
------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Lena" <marie.loye@bluewin.ch> a écrit dans le message news:
3f0e600a_5@news.bluewin.ch...
Merci pour ton aide Pierre,
J'ai importé la macro et le module, mais ça ne fonctionne pas. Quand
j'exécute compact(), ça bugue à : Set acApp > GetObject(strDbFile) -
Erreur d'exécution 432 : Nom du fichier ou de la classe introuvable
lors
de
l'opération d'Automation.
Comme je suis un peu débutante, ça me parle chinois. Est-ce au
niveau
des
outils références qu'il faut que je modifie quelque chose.
Merci de m'aider à nouveau.
Meilleures salutations
Lena
"3stone" <3stone@skynet.be> a écrit dans le message de news:
#$RpghuRDHA.2128@TK2MSFTNGP12.phx.gbl...
Bonjour Marie Lena,
Lena <marie.loye@bluewin.ch>
Dans une procédure, je supprime des enregistrements pour en
ajouter
d'autres. Comme il s'agit d'un nombre assez important
d'enregistrements,
j'aimerais compacter la base de données après la suppression
pour
pouvoir
ajouter les nouveaux enregistrements sur une base compactée.
Mais
je
ne
souhaite pas renommer la base. Je voudrais pouvoir le faire très
simplement,
de la même manière qu'avec l'outils options compacter une base
de
données,
mais tout ça à l'intérieur de ma procédure VBA.
Vas regader ceci :
http://access.jessy.free.fr/htm/DownLoad/CompactDb.htm
--
A+
Pierre (3stone) Access MVP
--------------------------------------
Une pour tous, tous pour une ;-)
http://users.skynet.be/mpfa/
--------------------------------------
Re,Super, ça marche...
Ah c'est coolMaintenant une dernière petite question toute conne... Comment je
procède
pour appeler la fonction compactEXE() dans ma procédure ?
Ben normalement tu as importé le module et la macro dans ta base...
Donc si c'est bien le cas, il te suffit juste de l'appeler par son nom
mais attention si tu as du code qui suit l'appel de cette fonction, il
ne s'exécutera pas vu que lors du compactage, la base se ferme.
Donc :
Function TaFonction ()
{tes instructions}
CompactExe
'tout ce que tu mettras après, ne s'exécutera pas...
End Function
Tu peux aussi l'appeler depuis une macro :
Action : ExécuterCode
Argument : CompactExe()
Voilà
@+
Jessy Sempere - Access MVP
------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Jessy SEMPERE" a écrit dans le message de
news:belofd$64o$Au fait j'oubliai...
J'ai pas encore mis le rectif sur mon site, le code que tu as
impose de rajouter la référence : "Microsoft Office x.0 Object
Library"
Pour éviter cela, remplaces la fonction CompactExe() par :
**************************************************
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
**************************************************
--
@+
Jessy Sempere - Access MVP
------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Lena" a écrit dans le message news:Merci pour ton aide Pierre,
J'ai importé la macro et le module, mais ça ne fonctionne pas. Quand
j'exécute compact(), ça bugue à : Set acApp > GetObject(strDbFile) -
Erreur d'exécution 432 : Nom du fichier ou de la classe introuvable
lorsdel'opération d'Automation.
Comme je suis un peu débutante, ça me parle chinois. Est-ce au
niveau
desoutils références qu'il faut que je modifie quelque chose.
Merci de m'aider à nouveau.
Meilleures salutations
Lena
"3stone" a écrit dans le message de news:
#$Bonjour Marie Lena,
LenaDans une procédure, je supprime des enregistrements pour en
ajouterd'autres. Comme il s'agit d'un nombre assez important
d'enregistrements,j'aimerais compacter la base de données après la suppression
pour
pouvoirajouter les nouveaux enregistrements sur une base compactée.
Mais
jenesouhaite pas renommer la base. Je voudrais pouvoir le faire très
simplement,de la même manière qu'avec l'outils options compacter une base
de
données,mais tout ça à l'intérieur de ma procédure VBA.
Vas regader ceci :
http://access.jessy.free.fr/htm/DownLoad/CompactDb.htm
--
A+
Pierre (3stone) Access MVP
--------------------------------------
Une pour tous, tous pour une ;-)
http://users.skynet.be/mpfa/
--------------------------------------