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 :

VBA et SQL avec access chercher une valeur [AC-2002]


Sujet :

Access

  1. #1
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2011
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2011
    Messages : 37
    Par défaut VBA et SQL avec access chercher une valeur
    Bonjour,

    J'ai réaliser, en vba, suite à un click sur un bouton un programme qui permet l'ajout d'une societe à une table societe ( avec un clé primaire auto-incrémenté)

    Ca marche parfaitement mais j'aimerai rechercher si cette societe n'existe pas déja dans ma table ? es possible ? si oui en vba, avec une requete ou les deux ?

    Voila ce que sa donne :

    VBA
    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
     
    Private Sub commande6_click()
      Dim qdf As querydef
      Dim qbs As Database
     
      Set dbs = currentDb
      Set qdf = dbs.Querydefs('R_Ajout_Societe')  // Ma requete
     
      If isnull (me.texte7)then  // ma texte box ou l'on saisi le nom de la societe
        msgbox("entrez un nom de societe")
      else : 
        qdf.parameters("Name").Value = Me.texte7
        qdf.Execute
        msgbox("réussi")
      End If
    End Sub
    en SQL:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    insert into T_societe(NOM_SOCIETE)
    select [Name] As Expr1;
    Ce programme marche, mais ou et comment devrais je rajouter la fonction qui me permet de voire si la societe créé n'existe pas déja ?

    Merci d'avance !!
    Bye

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour
    Il y a plusieurs façons de faire.
    Tu peux peut être déjà dans la table empêcher les doublons dans le champ concerné.

    Sinon tu peux aussi créer une 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
    18
    19
    20
    21
    22
    Public Function Exist_Societe(ByVal StrNomSociete As String) As Boolean
     
        Dim oDb As DAO.Database
        Dim oRst As DAO.Recordset
        Dim StrSql As String
     
    StrSql = "Select NOM_SOCIETE From T_Societe Where NOM_SOCIETE Like '" & StrNomSociete & "'"
    Set oDb = CurrentDb
        Set oRst = oDb.OpenRecordset(StrSql, dbOpenSnapshot)
     
        If Not oRst.EOF Then
            Exist_Societe = True
        Else
            Exist_Societe = False
        End If
     
        oRst.Close
        oDb.Close
        Set oDb = Nothing
        Set oRst = Nothing
     
    End Function
    Après il faudra appeler la fonction en modifiant ton code de base de cette sorte:
    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
    20
    Private Sub commande6_click()
        Dim qdf As QueryDef
        Dim qbs As Database
     
        Set qbs = CurrentDb
        Set qdf = qbs.QueryDefs("R_Ajout_Societe")  'Ma requete
     
        If IsNull(Me.Texte7) Then  ' ma texte box ou l'on saisi le nom de la societe
            MsgBox ("entrez un nom de societe")
        Else:
            If Exist_Societe(Me.Texte7.Value) = True Then
                MsgBox "La société existe déjà"
            Else
                qdf.Parameters("Name").Value = Me.Texte7
                qdf.Execute
                MsgBox ("réussi")
            End If
        End If
     
    End Sub
    A vérifier et à adapter
    Dernière modification par Invité ; 29/12/2011 à 14h59.

  3. #3
    Membre Expert
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Par défaut
    Bonjour,

    Il faut être conscient qu'il y aura des "loupés".

    Si dans ta base tu as :
    NOM_SOCIETE = Compagnie des îles
    Et que l'utilisateur saisi :
    Cie des iles
    Ca passera

  4. #4
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2011
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2011
    Messages : 37
    Par défaut
    Merci ça marche impeccable !!!

    Merci a vous !!!

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 30/04/2015, 21h06
  2. [MooTools] Aller chercher une valeur avec mootools
    Par zenka dans le forum Bibliothèques & Frameworks
    Réponses: 1
    Dernier message: 30/07/2010, 10h57
  3. Chercher une valeur dans table Access
    Par PC81 dans le forum VBA Access
    Réponses: 2
    Dernier message: 11/04/2008, 08h21
  4. Réponses: 3
    Dernier message: 21/01/2008, 11h55
  5. [Excel/VBA] Requete SQL avec clause sur une suite de Cellule
    Par Myogtha dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 21/02/2007, 17h36

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