Requête VBA sur clique dans un formulaire [Résolu]

Signaler
-
 pjpledger -
Bonjour,

Actuellement je réalise une "application" Access pour la gestion de réservation de véhicules sur différentes plages horaires.

Pour ce faire, j'ai créer une table Voiture ainsi qu'une table Réservation qui contient un champ "date_depart", "plage horaire" qui est une liste déroulante à choix multiple : 8-10h, 10-12h etc...

J'ai mis un index pour que si l'on réserve une voiture à la même date et la même plage, l'ajout est impossible.

Seulement si l'on met la même plage cela ne marche pas, mais si l'on met la même plage et qu'on en rajoute une l'ajout est possible.

J'aimerai donc dans on formulaire de réservation mettre un code qui vérifie que la voiture n'est pas disponible sur cette plage horaire. Le petit HIC c'est que je ne m'y connais pas du tout en VBA et je ne sais pas du tout par où commencer.

Merci d'avance pour votre aide

Ps : si il y en a que ca intéresse voici ma bdd actuelle :https://docs.google.com/file/d/0B1vG8clthGrqSEZaZVVqZVhKZ3M/edit

9 réponses

Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
70
N'ayant qu'un descriptif sommaire de ton appli, c'est difficile de te répondre efficacement.

Si tu as une "liste déroulante à choix multiple", il faut que tu arrives à synthétiser l'heure de début et l'heure de fin globale, qui, combinés à la date, te fourniront une date/heure de début et une date/heure de fin.
Ensuite, il faudra rapprocher ces dates de celles stockées dans tes fiches pour savoir si ces créneaux horaires sont en collision avec d'autres date/heure.
Pour faire des comparaisons de dates, utilise DateDiff et DateAdd.
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
70
Salut

Catégorie modifiée .Net -> VBA

"J'ai mis un index pour que si l'on réserve une voiture à la même date et la même plage, l'ajout est impossible."
Il n'y a que toi qui puisse comprendre.
Un index ? C'est quoi, pour toi ?
Et en quoi cela peut-il verrouiller ton choix ?

"mais si l'on met la même plage et qu'on en rajoute une l'ajout est possible."
On rajoute une ?

Perso, par sécurité, je ne chargerai pas de macro.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on le partage (Socrate)
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
70
"mais si l'on met la même plage et qu'on en rajoute une l'ajout est possible."
Excuses, c'est moi qui ait mal lu.
Tout dépend quelle requete de test tu as utilisé.
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
232
Bonjour,
Perso, par sécurité, je ne chargerai pas de macro.

Moi non plus. (en en plus : un .rar !)
On est par ailleurs ici sur un forum. Ce qui veut dire que toute difficulté exposée et éventuellement résolue doit pouvoir, y compris des années après, être suivie par d'autres forumeurs face à la même difficulté. Ce ne sera certes pas possible avec un fichier déposé quelque part et susceptible de disparaître à tout moment.

Si tes tenants et aboutissants sont clairs dans ton esprit :
- tu ne dois avoir aucune difficulté à les exposer de manière technique, avec précision, concision et clarté
- il te faut montrer ici la partie (et seulement celle-là) du code que tu as écrit et qui présente difficulté

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
Bonjour jack,

Tout d'abord merci de prêter attention à ma demande et pour les conseils que tu me donne par rapport à la Macro.

Pour les index du fait que ça ne fonctionne pas je l'ai enlevé. Ce que je souhaiterai c'est tout simplement que lorsque on ajoute une réservation, si mon véhicule a déjà était réservé sur une plage horaire, que l'on ne puisse pas ajouté l'enregistrement.

Mais j'avoue que je suis totalement perdu et que je ne sais pas comment m'y prendre.


Ps : J'espère m'être mieux exprimé que lors de mon premier message
Je tiens à préciser que je n'ai pas mis de code à disposition car je ne sais absolument pas par où commencer.
Merci jack, merci pour tes conseils et en effet j'ai remplacé les plages de réservation par Date et heure de départ ainsi que date et heure de retour.

Si je comprend bien, j'ai mis un bouton qui devra vérifier si l'enregistrement est valide, je suppose que je dois faire sa avec un Code Vba, je le commence et je tiens au courrant du code que j'aurais tenter de mettre en place.

Cordialement
Actuellement voici le Code VBA que j'aimerais mettre en place ( étant un débutant totale je ne sais pas du tout comment mettre sa en place):

Private Sub Réserver_Click()
Dim Nombre As Long, Boucle As Long, Limite As Long

Select Voiture_libelle_reservation ( Formulaire )

if Date départ( Formulaire ) >= Date départ ( dans la table par rapport à la voiture sélectionnée )
and Date retrou ( Formulaire )<= Date retroue  ( dans la table par rapport à la voiture sélectionnée )

Else
MsgBox ("Véhicule deja réserver pour cette date")

End Sub


J'ai conscience que du boulot reste à faire et j'y travail, si vous avez des idées ou des conseils je vous en remercie d'avance
Actuelement j'en suis la:
Private Sub Réserver_Click()

If Date___heure_de_départ_Click >= Date___heure_de_départ And Date___Heure_de_retour_Click <= Date___Heure_de_retour Then
MsgBox ("Véhicule deja réserver pour cette date")

End Sub