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

si cette table existe, il faut la supprimer

5 réponses
Avatar
Michel J
Bonjour

Dans une fonction je voudrais que
si les tables X, Y, etc existent dans ma base,
et que si cette base a été installée sur un ordinateur non autorisé,
ma fonction les supprime,
mais que si elles n'existent pas (car déjà supprimées),
je voudrais éviter le message de debogage puisqu'access ne les trouve pas.

Private sub....
if 'Si la table X existe alors
il faut la supprimer: DoCmd.Delete Object acTable "X"
mais si la table X n'existe pas alors
pas de message de débogage
docmd.close acform, "MotDePasse", acSaveYes
end if
end sub
Merci
MJ

5 réponses

Avatar
Raymond [mvp]
bonjour.

Tu places simplement On Error Resume Next en premier lieu et ensuite tes
delete sans te soucier si les tables existent. si elles n'existent pas
l'erreur sera ignorée.

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Michel J" a écrit dans le message de news:

Bonjour

Dans une fonction je voudrais que
si les tables X, Y, etc existent dans ma base,
et que si cette base a été installée sur un ordinateur non autorisé, ma
fonction les supprime,
mais que si elles n'existent pas (car déjà supprimées),
je voudrais éviter le message de debogage puisqu'access ne les trouve pas.

Private sub....
if 'Si la table X existe alors
il faut la supprimer: DoCmd.Delete Object acTable "X"
mais si la table X n'existe pas alors
pas de message de débogage
docmd.close acform, "MotDePasse", acSaveYes
end if
end sub
Merci
MJ



Avatar
Michel J
merci
et maintenant comment je peux supprimer toutes mes tables d'un seul coup
même si elles sont en relations et cela sans message d'avertissement
ni debogage ?
MJ

Raymond [mvp] a écrit:
bonjour.

Tu places simplement On Error Resume Next en premier lieu et ensuite tes
delete sans te soucier si les tables existent. si elles n'existent pas
l'erreur sera ignorée.



Avatar
Raymond [mvp]
normalement le resume next fait passer outre les messages d'erreurs.
as-tu essayé ? c'est le meilleur moyen de savoir.

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Michel J" a écrit dans le message de news:

merci
et maintenant comment je peux supprimer toutes mes tables d'un seul coup
même si elles sont en relations et cela sans message d'avertissement ni
debogage ?
MJ


Avatar
The_Team
C'est quoi l'objectif exact de cette suppression ? Il y a peut être une
méthode moins agressive, plus simple et tout aussi efficace.

Lucky_Team

www.access-developpement.com

"Michel J" a écrit dans le message de
news:
Bonjour

Dans une fonction je voudrais que
si les tables X, Y, etc existent dans ma base,
et que si cette base a été installée sur un ordinateur non autorisé,
ma fonction les supprime,
mais que si elles n'existent pas (car déjà supprimées),
je voudrais éviter le message de debogage puisqu'access ne les trouve pas.

Private sub....
if 'Si la table X existe alors
il faut la supprimer: DoCmd.Delete Object acTable "X"
mais si la table X n'existe pas alors
pas de message de débogage
docmd.close acform, "MotDePasse", acSaveYes
end if
end sub
Merci
MJ



Avatar
Michel J
Bonjour
En fait je veux que si on fait une copie de ma base sur un ordinateur
autre que ceux de ma société, ma base soit vide de toutes ses tables
(donc supprimer toutes les tables) ou effacer leur contenu, ce qui
revient au même en rendant la copie inutilisable.
Pour cela la macro autoexec recherche à l'ouverture un ficher sur la
racine de C: présent uniquement sur tous les ordi de ma société et
évidemment absent de la racine de C: de tout ordi normal (c'est un
fichier word renommé en n'importe quoi, .ini par exemple.
Si à l'ouverture de la base sur un ordi, ce fichier est présent, on
efface pas les tables, mais si ce fichier est absent, on efface les
tables ou leur contenu.
Pour le moment, ça m'efface bien les tables sans relations, mais pour
les tables avec une relation en cascade, j'ai le message classique:
"rreur d'execution 2387: vous ne pouvez pas supprimer la table "XX" car
elle intervient dans une ou plusieurs relations, si vous voulez
supprimer cette table, supprimer d'abord les relations dans la fenêtre
Relations."
Et Apparition de débogage.
Evidemment je ne veux pas demander aux utilisateurs, qu'ils soient sur
un ordi de ma société ou sur un ordi non autorisé (donc sans mon pseudo
fichier .ini s'ils veulent supprimer les relations; et je cherche à
supprimer ce message.
Comment le supprimer et que mes tables soient supprimer sans
avertissement, même si elles sont en relation ?
Merci
MJ





The_Team a écrit:
C'est quoi l'objectif exact de cette suppression ? Il y a peut être une
méthode moins agressive, plus simple et tout aussi efficace.

Lucky_Team

www.access-developpement.com

"Michel J" a écrit dans le message de
news:

Bonjour

Dans une fonction je voudrais que
si les tables X, Y, etc existent dans ma base,
et que si cette base a été installée sur un ordinateur non autorisé,
ma fonction les supprime,
mais que si elles n'existent pas (car déjà supprimées),
je voudrais éviter le message de debogage puisqu'access ne les trouve pas.

Private sub....
if 'Si la table X existe alors
il faut la supprimer: DoCmd.Delete Object acTable "X"
mais si la table X n'existe pas alors
pas de message de débogage
docmd.close acform, "MotDePasse", acSaveYes
end if
end sub
Merci
MJ