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 :

Savoir si une requète renvoie une valeur ou non


Sujet :

VBA Access

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 20
    Points : 13
    Points
    13
    Par défaut Savoir si une requète renvoie une valeur ou non
    Bonjour,

    Je voudrais savoir comment faire pour savoir si ma requete renvoie un enregistrement ou si elle ne renvoie rien...Je voudrais utiliser cela pour eviter les doublons lors d'insertion via un formulaire.

    J'ai cherché sur le net mais j'ai rien trouvé...
    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
    19
    Dim erreur, Societe, sql As String
    Dim ID_Fournisseur As Integer
    Dim oRst As DAO.Recordset
    Dim oDb As DAO.Database
     
     
    Sociéte = Me.txtNomSociéte
     
     
    Set oDb = CurrentDb
    sql = "SELECT ID_Fournisseur FROM tbl_Fournisseurs where NomDeLaSociété = '" & Sociéte & "' ;"
    Set oRst = oDb.OpenRecordset(sql, dbOpenDynaset)
    'If IsNull(oRst.Fields(0).Value) Then
    orst.MoveFirst    
        If Not (oRst.EOF) Then
           erreur = MsgBox("La sociéte " & Sociéte & " est deja présente dans la base, vous ne pouvez l'ajouter une deuxiéme fois", vbCritical, "Doublon")
            Exit Sub
        End If
    'End If
    j'ai essayé plusieur choses mais je n'arrive pas à trouver la solution.Lorsque je rentre une sociéte qui existe deja le message d'erreur s'affiche mais lorsque j'essaie d'entrer une sociéte qui n'existe pas j'ai l'erreur 3021 'Aucun enregistrement en cours' qui se lance.

    Merci de vos réponses !!

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 101
    Points : 96
    Points
    96
    Par défaut
    pour faire un check (vu dans la FAQ)

    tu peux compter le nombre de champ correspondant à ta requete donc dans ton cas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    nb = DCount("*","tbl_Fournisseurs","[NomDeLaSociété] = '" & Me.txtNomSociéte & "'" )) 
    if nb >0 then
        me.undo
       .......
    else
     
     
    end
    le test doit etre fait dans le controle évenement beforeupdate

    Petite remarque banni les é et è de ton code.

  3. #3
    Membre éprouvé Avatar de azertix
    Homme Profil pro
    Technicien d'assistance informatique
    Inscrit en
    Juin 2007
    Messages
    958
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien d'assistance informatique

    Informations forums :
    Inscription : Juin 2007
    Messages : 958
    Points : 937
    Points
    937
    Par défaut
    Salut, je pense que ça peut marcher comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    maRequete = "SELECT * FROM MaTable;"
    Set req = dbs.CreateQueryDef("", maRequete) 
    req.OpenRecordset 
     
    If IsNull(req) Then 
         'La requete n'a rien retourné
    Else
         'La requete a retourné quelque chose
    End If
    Sinon, je pense que trouveras ta réponse ici :
    http://www.developpez.net/forums/arc.../t-395363.html

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 20
    Points : 13
    Points
    13
    Par défaut
    Merci !

    j'ai utiliser la fonction count dans ma requete SQL et cela fonctionne parfaitement !


  5. #5
    Membre éprouvé Avatar de azertix
    Homme Profil pro
    Technicien d'assistance informatique
    Inscrit en
    Juin 2007
    Messages
    958
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien d'assistance informatique

    Informations forums :
    Inscription : Juin 2007
    Messages : 958
    Points : 937
    Points
    937
    Par défaut
    Avec plaisir
    Content de voir ton problème résolu

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

Discussions similaires

  1. Remplacer une requête sur une class par une valeur constante ?
    Par Lillie CHARLOTTE dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 02/06/2015, 09h59
  2. [AC-2003] Renommer une colonne d'une requête avec la valeur d'un champ
    Par constalp dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 11/08/2010, 12h03
  3. Réponses: 2
    Dernier message: 02/06/2006, 11h26
  4. Réponses: 4
    Dernier message: 01/12/2005, 14h36
  5. Réponses: 5
    Dernier message: 07/11/2005, 15h38

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