Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > Requêtes et SQL.
Requêtes et SQL. Tout ce qui concerne vos questions sur les requêtes et le SQL sous Access se trouve ici.
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 09/06/2011, 14h43   #1
Invité régulier
 
Homme Thibaut
Étudiant
Inscription : juin 2011
Messages : 7
Détails du profil
Informations personnelles :
Nom : Homme Thibaut
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2011
Messages : 7
Points : 5
Points : 5
Par défaut Empécher l'ajout de de doublon dans une table

Bonjour à tous,

J'ai une table intermédiaire "stockage" :
idStockage: auto incrémentation
nomProduit: Texte
nomEmplacement: Texte

Les noms emplacements et les noms produits sont dans deux autre tables.
Lorsque j'ajoute une valeur dans stockage, je peux évidement ajouter plusieurs fois la combinaison de produit/emplacement à cause de mon premier champ qui est un auto incrémentation.

Quel test je peux faire (en SQL ou en VBA) pour empêcher l'ajout de doublon et prévenir l'utilisateur que cette combinaison existe déjà ?

ma requête en SQL:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
Private Sub boutonStock_Click()
    Dim Val1 As String
    Dim Val2 As String
    Dim SQL_Text As String
 
    Val1 = Me.txtGestionProduitStockerUtilier
    Val2 = Me.txtGestionProduitEmplStock
 
    SQL_Text = "INSERT INTO stockage (nomProduit, nomEmpl) VALUES ('" & Val1 & "','" & Val2 & "');"
 
    DoCmd.RunSQL SQL_Text
End Sub
Elle fonctionne très bien plusieurs foi de suite et avec les même valeurs ^^

Merci pour votre aide
Tengu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/06/2011, 15h22   #2
Expert Confirmé
 
Avatar de Richard_35
 
Homme
Inscription : juillet 2007
Messages : 2 176
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : juillet 2007
Messages : 2 176
Points : 2 805
Points : 2 805
Bonjour Tengu,

Le mieux, d'un point de vue conception, est de créer un index unique composé de nomProduit et nomEmplacement. De cette manière, tu interviens en amont "extrême" : tu ne pourras pas saisir de doublon, même dans la table elle-même (onglet Table).

Ensuite, tu peux intercepter l'erreur dans ton code (mais je ne connais pas VBA).

En mode "création" de ta table, le bouton avec un "éclair" te permet de gérer les index.
__________________
Dis-nous et à bientôt,
Richard.
----------------------------------------------------------------------------------------------
En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
Richard_35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/06/2011, 11h45   #3
Invité régulier
 
Homme Thibaut
Étudiant
Inscription : juin 2011
Messages : 7
Détails du profil
Informations personnelles :
Nom : Homme Thibaut
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2011
Messages : 7
Points : 5
Points : 5
Oui descendre au niveau conceptuel est la meilleur solution, le VBA m'aurais sauvé certainement mais trop de calcul.... tue Access

Merci pour l'aide
Tengu 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 15h54.


 
 
 
 
Partenaires

Hébergement Web