Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

pb de compactage par bouton commande

4 réponses
Avatar
francois
Bonjour
Je reviens sur une solution de compactage que m'avait proposé Jessy sempere
en allant visiter le site :
> http://access.fr.free.fr/articles.php?lng=fr&pg=130
J'ai donc saisi les codes suivants, dans un menu de la base, mais au moment
de l'éxécution, plantage, et message :
"vous avez essayé d'ouvrir une base déjà ouverte en mode exclusif.
Merci pour l'aide


"code evenementiel"
Private Sub Commande5_Click()
fcompactBase ("c:\educs\211206bis.mdb")
End Sub

"Fonction "
Public Function fcompactBase(strBase As String)
Dim srcDstName As String
srcDstName = strBase & ".tmp"
DBEngine.CompactDatabase strBase, srcDstName
Kill strBase
Name srcDstName As strBase
End Function

4 réponses

Avatar
ze Titi
Bonjour francois

Si tu lances le code depuis la base que tu veux compacter, il est
évident que tu auras toujours ce message. Tu dois le lancer d'une base
extérieure. Crées une base avec le nom "taBase_Reparer.mdb" par exemple
et dans la macro Autoexec, tu lances le code que t'as donné Jessy..


Dans ton message <458afc70$0$24735$ du jeudi
Bonjour
Je reviens sur une solution de compactage que m'avait proposé Jessy sempere
en allant visiter le site :
http://access.fr.free.fr/articles.php?lng=fr&pg0
J'ai donc saisi les codes suivants, dans un menu de la base, mais au moment

de l'éxécution, plantage, et message :
"vous avez essayé d'ouvrir une base déjà ouverte en mode exclusif.
Merci pour l'aide


"code evenementiel"
Private Sub Commande5_Click()
fcompactBase ("c:educs211206bis.mdb")
End Sub

"Fonction "
Public Function fcompactBase(strBase As String)
Dim srcDstName As String
srcDstName = strBase & ".tmp"
DBEngine.CompactDatabase strBase, srcDstName
Kill strBase
Name srcDstName As strBase
End Function


--
Voilou !
Cordialement,

Ze Titi


