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

VBA Access Discussion :

Problème avec TableDefs [AC-2000]


Sujet :

VBA Access

  1. #1
    Membre émérite Avatar de jean-paul lepetit
    Inscrit en
    Février 2005
    Messages
    849
    Détails du profil
    Informations personnelles :
    Âge : 69

    Informations forums :
    Inscription : Février 2005
    Messages : 849
    Par défaut Problème avec TableDefs
    Salut à tous,
    Pour supprimer des tables attachées, j'utilise ce code
    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
        With MyBase
            For Each Tbl In .TableDefs
            Debug.Print Tbl.Name
     
                If Tbl.Name = "Tbl_Procuration" Then
                    .TableDefs.Delete "Tbl_Procuration"
                ElseIf Tbl.Name = "Tbl_BurInstance" Then
                    .TableDefs.Delete "Tbl_BurInstance"
                ElseIf Tbl.Name = "Tbl_Mandataire" Then
                    .TableDefs.Delete "Tbl_Mandataire"
                ElseIf Tbl.Name = "Tbl_ProcuImporte" Then
                    .TableDefs.Delete "Tbl_ProcuImporte"
                End If
            Next Tbl
        End With
    (le debug.print a été rajouté pour voir la liste des tables)
    et il y a plusieurs tables existantes que je ne trouve pas avec le debug.print, et donc que je ne peux pas deleter....

    Quelqu'un a déjà eu ce problème?

    Merci de vos réponses

  2. #2
    Membre Expert

    Homme Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 186
    Par défaut
    Je mettrais bien un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MyBAse.TableDefs.Refresh
    Au début et à la fin.
    [Access] Les bases du débogage => ici

  3. #3
    Membre émérite Avatar de jean-paul lepetit
    Inscrit en
    Février 2005
    Messages
    849
    Détails du profil
    Informations personnelles :
    Âge : 69

    Informations forums :
    Inscription : Février 2005
    Messages : 849
    Par défaut
    ça ne change rien....
    sur 8 tables existantes, il ne m'en liste que 5 (hormis les tables systèmes)

  4. #4
    Membre Expert

    Homme Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 186
    Par défaut
    Le code un peu plus complet, ça donne :
    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
    17
    18
        set MyBse = CurrentDB
        With MyBase
            .TableDefs.refresh
            For Each Tbl In .TableDefs
            Debug.Print Tbl.Name
     
                If Tbl.Name = "Tbl_Procuration" Then
                    .TableDefs.Delete "Tbl_Procuration"
                ElseIf Tbl.Name = "Tbl_BurInstance" Then
                    .TableDefs.Delete "Tbl_BurInstance"
                ElseIf Tbl.Name = "Tbl_Mandataire" Then
                    .TableDefs.Delete "Tbl_Mandataire"
                ElseIf Tbl.Name = "Tbl_ProcuImporte" Then
                    .TableDefs.Delete "Tbl_ProcuImporte"
                End If
            Next Tbl
            .TableDefs.refresh
        End With
    ?
    J'utilise une sub similaire :
    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
    Public Sub SupprimeTable(pStr_NomTable As String)
    Dim iObj_TableDef As TableDef
     
        On Error GoTo Erreur
        InitDatabase
        gObj_Database.TableDefs.Refresh
        For Each iObj_TableDef In gObj_Database.TableDefs
            If iObj_TableDef.Name = pStr_NomTable Then
                gObj_Database.TableDefs.Delete pStr_NomTable
            End If
        Next
        gObj_Database.TableDefs.Refresh
        DoEvents
    Erreur:
    End Sub
    et j'ai jamais eu ce genre de problème.
    [Access] Les bases du débogage => ici

  5. #5
    Membre émérite Avatar de jean-paul lepetit
    Inscrit en
    Février 2005
    Messages
    849
    Détails du profil
    Informations personnelles :
    Âge : 69

    Informations forums :
    Inscription : Février 2005
    Messages : 849
    Par défaut
    c'est une procédure que j'utilise aussi dans d'autres bases et je n'ai jamais eu ce problème non plus....

    Mais là, il y a trois tables qu'il ne trouve pas.
    Je viens d'essayer de tout importer dans une nouvelle base et ça fait la même chose....

  6. #6
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 682
    Par défaut
    salut,
    fais un check du nom de tes tables des fois que le nom ne soit pas le même :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim tmpTab As tableDef
    For Each tmpTab In CurrentDb.TableDefs
    Debug.Print tmpTab.name
    Next
    compacte ta base, ca supprimera les tables temporaires
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  7. #7
    Membre émérite Avatar de jean-paul lepetit
    Inscrit en
    Février 2005
    Messages
    849
    Détails du profil
    Informations personnelles :
    Âge : 69

    Informations forums :
    Inscription : Février 2005
    Messages : 849
    Par défaut
    Je viens de remplacer dans mon code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
            For Each Tbl In .TableDefs
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
            For Each Tbl In CurrentDb.TableDefs
    et cela a l'air de marcher...
    je ne comprends pas pourquoi....

    Pourtant, je définissais bien Encore un des mystères d'Access....

    Merci à Kloun et jpcheck

  8. #8
    Membre averti
    Inscrit en
    Avril 2006
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 32
    Par défaut
    Merci jean-paul lepetit, je viens de galérer comme un fou.
    Ca marche maintenant. Je pense que c'est un bug d'access.
    Mille merci Je l'envoie ou la bouteille de champagne ? XD

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

Discussions similaires

  1. VC++ Direct3D8, problème avec LPD3DXFONT et LPD3DTEXTURE8
    Par Magus (Dave) dans le forum DirectX
    Réponses: 3
    Dernier message: 03/08/2002, 11h10
  2. Problème avec [b]struct[/b]
    Par Bouziane Abderraouf dans le forum CORBA
    Réponses: 2
    Dernier message: 17/07/2002, 10h25
  3. Problème avec le type 'Corba::Any_out'
    Par Steven dans le forum CORBA
    Réponses: 2
    Dernier message: 14/07/2002, 18h48
  4. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 16h10

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