Validité de date de réservation automoblie
Résolu/Fermé
luc731
Messages postés
22
Date d'inscription
mardi 26 octobre 2021
Statut
Membre
Dernière intervention
12 novembre 2021
-
26 oct. 2021 à 05:12
luc731 Messages postés 22 Date d'inscription mardi 26 octobre 2021 Statut Membre Dernière intervention 12 novembre 2021 - 29 oct. 2021 à 14:50
luc731 Messages postés 22 Date d'inscription mardi 26 octobre 2021 Statut Membre Dernière intervention 12 novembre 2021 - 29 oct. 2021 à 14:50
A voir également:
- Ticket kadéos date dépassée
- Trouver une date de naissance gratuit - Forum Webmastering
- Acheter ticket t+ en ligne - Accueil - Guide transports et cartes
- Police ticket de caisse - Forum Graphisme
- Whatsapp date incorrecte ✓ - Forum Mobile
5 réponses
yg_be
Messages postés
23400
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
18 décembre 2024
Ambassadeur
1 557
26 oct. 2021 à 16:14
26 oct. 2021 à 16:14
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.
luc731
Messages postés
22
Date d'inscription
mardi 26 octobre 2021
Statut
Membre
Dernière intervention
12 novembre 2021
26 oct. 2021 à 23:46
26 oct. 2021 à 23:46
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.
yg_be
Messages postés
23400
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
18 décembre 2024
1 557
27 oct. 2021 à 09:33
27 oct. 2021 à 09:33
As-tu de l'expérience en programmation (VBA) et en bases de données (SQL)?
luc731
Messages postés
22
Date d'inscription
mardi 26 octobre 2021
Statut
Membre
Dernière intervention
12 novembre 2021
27 oct. 2021 à 10:33
27 oct. 2021 à 10:33
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.
yg_be
Messages postés
23400
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
18 décembre 2024
1 557
27 oct. 2021 à 10:56
27 oct. 2021 à 10:56
Ce n'est pas une fonction de base, c'est du code VBA à ajouter au formulaire, code à déclencher avant de modifier l'enregistrement dans la table.
Ce code utilisera, par exemple, une requête SQL qui vérifiera si d'autres enregistrements entre en conflit avec le nouvel enregistrement.
Ce code utilisera, par exemple, une requête SQL qui vérifiera si d'autres enregistrements entre en conflit avec le nouvel enregistrement.
luc731
Messages postés
22
Date d'inscription
mardi 26 octobre 2021
Statut
Membre
Dernière intervention
12 novembre 2021
28 oct. 2021 à 16:38
28 oct. 2021 à 16:38
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
yg_be
Messages postés
23400
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
18 décembre 2024
1 557
28 oct. 2021 à 19:08
28 oct. 2021 à 19:08
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
luc731
Messages postés
22
Date d'inscription
mardi 26 octobre 2021
Statut
Membre
Dernière intervention
12 novembre 2021
29 oct. 2021 à 03:23
29 oct. 2021 à 03:23
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
yg_be
Messages postés
23400
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
18 décembre 2024
1 557
29 oct. 2021 à 10:24
29 oct. 2021 à 10:24
Ici, cette fonction est utilisée dans une requête SQL, donc hors du module.
Pour pouvoir utiliser une fonction hors du module, il faut qu'elle soit publique.
Par défaut, elle est sans doute privée.
Essaie de modifier sa déclaration:
Pour pouvoir utiliser une fonction hors du module, il faut qu'elle soit publique.
Par défaut, elle est sans doute privée.
Essaie de modifier sa déclaration:
public Function DatesIntersect(
luc731
Messages postés
22
Date d'inscription
mardi 26 octobre 2021
Statut
Membre
Dernière intervention
12 novembre 2021
>
yg_be
Messages postés
23400
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
18 décembre 2024
29 oct. 2021 à 14:50
29 oct. 2021 à 14:50
Merci sayer sa fonctionne merci beaucoups :D