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 :

Existance d'un champ dans une table


Sujet :

Access

  1. #1
    Membre à l'essai
    Inscrit en
    Juin 2003
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 13
    Points : 14
    Points
    14
    Par défaut Existance d'un champ dans une table
    Bonjour,

    Je suis en train d'écrire un script vba dans une base Access. Celle-ci comporte 2 tables, qui sont identiques à 2/3 champs prêt.

    Je dois réaliser la opération sur ces tables. Pour éviter d'écrire 2 fois la routine ADO, je voulais savoir si il est possible de tester l'existance d'un champ.

    L'idée est de tester l'existance d'un champ, dans le recordset.
    Si il existe je peux lui affecter la valeur.
    Sinon je ne fais rien.

    J'ai essayé isnull, is nothing, ismissing, .. mais l'erreur retournée est toujours "impossible de trouver l'objet dans la collection" (ce qui est normal vu qu'elle n'existe pas).

    Auriez-vous des idées ? une fonction, un argument qui m'aurait échapé.

    Merci

    Aurélien

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Localisation : Sénégal

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 229
    Points : 1 579
    Points
    1 579
    Par défaut
    Tu peux utiliser For Each ... next pour parcourir et tester les champs de ta table.
    Amicalement

  3. #3
    Membre expert
    Avatar de mout1234
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 2 210
    Points : 3 228
    Points
    3 228
    Par défaut
    Pourquoi ne pas intercepter l'erreur... ?
    ............................................................................................

    Dans l'intérêt de tous, ne posez pas de questions techniques par messages privés.

  4. #4
    Membre chevronné
    Inscrit en
    Août 2006
    Messages
    1 588
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 1 588
    Points : 2 178
    Points
    2 178
    Par défaut
    Une solution :

    Le test
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     If ExisteChamp("table3","champ7") Then
      ...
     EndIf
    le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Function ExisteChamp(NomTable As String, NomChamp As String) As Boolean
     Dim i As Long
     ExisteChamp = False
     For i = 0 To CurrentDb.TableDefs(NomTable).Fields.Count - 1
      If CurrentDb.TableDefs(NomTable).Fields(i).Name = NomChamp Then ExisteChamp = True: Exit For
     Next i
    End Function

  5. #5
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Localisation : Sénégal

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 229
    Points : 1 579
    Points
    1 579
    Par défaut
    Citation Envoyé par mout1234
    Pourquoi ne pas intercepter l'erreur... ?
    C'est bien une idée. Il faut juste être sure que l'erreur en question soit spéficique à l'inexistance de champs dans la table.
    Amicalement

  6. #6
    Membre à l'essai
    Inscrit en
    Juin 2003
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 13
    Points : 14
    Points
    14
    Par défaut
    Merci pour vos réponses.
    OK helas, c'est bien vers quoi je m'orientais ...
    Mais bon j'avais espoir qu'il existe un arguement qui le fasse déjà !! (enfin)

    A++ merci.

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 09/08/2010, 14h38
  2. Tester l'existence d'un champ dans une table
    Par Raphael_74 dans le forum WebDev
    Réponses: 1
    Dernier message: 29/02/2008, 15h58
  3. ajouter un champ dans une table existant
    Par zidenne dans le forum Bases de données
    Réponses: 3
    Dernier message: 29/10/2005, 21h27
  4. Tester l'existence d'un champ dans une table
    Par Oluha dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 05/09/2005, 11h19

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