IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Access Discussion :

Suppression conditionnelle de table


Sujet :

Access

  1. #1
    Membre du Club
    Inscrit en
    Janvier 2006
    Messages
    103
    Détails du profil
    Informations personnelles :
    Âge : 63

    Informations forums :
    Inscription : Janvier 2006
    Messages : 103
    Points : 59
    Points
    59
    Par défaut Suppression conditionnelle de table
    bonjour,
    Je lance une macro "supprimer objet", une table, que dois-je mettre dans les conditions pour que si elle n'existe pas, cela ne bloque pas la macro.

    Merci à vous, encore...

  2. #2
    Membre régulier Avatar de Sonic
    Inscrit en
    Mars 2002
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 105
    Points : 96
    Points
    96
    Par défaut
    Crée toi une fonction qui retourne Vrai si la table existe et Faux sinon, ca te permet de faire ton test dans la macro :
    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
    Public Function ExistTable(ByVal strTabl As String) As Boolean
    'ExistTable : fonction qui retourne un booleen indiquant si la table existe
    'précondition : - strTabl : nom de la table pour laquelle on veut savoir si elle existe
    'postcondition : retourne Vrai si la table existe, faux sinon
    Dim Str As String
    On Error GoTo err01
     
        Str = CurrentDb.TableDefs(strTabl).Name
        ExistTable = True
        Exit Function
    err01:
        Select Case Err.Number
            Case 3265
                ExistTable = False
        End Select
    End Function

  3. #3
    Membre du Club
    Inscrit en
    Janvier 2006
    Messages
    103
    Détails du profil
    Informations personnelles :
    Âge : 63

    Informations forums :
    Inscription : Janvier 2006
    Messages : 103
    Points : 59
    Points
    59
    Par défaut
    bonjour,
    A quoi dois- attacher cette fonction, à un champs quelconque d'un formulaire par exemple ?
    Merci à toi



    Citation Envoyé par Sonic
    Crée toi une fonction qui retourne Vrai si la table existe et Faux sinon, ca te permet de faire ton test dans la macro :
    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
    Public Function ExistTable(ByVal strTabl As String) As Boolean
    'ExistTable : fonction qui retourne un booleen indiquant si la table existe
    'précondition : - strTabl : nom de la table pour laquelle on veut savoir si elle existe
    'postcondition : retourne Vrai si la table existe, faux sinon
    Dim Str As String
    On Error GoTo err01
     
        Str = CurrentDb.TableDefs(strTabl).Name
        ExistTable = True
        Exit Function
    err01:
        Select Case Err.Number
            Case 3265
                ExistTable = False
        End Select
    End Function

  4. #4
    Membre régulier Avatar de Sonic
    Inscrit en
    Mars 2002
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 105
    Points : 96
    Points
    96
    Par défaut
    Le plus simple c'est que tu crées ta propre fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Public Function SupprimerTable()
    if ExistTable("MyTable") then
       docmd.runSQL "DROP TABLE MyTable"
    end if
    end Function
    Tu crée une macro "ExécuterCode" et tu mets en paramètre de cette macro la fonction "SupprimerTable"

  5. #5
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    tant qu'a faire d'écrire une fonction pas besoin de tester en générant une erreur si la table n'existe pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    function suptable(sonnom as string) as boolean
    dim mabase as dao.database
    set mabase=currentdb()
    on error goto pastable
    mabase.TableDefs.Delete (sonnom)
    mabase.TableDefs.Refresh
    suptable=true
    exit function
    :pastable
    suptable=false
    end function
    Elle est pas belle la vie ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [INTERBASE 6] suppression conditionnelle d'une table
    Par jakouz dans le forum InterBase
    Réponses: 1
    Dernier message: 21/11/2012, 14h24
  2. suppression sur plusieurs tables
    Par Jean-Matt dans le forum Langage SQL
    Réponses: 2
    Dernier message: 16/06/2005, 11h46
  3. [Debutant]Suppression dans des tables avec contraintes
    Par Roming22 dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 26/10/2004, 17h23
  4. [CR] Suppression conditionnelle d'un en-tête de champs
    Par Chtomy dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 17/05/2004, 22h20
  5. Combler les trous lors d'une suppression dans une table
    Par Billybongjoe dans le forum PostgreSQL
    Réponses: 5
    Dernier message: 08/04/2004, 14h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo