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 :

Probleme sur le code "Verification des Table dans une base Access


Sujet :

VBA Access

  1. #1
    Membre à l'essai
    Inscrit en
    Janvier 2011
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 27
    Points : 19
    Points
    19
    Par défaut Probleme sur le code "Verification des Table dans une base Access
    Bonjour

    J'aurais besoin de votre aide, je voulais faire un teste pour savoir si ma table X est disponible dans ma base Access, et j’ai trouvé un code que j’ai modifié pour l’adapter à mon projet et j’ai le code ci dessous

    --------------------------------------------------------------
    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 TableExist(strTable As String) As Boolean
     
     
        Dim db As DAO.Database
     
           Set db = DBEngine.OpenDatabase("myBaseAccess.mdb")
     
     
     
            TableExist = False
            For Each tdf In db.TableDefs
                If tdf.Name = strTable Then TableExist = True: Exit For
            Next
       db.Close
     
    End Function
    -----------------------------------------------

    J’ai fais une présentation vendredi, et tous fonctionne correctement, et aujourd’hui j’ai un message d’erreur "erreur d'execution '3001' argument non Valide." sur la ligne « For Each tdf In db.TableDefs » et je n’arrive pas à trouver une solution

  2. #2
    Membre confirmé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Février 2013
    Messages
    328
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2013
    Messages : 328
    Points : 477
    Points
    477
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Dim TDf As DAO.TableDef
    la definition de Tdf ??

  3. #3
    Membre à l'essai
    Inscrit en
    Janvier 2011
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 27
    Points : 19
    Points
    19
    Par défaut
    bonjour
    merci pour ton aide, j'ai ajouté la ligne dans on code et j'ai toujours le même problème, le meme message d'erreur, et qd je positionne la sourie sur la variable je l'information suivant " tdf = Nothing"




    Citation Envoyé par james68 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Dim TDf As DAO.TableDef
    la definition de Tdf ??

  4. #4
    Membre confirmé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Février 2013
    Messages
    328
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2013
    Messages : 328
    Points : 477
    Points
    477
    Par défaut
    as tu dimensionné StrTable ?
    si je fais tourner ton code modifié chez moi ca fonctionne..
    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
     
    Public Function TableExist() As Boolean
     
    Dim strtable As String
    Dim db As DAO.Database
    Dim Tdf As DAO.TableDef
    Set db = CurrentDb
     
     
     
    'TableExist = False
    For Each Tdf In db.TableDefs
    If Tdf.Name = strtable Then TableExist = True: Exit For
    Next
    db.Close
     
    End Function

  5. #5
    Membre à l'essai
    Inscrit en
    Janvier 2011
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 27
    Points : 19
    Points
    19
    Par défaut
    Je ne comprends pas ce que tu veux dire par : "as tu dimensionné StrTable ?"

    et je viens de faire le test et j'ai toujours le même problème, est-il possible que une MAJ de Windows puisse impacter le programme ?

  6. #6
    Membre confirmé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Février 2013
    Messages
    328
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2013
    Messages : 328
    Points : 477
    Points
    477
    Par défaut
    Copie le code tel qu'il est ci dessus.
    mets lui un autre nom de fonction.
    mets un point d'arret sur une des premiere ligne.
    lance en mode pas a pas ( play et apres F8 )
    qu'est ce que ca dit ?
    ++

  7. #7
    Membre à l'essai
    Inscrit en
    Janvier 2011
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 27
    Points : 19
    Points
    19
    Par défaut
    je partage avec toi le partie debogageNom : Erreur.png
Affichages : 149
Taille : 41,1 Ko

    Citation Envoyé par simo22 Voir le message
    je ne comprend pas ce que tu veux dire par :"as tu dimensionné StrTable ?"

    et je viens de faire le teste et j'ai toujours le même problème, est il possible que une MAJ de Windows puisse impacte le programme ?
    Nom : Capture.PNG
