Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access
Access Forum d'entraide sur Microsoft Access. Avant de poster -> La F.A.Q Access
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 29/12/2011, 12h52   #1
Futur Membre du Club
 
Homme Rémi
Développeur informatique
Inscription : octobre 2011
Messages : 28
Détails du profil
Informations personnelles :
Nom : Homme Rémi
Localisation : France, Haute Vienne (Limousin)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : octobre 2011
Messages : 28
Points : 15
Points : 15
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 :
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 :
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
chneu87 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/12/2011, 13h22   #2
Rédacteur/Modérateur
 
Avatar de GAYOT
 
Homme Jean-Damien GAYOT
Inscription : novembre 2004
Messages : 2 076
Détails du profil
Informations personnelles :
Nom : Homme Jean-Damien GAYOT
Âge : 56
Localisation : France, Meuse (Lorraine)

Informations professionnelles :
Secteur : Distribution

Informations forums :
Inscription : novembre 2004
Messages : 2 076
Points : 4 398
Points : 4 398
Envoyer un message via Skype™ à GAYOT
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 :
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 :
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
__________________
Plus j'avance et plus j'ai l'impression de ne rien savoir. Et comme j'essaie d'aller loin..!!.

Tutoriels sur:http://jdgayot.developpez.com

Pas de sujets techniques par Mp. Sinon
GAYOT est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/12/2011, 14h08   #3
Expert Confirmé
 
Avatar de pc75
 
Inscription : septembre 2004
Messages : 2 805
Détails du profil
Informations personnelles :
Âge : 56
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : septembre 2004
Messages : 2 805
Points : 3 003
Points : 3 003
Bonjour,

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

Si dans ta base tu as :
Citation:
NOM_SOCIETE = Compagnie des îles
Et que l'utilisateur saisi :
Citation:
Cie des iles
Ca passera
__________________
Par principe, je ne réponds pas aux messages URGENT.
Il n'y a pas de choses urgentes, il n'y a que des choses en retard. (un inconnu)
pc75 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/12/2011, 20h00   #4
Futur Membre du Club
 
Homme Rémi
Développeur informatique
Inscription : octobre 2011
Messages : 28
Détails du profil
Informations personnelles :
Nom : Homme Rémi
Localisation : France, Haute Vienne (Limousin)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : octobre 2011
Messages : 28
Points : 15
Points : 15
Merci ça marche impeccable !!!

Merci a vous !!!
chneu87 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h10.


 
 
 
 
Partenaires

Hébergement Web