Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

creation automatique mais limitee d'enregistrements

1 réponse
Avatar
filnigeria
Bonjour,

Mes clients viennent reserver des conteneurs pour ensuite les remplir de
marchandises.

Chaque conteneur dispose d'un numero unique.

Chaque reservation fait l'objet d'un numero "NUMERO DE RESERVATION" qui est
un numero unique.

J'ai donc une table "RESERVATIONS" contenant 3 champs: "NUMERO DE
RESERVATION", le nom du "CLIENT" correspondant ainsi que la "QUANTITE" de
conteneurs qu'il a reserve.

Une fois que le client vient chercher les conteneurs qu'il a reserve, je
souhaite avoir une table "LIVRAISONS" ou figure le "NUMERO DE RESERVATION"
et ou je peux entrer les numeros des "CONTENEURS" que le client est venu
chercher. Il est toutefois necessaire que je puisse limiter le nombre de
conteneurs enregistres dans cette seconde table en fonction de la "QUANTITE"
qui a ete reservee puisque je ne veux pas que mon client prenne plus de
conteneurs que ce qu'il a paye pour.

Je veux aborder le probleme en creant automatiquement le nombre
d'enregistrements dans la table "LIVRAISONS" correspondants a la "QUANTITE"
entree dans la table "RESERVATIONS"

Exemple:

Je cree un reservation RESA001 dans la table "RESERVATIONS" pour une
quantite de 5 conteneurs et automatiquement 5 enregistrements sont crees
dans ma table "LIVRAISONS".

Merci a ceux qui voudront bien me repondre. ;-)

1 réponse

Avatar
Michel Walsh
Salut,



Avec Jet 4, on peut limiter le nombre d'enregistrements avec une contrainte
CHECK:


CurrentProject.Connection.Execute "ALTER TABLE livraisons ADD CONSTRAINT
limiteDeLivraisions CHECK( (SELECT COUNT(*) FROM livraisions As b WHERE
b.reservationID=reservationID) <= (SELECT quantite FROM Reservations As r
WHERE r.reservationID=reservationID) )"


Attention, je n'ai pas testé.

Il faut passer par du code, dans la fenêtre d'exécution immédiate (debug),
cela ne fonctionnerait pas dans le designer de requête.

À chaque fois qu'un enregistrement est ajouté, ou modifié, l'énoncé dans le
CHECK est évalué. S'il retourne vrai, l'ajout, ou la modification est
acceptée. Ici, je retrouve le nombre d'enregistrement pour le reservationID
actuellement considéré, dans la table livraisions, versus le quantité qui
est marquée, dans la table reservations.

On peut enlever la contrainte avec un ALTER DROP:

CurrentProject.Connection.Execute "ALTER TABLE livraisons DROP CONSTRAINT
limiteDeLivraisons"


Il n'y a pas d'interface utilisateur permettant de "voir" les contraintes
CHECK applicables (à moins d'espionner les tables du système).



Espérant être utile,
Vanderghast, Access MVP


"filnigeria" wrote in message
news:
Bonjour,

Mes clients viennent reserver des conteneurs pour ensuite les remplir de
marchandises.

Chaque conteneur dispose d'un numero unique.

Chaque reservation fait l'objet d'un numero "NUMERO DE RESERVATION" qui
est

un numero unique.

J'ai donc une table "RESERVATIONS" contenant 3 champs: "NUMERO DE
RESERVATION", le nom du "CLIENT" correspondant ainsi que la "QUANTITE" de
conteneurs qu'il a reserve.

Une fois que le client vient chercher les conteneurs qu'il a reserve, je
souhaite avoir une table "LIVRAISONS" ou figure le "NUMERO DE RESERVATION"
et ou je peux entrer les numeros des "CONTENEURS" que le client est venu
chercher. Il est toutefois necessaire que je puisse limiter le nombre de
conteneurs enregistres dans cette seconde table en fonction de la
"QUANTITE"

qui a ete reservee puisque je ne veux pas que mon client prenne plus de
conteneurs que ce qu'il a paye pour.

Je veux aborder le probleme en creant automatiquement le nombre
d'enregistrements dans la table "LIVRAISONS" correspondants a la
"QUANTITE"

entree dans la table "RESERVATIONS"

Exemple:

Je cree un reservation RESA001 dans la table "RESERVATIONS" pour une
quantite de 5 conteneurs et automatiquement 5 enregistrements sont crees
dans ma table "LIVRAISONS".

Merci a ceux qui voudront bien me repondre. ;-)