Affichages : 105
Taille : 4,1 KoNom : Erreur.png
Affichages : 149
Taille : 41,1 Ko

  8. #8
    Membre confirmé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Février 2013
    Messages
    328
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2013
    Messages : 328
    Points : 477
    Points
    477
    Par défaut
    et au niveau Référence tout est OK ?

  9. #9
    Membre confirmé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Février 2013
    Messages
    328
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2013
    Messages : 328
    Points : 477
    Points
    477
    Par défaut
    Nom : Sans titre.jpg
Affichages : 145
Taille : 124,5 Ko

  10. #10
    Membre confirmé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Février 2013
    Messages
    328
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2013
    Messages : 328
    Points : 477
    Points
    477
    Par défaut
    petite precision , je suis encore sous 2000 dans cet environement...

  11. #11
    Membre à l'essai
    Inscrit en
    Janvier 2011
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 27
    Points : 19
    Points
    19
    Par défaut
    Citation Envoyé par james68 Voir le message
    et au niveau Référence tout est OK ?
    le probleme est sur le ligne For Each
    je ne n'ai pas de solution, et le probleme et que vendredi le meme code fonctionné correctement, la sur modification que j'ai apporte aujourd'hui est sur la requette Access j'ai modifie Compte par Somme pour le regroupement de resultat

  12. #12
    Membre confirmé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Février 2013
    Messages
    328
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2013
    Messages : 328
    Points : 477
    Points
    477
    Par défaut
    je viens de faire le test chez moi avec DBEngine.OpenDatabase sur une base distante
    ca fonctionne parfaitement.

  13. #13
    Membre confirmé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Février 2013
    Messages
    328
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2013
    Messages : 328
    Points : 477
    Points
    477
    Par défaut
    Si les references sont Ok essaie de voir en compilant dans prog.
    ++

  14. #14
    Membre à l'essai
    Inscrit en
    Janvier 2011
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 27
    Points : 19
    Points
    19
    Par défaut
    oui effectivement, jusqua Vendredi sa marché, et j'ai mm fais une demo à la direction et c bons aujourd'hui je devais passer a la phase deploiment et finalisation, et la je me retrouve avec le probleme, j'ai mm pas touche au code depuis Vendredi. et j'ai verifier la biblo (Microsoft DAO 3.6 ...) elle n'ai pas cocher et qd je la coche j'ai un message





    Nom : Capture2.PNG
Affichages : 131
Taille : 5,3 KoNom : Capture2.PNG
Affichages : 131
Taille : 5,3 Ko

    Citation Envoyé par james68 Voir le message
    Si les references sont Ok essaie de voir en compilant dans prog.
    ++

  15. #15
    Invité
    Invité(e)
    Par défaut
    Bonjour

    N'as-tu pas déclaré ta fonction 2 fois dans, où ta variable Tdf en serait pas déclaré en public autre part ?

    Philippe

  16. #16
    Membre à l'essai
    Inscrit en
    Janvier 2011
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 27
    Points : 19
    Points
    19
    Par défaut
    non pas de double déclaration, je viens de relire tous le code pour vérification


    Citation Envoyé par Philippe JOCHMANS Voir le message
    Bonjour

    N'as-tu pas déclaré ta fonction 2 fois dans, où ta variable Tdf en serait pas déclaré en public autre part ?

    Philippe

  17. #17
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour,

    juste une idee, essaye de remonter la reference de DOA au dessus de ADO (ActiveX Data Object).
    Et si tu ne te sers pas d'ADO, decohe la carement.

    Aussi tu voudras peut-etre repartir d'une BD vierge et y importer tous les elements.
    Ca aide generalement avec le bugs etranges.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

Discussions similaires

  1. Enregister des données sur deux tables dans une base Access
    Par aziz-be dans le forum Débuter avec Java
    Réponses: 1
    Dernier message: 23/09/2012, 11h46
  2. Lister les noms des tables d'une base access
    Par chefinf dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 10/07/2008, 18h34
  3. Réponses: 2
    Dernier message: 27/06/2007, 13h48
  4. Réponses: 2
    Dernier message: 04/05/2007, 15h13
  5. insérer des tables dans une base de données oracle
    Par Spacy_green dans le forum Oracle
    Réponses: 3
    Dernier message: 16/03/2007, 11h23

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