Validité de date de réservation automoblie
Résolu
luc731
Messages postés
22
Date d'inscription
Statut
Membre
Dernière intervention
-
luc731 Messages postés 22 Date d'inscription Statut Membre Dernière intervention -
luc731 Messages postés 22 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai créer une base de donnée pour la gestion d'un parc automobile (location automobile).
Dans mon formulaire de réservation j'ai mis les champs suivant: "Id Réservation", "Date Debut", "Date Fin"... (comme dans la capture jointe.
J'aimerai que un véhicule qui représenter dans ce formulaire par le champs "Voiture" qui est ici l'id du véhicule ne puisse pas être réserver si celui à était déjà réserver et qu'il me soit afficher en conséquence message qui me dira que ce véhicule n'est pas libre.
j'imagine qu'il faut entrez une formule dans les champs "Date Debut" et "Date Fin", dans la partie en bas "valide si" et "message erreur si " si vous pourriez m'aider s'il vous plaît, car je n'arrive pas à trouvez de solution.
Merci encore de votre aide.

J'ai créer une base de donnée pour la gestion d'un parc automobile (location automobile).
Dans mon formulaire de réservation j'ai mis les champs suivant: "Id Réservation", "Date Debut", "Date Fin"... (comme dans la capture jointe.
J'aimerai que un véhicule qui représenter dans ce formulaire par le champs "Voiture" qui est ici l'id du véhicule ne puisse pas être réserver si celui à était déjà réserver et qu'il me soit afficher en conséquence message qui me dira que ce véhicule n'est pas libre.
j'imagine qu'il faut entrez une formule dans les champs "Date Debut" et "Date Fin", dans la partie en bas "valide si" et "message erreur si " si vous pourriez m'aider s'il vous plaît, car je n'arrive pas à trouvez de solution.
Merci encore de votre aide.
A voir également:
- Ticket kadéos date dépassée
- Acheter ticket t+ en ligne - Accueil - Guide transports et cartes
- Trouver une date de naissance gratuit - Forum Webmastering
- Police ticket de caisse - Forum Graphisme
- Publipostage date inversée ✓ - Forum Word
- Smartbox validité dépassée - Forum Loisirs / Divertissements
5 réponses
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
bonjour,
dans quel contexte fais-tu ce travail?
ce genre de vérification se fait plutôt avec du code ajouté au formulaire, pas directement dans la définition de la table.
dans quel contexte fais-tu ce travail?
ce genre de vérification se fait plutôt avec du code ajouté au formulaire, pas directement dans la définition de la table.
bonjour,
Je fais ce travail pour une petite société de location que tiens un amis.
Pourriez vous m'aider pour la conception du code ou pourrais -je avoir un quelque chose pour m'aiguiller merci encore.
Je fais ce travail pour une petite société de location que tiens un amis.
Pourriez vous m'aider pour la conception du code ou pourrais -je avoir un quelque chose pour m'aiguiller merci encore.
Pas du tout je débute à peine.
Mais si vous pouvez juste m'aiguillez sur la fonction de base à utiliser pour pouvoir faire la comparaison de mes deux champs dates "date de début" date de fin" en prenant en compte le champs "n° immatriculation".
Merci sa m'aiderait déjà a où chercher.
Mais si vous pouvez juste m'aiguillez sur la fonction de base à utiliser pour pouvoir faire la comparaison de mes deux champs dates "date de début" date de fin" en prenant en compte le champs "n° immatriculation".
Merci sa m'aiderait déjà a où chercher.
Merci de votre réponse.
J'ai fait quelque recherche et j'ai réussi a tomber sur un code que j'ai adapté à ma base .
J'ai créer un formulaire pour rechercher la disponibilité (je voulais déjà essayer avant de le mettre directement dans mon formulaire de réservation".
Alors j'ai creer un formulaire avec deux champs dates qui sont ("txtDateDebut" et "txtDateFin") et un champs nommée "Voiture" (qui renvoie a un champs d'une table ou j'ai toute les N°Immatriculation des différend véhicules. et enfin j'ai fait un bouton qui ce nomme "btnVerifier" qui éxecute les procédures.
J'ai eu quelques petites erreurs que j'ai réussi à corriger mais je bloque sur une qui est vers la fin du code (la où j'ai fait une flèche ).
celle-ci exactement :" ------>If DCount("*", "Réservation", strCritere) > 0 Then".
Il me renvoie un message d'erreur:"Erreur d'exécution 3075 erreur de syntaxe dans l'expression...comme dans la capture d'écran ci-joint.
Pourriez-vous m'aider s'il vous plait à palier à ce problème ?
Merci encore.
Voici le module en entier:
Function DateHeureUS(ByVal dt As Variant)
If IsNull(dt) Then Exit Function
DateHeureUS = "#" & Month(dt) & "/" & Day(dt) & "/" & Year(dt) _
& " " & Format(dt, "hh:nn:ss") & "#"
End Function
' Insertion de valeurs dans une chaîne de caractères
' ---
'
Function StringFormat( _
ByVal strChaine As String, _
ParamArray varValeurs() As Variant) As String
Dim intI As Integer
For intI = LBound(varValeurs) To UBound(varValeurs)
strChaine = Replace(strChaine, "{" & intI & "}", Nz(varValeurs(intI)))
Next
StringFormat = strChaine
End Function
Private Sub btnVerifier_Click()
Dim strSQL As String
Dim strCritere As String
' Vérifier que toutes les infos sont renseignées
If IsNull(Me.txtDateDebut) _
Or IsNull(Me.txtDateFin) _
Or IsNull(Me.Voiture) Then
MsgBox "Toutes les informations doivent être renseignées !", _
vbExclamation
Exit Sub
End If
' Chaîne SQL de base
strSQL = _
"(DatesIntersect({0}, {1}, [Date Debut], [Date Fin]) = True)" _
& " AND ([Voiture] = {2})"
' Critère final
strCritere = StringFormat(strSQL, _
DateHeureUS(Me.txtDateDebut), _
DateHeureUS(Me.txtDateFin), _
Me.Voiture)
' Si au moins 1 enregistrement répond au critère,
' la période est déjà réservée...
------>If DCount("*", "Réservation", strCritere) > 0 Then
MsgBox "Une réservation existe déjà sur cette période !", _
vbExclamation
Else
MsgBox "La période est disponible pour cette voiture.", _
vbInformation
End If
End Sub
J'ai fait quelque recherche et j'ai réussi a tomber sur un code que j'ai adapté à ma base .
J'ai créer un formulaire pour rechercher la disponibilité (je voulais déjà essayer avant de le mettre directement dans mon formulaire de réservation".
Alors j'ai creer un formulaire avec deux champs dates qui sont ("txtDateDebut" et "txtDateFin") et un champs nommée "Voiture" (qui renvoie a un champs d'une table ou j'ai toute les N°Immatriculation des différend véhicules. et enfin j'ai fait un bouton qui ce nomme "btnVerifier" qui éxecute les procédures.
J'ai eu quelques petites erreurs que j'ai réussi à corriger mais je bloque sur une qui est vers la fin du code (la où j'ai fait une flèche ).
celle-ci exactement :" ------>If DCount("*", "Réservation", strCritere) > 0 Then".
Il me renvoie un message d'erreur:"Erreur d'exécution 3075 erreur de syntaxe dans l'expression...comme dans la capture d'écran ci-joint.
Pourriez-vous m'aider s'il vous plait à palier à ce problème ?
Merci encore.
Voici le module en entier:
Function DateHeureUS(ByVal dt As Variant)
If IsNull(dt) Then Exit Function
DateHeureUS = "#" & Month(dt) & "/" & Day(dt) & "/" & Year(dt) _
& " " & Format(dt, "hh:nn:ss") & "#"
End Function
' Insertion de valeurs dans une chaîne de caractères
' ---
'
Function StringFormat( _
ByVal strChaine As String, _
ParamArray varValeurs() As Variant) As String
Dim intI As Integer
For intI = LBound(varValeurs) To UBound(varValeurs)
strChaine = Replace(strChaine, "{" & intI & "}", Nz(varValeurs(intI)))
Next
StringFormat = strChaine
End Function
Private Sub btnVerifier_Click()
Dim strSQL As String
Dim strCritere As String
' Vérifier que toutes les infos sont renseignées
If IsNull(Me.txtDateDebut) _
Or IsNull(Me.txtDateFin) _
Or IsNull(Me.Voiture) Then
MsgBox "Toutes les informations doivent être renseignées !", _
vbExclamation
Exit Sub
End If
' Chaîne SQL de base
strSQL = _
"(DatesIntersect({0}, {1}, [Date Debut], [Date Fin]) = True)" _
& " AND ([Voiture] = {2})"
' Critère final
strCritere = StringFormat(strSQL, _
DateHeureUS(Me.txtDateDebut), _
DateHeureUS(Me.txtDateFin), _
Me.Voiture)
' Si au moins 1 enregistrement répond au critère,
' la période est déjà réservée...
------>If DCount("*", "Réservation", strCritere) > 0 Then
MsgBox "Une réservation existe déjà sur cette période !", _
vbExclamation
Else
MsgBox "La période est disponible pour cette voiture.", _
vbInformation
End If
End Sub
Eh bien, pour quelqu'un qui écrivait "je débute à peine", quel progrès!
Quand tu partages du code, peux-tu utiliser les balises de code, et préciser "basic" pour du VBA?
https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Je ne connais pas DatesIntersect(), je pense que c'est peu utile, et l'erreur vient sans doute d'ailleurs.
Comme Voiture est un champ texte dans la table, il faut mettre des
Donc, sans doute:
Sauf si StringFormat(), que je ne connais pas, ne réagis pas bien à cela.
Quand tu partages du code, peux-tu utiliser les balises de code, et préciser "basic" pour du VBA?
https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Je ne connais pas DatesIntersect(), je pense que c'est peu utile, et l'erreur vient sans doute d'ailleurs.
Comme Voiture est un champ texte dans la table, il faut mettre des
'pour entourer le texte dans le critère de sélection.
Donc, sans doute:
strSQL = _ " DatesIntersect({0}, {1}, [Date Debut], [Date Fin]) " _ & " AND ([Voiture] = '{2}') "
Sauf si StringFormat(), que je ne connais pas, ne réagis pas bien à cela.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Merci sa à marcher pour cette erreur.
Mais je comprend pas après j'ai eu une "erreur 3085 " qui me dit que la fonction <<DatesIntersect>> est non définie ; alors je l'ai définie juste avant comme les autres fonctions et il me re-affiche le même message d'erreur.

voilà la fonction que j'ai définie juste avant :
en entier sa donne sa :
Auriez vous une idée de comment palier à ce problème s'il vous plaît ? Merci encore pour tout
Mais je comprend pas après j'ai eu une "erreur 3085 " qui me dit que la fonction <<DatesIntersect>> est non définie ; alors je l'ai définie juste avant comme les autres fonctions et il me re-affiche le même message d'erreur.
voilà la fonction que j'ai définie juste avant :
'INTERSECTION DE CRENEAUX DE DATES ' -------------------------------- ' Entrée : dtDate1 <- Première date ' dtDate2 <- Deuxième date (>= dtDate1) ' dtFenetreDebut <- Départ du créneau temps ' dtFenetreFin <- Fin du créneau temps ' Sortie : True si les 2 créneaux se chevauchent. ' Function DatesIntersect( _ ByVal dtDate1 As Date, _ ByVal dtDate2 As Date, _ ByVal dtFenetreDebut As Date, _ ByVal dtFenetreFin As Date) _ As Boolean DatesIntersect = (dtDate1 >= dtFenetreDebut) And (dtDate2 <= dtFenetreFin) End Function
en entier sa donne sa :
Option Compare Database Option Explicit Function DateHeureUS(ByVal dt As Variant) If IsNull(dt) Then Exit Function DateHeureUS = "#" & Month(dt) & "/" & Day(dt) & "/" & Year(dt) _ & " " & Format(dt, "hh:nn:ss") & "#" End Function ' Insertion de valeurs dans une chaîne de caractères ' --- ' Function StringFormat( _ ByVal strChaine As String, _ ParamArray varValeurs() As Variant) As String Dim intI As Integer For intI = LBound(varValeurs) To UBound(varValeurs) strChaine = Replace(strChaine, "{" & intI & "}", Nz(varValeurs(intI))) Next StringFormat = strChaine End Function 'INTERSECTION DE CRENEAUX DE DATES ' -------------------------------- ' Entrée : dtDate1 <- Première date ' dtDate2 <- Deuxième date (>= dtDate1) ' dtFenetreDebut <- Départ du créneau temps ' dtFenetreFin <- Fin du créneau temps ' Sortie : True si les 2 créneaux se chevauchent. ' Function DatesIntersect( _ ByVal dtDate1 As Date, _ ByVal dtDate2 As Date, _ ByVal dtFenetreDebut As Date, _ ByVal dtFenetreFin As Date) _ As Boolean DatesIntersect = (dtDate1 >= dtFenetreDebut) And (dtDate2 <= dtFenetreFin) End Function Private Sub btnVerifier_Click() Dim strSQL As String Dim strCritere As String ' Vérifier que toutes les infos sont renseignées If IsNull(Me.txtDateDebut) _ Or IsNull(Me.txtDateFin) _ Or IsNull(Me.Voiture) Then MsgBox "Toutes les informations doivent être renseignées !", _ vbExclamation Exit Sub End If ' Chaîne SQL de base strSQL = _ "(DatesIntersect({0}, {1}, [Date Debut], [Date Fin]) = True)" _ & " AND ([Voiture] = '{2}')" ' Critère final strCritere = StringFormat(strSQL, _ DateHeureUS(Me.txtDateDebut), _ DateHeureUS(Me.txtDateFin), _ Me.Voiture) ' Si au moins 1 enregistrement répond au critère, ' la période est déjà réservée... If DCount("*", "Réservation", strCritere) > 0 Then MsgBox "Une réservation existe déjà sur cette période !", _ vbExclamation Else MsgBox "La période est disponible pour cette voiture.", _ vbInformation End If End Sub
Auriez vous une idée de comment palier à ce problème s'il vous plaît ? Merci encore pour tout