2011-09-06 1 views
0

Je souhaite créer une base de données de produits dans laquelle chaque produit peut avoir plusieurs couleurs. Je voulais savoir s'il est possible de créer un formulaire qui permet à l'utilisateur d'entrer le Product Name, Colour One, Colour Two, et Colour Three, mais seulement d'ajouter l'enregistrement si ce produit n'existe pas déjà (peut-être un bouton «ajouter vente»?). S'il existe déjà, il doit incrémenter un champ particulier dans la table UnitsSold. (Lorsque le premier enregistrement est créé, le champ UnitsSold serait 1).Ajout automatique d'entrées de base de données dans Access

Essentiellement, il s'agit d'enregistrer les ventes de produits personnalisés qui peuvent avoir différentes combinaisons de couleurs. J'ai essayé de faire cela par moi-même, mais chaque fois que j'ai ajouté un produit avec les mêmes détails, il a juste ajouté un autre enregistrement individuel (défiant le point de la DB). La seule raison pour laquelle je veux cette fonctionnalité est que l'utilisateur n'a pas à chercher dans ce qui va devenir une liste extrêmement longue d'enregistrements alambiqués juste pour incrémenter le champ UnitsSold par 1 quand ils font une vente!

+0

Je suis sûr que vous pouvez créer une macro qui automatise le processus de recherche. Vous pouvez compter le nombre de lignes correspondant à vos critères (combinaisons produit + couleur) et si votre compte est nul, passez à l'étape suivante et faites l'insertion, sinon arrêtez. Les macros de My Access sont un peu rouillées, mais si vous ne pouvez pas le faire facilement avec une macro, vous pouvez le faire avec une macro qui appelle une fonction de module. –

+0

Si vous dites à quelle version d'accès travaillez-vous, je pourrais peut-être vous aider. L'idée générale est de commander les couleurs par son identifiant (nom quelque soit le nom) avant d'insérer une nouvelle ligne de sorte que vous n'obtiendrez pas de combinaisons de couleurs (rouge bleu vert, vert rouge bleu, bleu rouge vert). Ensuite, si un tel enregistrement existe, incrémentez UnitsSold dans les autres cas, insérez simplement une nouvelle ligne. – Silx

+0

@Remou Vous avez raison, désolé. Je réparais d'autres parties et je pensais juste que je changerais le reste, tout en ne prêtant pas attention à votre propre réponse ci-dessous. Mes excuses. – Gaffi

Répondre

1

Vous pouvez utiliser instr, je pense:

sSQL = "SELECT * FROM Table As t " _ 
    & "WHERE Instr(t.Colour1 & "," & t.Colour2 & "," t.Colour3," & Me.Colour1 & ") > 0 " _ 
    & "AND Instr(t.Colour1 & "," & t.Colour2 & "," t.Colour3," & Me.Colour2 & ") > 0 " _ 
    & "AND Instr(t.Colour1 & "," & t.Colour2 & "," t.Colour3," & Me.Colour3 & ") > 0 " 

Cependant, je ne pense pas que vos produits peuvent avoir un nombre infini de couleurs, de sorte que vous pouvez stocker une liste de couleurs possibles avec RGB ou tel comme cela permettra de déterminer l'ordre des couleurs.

Questions connexes