Avatar
Hb
merci, effectivement, je suis dans la base à compacter car le compactage
intervient après que j'ai effectué un "vidage de table", puor remettre à
zero les compteurs automatiques..
Que faire ?
effectuer le "vidage dans la base" et ensuite lancer la base de compactage,?
(quel code ajouter à celui de "vidage" ?
"""Private Sub Commande4_Click()
If vbYes = MsgBox("Détruire tous les enregistrements ?", vbYesNo,
"Confirmation") Then
CurrentDb.Execute "Delete * From module"
Else
Me.Undo
Exit Sub
End If
End Sub"""""

ou bien

effectuer le vidage de la table depuis la base exterieure qui contient le
code de compactage ?
La aussi, un petit coup de main serait utile.
Merci d'avance


"ze Titi" a écrit dans le message de
news:
Bonjour francois

Si tu lances le code depuis la base que tu veux compacter, il est
évident que tu auras toujours ce message. Tu dois le lancer d'une base
extérieure. Crées une base avec le nom "taBase_Reparer.mdb" par exemple
et dans la macro Autoexec, tu lances le code que t'as donné Jessy..


Dans ton message <458afc70$0$24735$ du jeudi
Bonjour
Je reviens sur une solution de compactage que m'avait proposé Jessy
sempere


en allant visiter le site :
http://access.fr.free.fr/articles.php?lng=fr&pg0
J'ai donc saisi les codes suivants, dans un menu de la base, mais au

moment


de l'éxécution, plantage, et message :
"vous avez essayé d'ouvrir une base déjà ouverte en mode exclusif.
Merci pour l'aide


"code evenementiel"
Private Sub Commande5_Click()
fcompactBase ("c:educs211206bis.mdb")
End Sub

"Fonction "
Public Function fcompactBase(strBase As String)
Dim srcDstName As String
srcDstName = strBase & ".tmp"
DBEngine.CompactDatabase strBase, srcDstName
Kill strBase
Name srcDstName As strBase
End Function


--
Voilou !
Cordialement,

Ze Titi






Avatar
ze Titi
Tu peux créer une nouvelle base avec une liaison sur la table à vider
(Fichier/Données externes/lier des tables). Ensuite, dans ton module,
tu vides la table en question et tu lances le compactage de ta base
principale.
Ca n'est qu'une idée, à toi de voir !



Dans ton message <458bd358$0$25906$ du vendredi
merci, effectivement, je suis dans la base à compacter car le compactage
intervient après que j'ai effectué un "vidage de table", puor remettre à
zero les compteurs automatiques..
Que faire ?
effectuer le "vidage dans la base" et ensuite lancer la base de compactage,?
(quel code ajouter à celui de "vidage" ?
"""Private Sub Commande4_Click()
If vbYes = MsgBox("Détruire tous les enregistrements ?", vbYesNo,
"Confirmation") Then
CurrentDb.Execute "Delete * From module"
Else
Me.Undo
Exit Sub
End If
End Sub"""""

ou bien

effectuer le vidage de la table depuis la base exterieure qui contient le
code de compactage ?
La aussi, un petit coup de main serait utile.
Merci d'avance


"ze Titi" a écrit dans le message de
news:
Bonjour francois

Si tu lances le code depuis la base que tu veux compacter, il est
évident que tu auras toujours ce message. Tu dois le lancer d'une base
extérieure. Crées une base avec le nom "taBase_Reparer.mdb" par exemple
et dans la macro Autoexec, tu lances le code que t'as donné Jessy..


Dans ton message <458afc70$0$24735$ du jeudi
Bonjour
Je reviens sur une solution de compactage que m'avait proposé Jessy sempere
en allant visiter le site :
http://access.fr.free.fr/articles.php?lng=fr&pg0
J'ai donc saisi les codes suivants, dans un menu de la base, mais au moment

de l'éxécution, plantage, et message :
"vous avez essayé d'ouvrir une base déjà ouverte en mode exclusif.
Merci pour l'aide


"code evenementiel"
Private Sub Commande5_Click()
fcompactBase ("c:educs211206bis.mdb")
End Sub

"Fonction "
Public Function fcompactBase(strBase As String)
Dim srcDstName As String
srcDstName = strBase & ".tmp"
DBEngine.CompactDatabase strBase, srcDstName
Kill strBase
Name srcDstName As strBase
End Function


--
Voilou !
Cordialement,

Ze Titi



--
Voilou !
Bon courage !
Cordialement,
ze Titi




Avatar
francois
Bonne idée qui marche..
mais plus sympa si j'ai un bouton dans ma base qui contient les tables à
vider et compacter,
qui permet de quitter cette base et d'ouvrir la base qui contient les
boutons "vidage" et "compactage"
cad un code qui permet d'ouvrir une autre base depuis une base initiale
Merci d'avance






"ze Titi" a écrit dans le message de news:

Tu peux créer une nouvelle base avec une liaison sur la table à vider
(Fichier/Données externes/lier des tables). Ensuite, dans ton module,
tu vides la table en question et tu lances le compactage de ta base
principale.
Ca n'est qu'une idée, à toi de voir !



Dans ton message <458bd358$0$25906$ du vendredi
merci, effectivement, je suis dans la base à compacter car le compactage
intervient après que j'ai effectué un "vidage de table", puor remettre à
zero les compteurs automatiques..
Que faire ?
effectuer le "vidage dans la base" et ensuite lancer la base de
compactage,?


(quel code ajouter à celui de "vidage" ?
"""Private Sub Commande4_Click()
If vbYes = MsgBox("Détruire tous les enregistrements ?", vbYesNo,
"Confirmation") Then
CurrentDb.Execute "Delete * From module"
Else
Me.Undo
Exit Sub
End If
End Sub"""""

ou bien

effectuer le vidage de la table depuis la base exterieure qui contient
le


code de compactage ?
La aussi, un petit coup de main serait utile.
Merci d'avance


"ze Titi" a écrit dans le message de
news:
Bonjour francois

Si tu lances le code depuis la base que tu veux compacter, il est
évident que tu auras toujours ce message. Tu dois le lancer d'une base
extérieure. Crées une base avec le nom "taBase_Reparer.mdb" par exemple

et dans la macro Autoexec, tu lances le code que t'as donné Jessy..


Dans ton message <458afc70$0$24735$ du jeudi
Bonjour
Je reviens sur une solution de compactage que m'avait proposé Jessy
sempere




en allant visiter le site :
http://access.fr.free.fr/articles.php?lng=fr&pg0
J'ai donc saisi les codes suivants, dans un menu de la base, mais au

moment




de l'éxécution, plantage, et message :
"vous avez essayé d'ouvrir une base déjà ouverte en mode exclusif.
Merci pour l'aide


"code evenementiel"
Private Sub Commande5_Click()
fcompactBase ("c:educs211206bis.mdb")
End Sub

"Fonction "
Public Function fcompactBase(strBase As String)
Dim srcDstName As String
srcDstName = strBase & ".tmp"
DBEngine.CompactDatabase strBase, srcDstName
Kill strBase
Name srcDstName As strBase
End Function


--
Voilou !
Cordialement,

Ze Titi



--
Voilou !
Bon courage !
Cordialement,
ze Titi