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 :

[VBA]Pb Dcount - Nom d'une table dans une variable


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mai 2005
    Messages
    25
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mai 2005
    Messages : 25
    Par défaut [VBA]Pb Dcount - Nom d'une table dans une variable
    Bonjour ou rebonjour,

    J'ai a nouveau un petit problème.
    J'utilise la fonction Dcount pour vérifier si un sujet existe deja dans ma base. Or, dans le code ci-dessous, je demande a access de verifier si mon individu existe dans la table TEdinburgh.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    doublon = DCount("*", "TEdinburgh", "[NumSujet]=" & Num)
    Or, je voudrais passer par une variable et non directement par le nom de ma table, ce qui donnerait un truc du genre (sachant que variable à au préalable recu le nom de la table) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    doublon = DCount("*", variable, "[NumSujet]=" & Num)
    Merci d'avance.

    @+

  2. #2
    pgz
    pgz est déconnecté
    Expert confirmé Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Par défaut
    Bonjour.

    Si variable contient une chaîne de caractères représentant le nom d'une table, alors j'essaierais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim db as DAO.Database
    ...
    set db = Application.CurrentDb
    ...
    doublon = DCount("*",db.Tabledefs(variable).Name, "[NumSujet]=" & Num)
    Bon courage,

    PGZ

  3. #3
    Membre averti
    Inscrit en
    Mai 2005
    Messages
    25
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mai 2005
    Messages : 25
    Par défaut
    Salut,

    Tout d'abord merci de ta rapidité.
    Je viens de tester et il me met une erreur de compilation : Type défini par l'utilisateur non défini en me surlignant le declaration de varaible. Tu as une idée d'ou cela peut venir?

    @+

  4. #4
    pgz
    pgz est déconnecté
    Expert confirmé Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Par défaut
    Re.

    cela pourrait être dû à l'absence d'une bibliothèque.
    Sous éditeur VBA, menu Outils/Référence vérifier que
    Microsoft DAO i.j Object library (i.j sont des entiers identifiant la version)
    soit bien coché.

    Si ce n'est pas cela ...

    PGZ

  5. #5
    Membre Expert
    Inscrit en
    Août 2006
    Messages
    1 588
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 1 588
    Par défaut
    Texte ou nombre ?

    Une petite fonction
    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
     
     
    Sub UneFonction
     
     doublon = nb("TEdinburgh","NomSujet",Num)
     
    End Sub
     
    Function nb(NomTable As String, NomChamp As String, valeur As Variant) As Long
     Dim s As String
     On Error GoTo erreur
     If IsNumeric(v) Then s = "[" & NomChamp  & "]=" & valeur  Else s = "[" & NomChamp  & "]='" & valeur  & "'"
     nb = DCount("*", NomTable , s)
     Exit Function
    erreur:
     nb = 0
    End Function
    ou directement

    pour du texte
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    doublon = DCount("*", "TEdinburgh", "[NumSujet]='" & Num & "'")
    pour un nombre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    doublon = DCount("*", "TEdinburgh", "[NumSujet]=" & Num )

  6. #6
    Membre averti
    Inscrit en
    Mai 2005
    Messages
    25
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mai 2005
    Messages : 25
    Par défaut
    Bonjour,

    Tout d'abord merci de vos reponses.
    Pour pgz, je n'ai pas cette librairie, par contre, j'en ai une dont le nom ressemble (Microsoft DAO 3.6 Object Library), j'ai bien essayer de la cocher, malheureusement, ca ne fonctionne pas.

    Pour helas, ce n'est pas au niveau de la valeur du champ que j'ai un soucis, mais au niveau de nom de la table, donc d'apres ce que j'ai compris de ta fonction, elle ne resoud pas mon soucis.

    J'espere cependant qu l'un d'entre vous arrivera a me trouver ce petit bout de code qui me permettra de finir ce petit projet et de passer a autre chose...

    @+

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

Discussions similaires

  1. copier une table d'une BDD dans une table d'une autre BDD
    Par faniette dans le forum C++Builder
    Réponses: 2
    Dernier message: 15/05/2013, 10h17
  2. Réponses: 7
    Dernier message: 25/03/2011, 10h52
  3. [AC-2003] insert des données d'une table dans une table d'une base externe
    Par marieo dans le forum VBA Access
    Réponses: 1
    Dernier message: 30/11/2009, 14h29
  4. Récupérer le nom d'une colonne d'une table dans une variable
    Par mimi51340 dans le forum Général Java
    Réponses: 4
    Dernier message: 13/03/2008, 14h23
  5. Réponses: 2
    Dernier message: 02/06/2006, 11h26

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