Dans la mise en forme conditionnelle, choisis Exppression au lieu de valeur et saisis dans la zone de texte: ExtracChaîne([comm];instrrev([comm];"Durée"))>"Durée 2h00." Puis la mise en forme que tu veux.
Il te faudra remplacer le champ comm par son vrai nom
Bonjour Amis Pros d'A2K,
Dans un format conditionnel comment mettre pour récupérer la fin d'une chaine pour que tout ce qui dépasse 2h00 soit en fond rouge...
Egal ou supéérieur à : Voilà ce que j'ai mis "*- Durée 2h00." ce n'est pas bon...
Naturellement comme en début de chaine, il y a 14h30, 1h45, 19h30, 21h45 Access comprend que TOUT dépasse (est sup. ) 2h00
Là est le problème !!! à la place de l'étoile * , il me faudrait faire comprendre qu'il ne faut tenir compte que de la fin aprés le mot durée.
Merci à tous ceux qui m'aiguilleront sur une piste.... Bonne soirée aux News group Bernard
-- A+ Eric http://www.mpfa.info/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Bonjour Bernard
Dans la mise en forme conditionnelle, choisis Exppression au lieu de
valeur et saisis dans la zone de texte:
ExtracChaîne([comm];instrrev([comm];"Durée"))>"Durée 2h00."
Puis la mise en forme que tu veux.
Il te faudra remplacer le champ comm par son vrai nom
Bonjour Amis Pros d'A2K,
Dans un format conditionnel comment mettre pour récupérer la fin d'une
chaine
pour que tout ce qui dépasse 2h00 soit en fond rouge...
Egal ou supéérieur à : Voilà ce que j'ai mis "*- Durée 2h00." ce
n'est pas bon...
Naturellement comme en début de chaine, il y a 14h30, 1h45, 19h30, 21h45
Access comprend que TOUT dépasse (est sup. ) 2h00
Là est le problème !!!
à la place de l'étoile * , il me faudrait faire comprendre qu'il ne faut
tenir compte que de la fin aprés le mot durée.
Merci à tous ceux qui m'aiguilleront sur une piste....
Bonne soirée aux News group
Bernard
--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Dans la mise en forme conditionnelle, choisis Exppression au lieu de valeur et saisis dans la zone de texte: ExtracChaîne([comm];instrrev([comm];"Durée"))>"Durée 2h00." Puis la mise en forme que tu veux.
Il te faudra remplacer le champ comm par son vrai nom
Bonjour Amis Pros d'A2K,
Dans un format conditionnel comment mettre pour récupérer la fin d'une chaine pour que tout ce qui dépasse 2h00 soit en fond rouge...
Egal ou supéérieur à : Voilà ce que j'ai mis "*- Durée 2h00." ce n'est pas bon...
Naturellement comme en début de chaine, il y a 14h30, 1h45, 19h30, 21h45 Access comprend que TOUT dépasse (est sup. ) 2h00
Là est le problème !!! à la place de l'étoile * , il me faudrait faire comprendre qu'il ne faut tenir compte que de la fin aprés le mot durée.
Merci à tous ceux qui m'aiguilleront sur une piste.... Bonne soirée aux News group Bernard
-- A+ Eric http://www.mpfa.info/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Cinémas Décavision
Bonjour Eric,
Super ... Je ne connaissait hélas pas la formulation. Beaucoup trop de lacunes pour que je sois seulement moyen...
Merci beaucoup.
à la prochaine question peut-etre ??? Qui sait.
Bonne soirée. Bernard
-- Bernard FANGET Movie Room Manager Multiplexe Cinema DECAVISION - 7 avenue de Brogny 74000 ANNECY France Fax : 04 50 52 58 31
http://www.decavision.com/
Bonjour Eric,
Super ... Je ne connaissait hélas pas la formulation.
Beaucoup trop de lacunes pour que je sois seulement moyen...
Merci beaucoup.
à la prochaine question peut-etre ??? Qui sait.
Bonne soirée.
Bernard
--
Bernard FANGET Movie Room Manager
Multiplexe Cinema DECAVISION - 7 avenue de Brogny
74000 ANNECY France
Fax : 04 50 52 58 31
Pourquoi et comment le bout de la chaine aprés le mot Durée est-il trouvé par Access ???
Merci Eric si tu peux m'expliquer la base de cette extraction de bout de chaine...
Merci et à plus.
Bernard
Eric
Bonjour Bernard,
La fonction InstrRev() recherche à partir de la fin la position d'un caractère (ou une suite de craractères) dans un champ, une variable, un contrôle. Ici instrrev([comm];"Durée") retournera la position dans comm du mot Durée ExtracChaîne([comm];instrrev([comm];"Durée")) retourne la suite de caractères contenus dans le champ comm à partir du D de Durée jusqu'à la fin de la chaine. Ainsi si le champ comm contient : 14h30 - Rocky Balboa - Durée 2h30. ExtracChaîne([comm];instrrev([comm];"Durée")) retourne : Durée 2h30.
Le test ExtracChaîne([comm];instrrev([comm];"Durée"))>"Durée 2h00." retourne Vrai si Comm contient '14h30 - Rocky Balboa - Durée 2h30.' et Faux si comm contient '21h30 - Rocky IV - Durée 1h50.' Ce qui permet d'utiliser la mise en forme conditionnelle.
Un exemple ici : http://cjoint.com/?fulJSOYM6D
Re-Bonjour, Encore moi
Cela ne fonctionne pas, J'ai essayé avec nom du Champ : Texte1 Avec la source contrôle : getfacingSched(1)
Pourquoi et comment le bout de la chaine aprés le mot Durée est-il trouvé par Access ???
Merci Eric si tu peux m'expliquer la base de cette extraction de bout de chaine...
Merci et à plus.
Bernard
-- A+ Eric http://www.mpfa.info/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Bonjour Bernard,
La fonction InstrRev() recherche à partir de la fin la position d'un
caractère (ou une suite de craractères) dans un champ, une variable, un
contrôle.
Ici instrrev([comm];"Durée") retournera la position dans comm du mot Durée
ExtracChaîne([comm];instrrev([comm];"Durée")) retourne la suite de
caractères contenus dans le champ comm à partir du D de Durée jusqu'à la
fin de la chaine.
Ainsi si le champ comm contient :
14h30 - Rocky Balboa - Durée 2h30.
ExtracChaîne([comm];instrrev([comm];"Durée")) retourne : Durée 2h30.
Le test ExtracChaîne([comm];instrrev([comm];"Durée"))>"Durée 2h00."
retourne Vrai si Comm contient '14h30 - Rocky Balboa - Durée 2h30.' et
Faux si comm contient '21h30 - Rocky IV - Durée 1h50.' Ce qui permet
d'utiliser la mise en forme conditionnelle.
Un exemple ici : http://cjoint.com/?fulJSOYM6D
Re-Bonjour,
Encore moi
Cela ne fonctionne pas,
J'ai essayé avec nom du Champ : Texte1
Avec la source contrôle : getfacingSched(1)
La fonction InstrRev() recherche à partir de la fin la position d'un caractère (ou une suite de craractères) dans un champ, une variable, un contrôle. Ici instrrev([comm];"Durée") retournera la position dans comm du mot Durée ExtracChaîne([comm];instrrev([comm];"Durée")) retourne la suite de caractères contenus dans le champ comm à partir du D de Durée jusqu'à la fin de la chaine. Ainsi si le champ comm contient : 14h30 - Rocky Balboa - Durée 2h30. ExtracChaîne([comm];instrrev([comm];"Durée")) retourne : Durée 2h30.
Le test ExtracChaîne([comm];instrrev([comm];"Durée"))>"Durée 2h00." retourne Vrai si Comm contient '14h30 - Rocky Balboa - Durée 2h30.' et Faux si comm contient '21h30 - Rocky IV - Durée 1h50.' Ce qui permet d'utiliser la mise en forme conditionnelle.
Un exemple ici : http://cjoint.com/?fulJSOYM6D
Re-Bonjour, Encore moi
Cela ne fonctionne pas, J'ai essayé avec nom du Champ : Texte1 Avec la source contrôle : getfacingSched(1)
Pourquoi et comment le bout de la chaine aprés le mot Durée est-il trouvé par Access ???
Merci Eric si tu peux m'expliquer la base de cette extraction de bout de chaine...
Merci et à plus.
Bernard
-- A+ Eric http://www.mpfa.info/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Jac
Bonjour Eric,
si je modifie la première ligne pour obtenir 16h00 14h30 - tralala - durée 16h00. le formatage conditionnel ne l'affiche pas en rouge...
C'est vrai qu'il ne doit pas y avoir beaucoup de films de cette durée...
Bonjour Bernard,
La fonction InstrRev() recherche à partir de la fin la position d'un caractère (ou une suite de craractères) dans un champ, une variable, un contrôle. Ici instrrev([comm];"Durée") retournera la position dans comm du mot Durée ExtracChaîne([comm];instrrev([comm];"Durée")) retourne la suite de caractères contenus dans le champ comm à partir du D de Durée jusqu'à la fin de la chaine. Ainsi si le champ comm contient : 14h30 - Rocky Balboa - Durée 2h30. ExtracChaîne([comm];instrrev([comm];"Durée")) retourne : Durée 2h30.
Le test ExtracChaîne([comm];instrrev([comm];"Durée"))>"Durée 2h00." retourne Vrai si Comm contient '14h30 - Rocky Balboa - Durée 2h30.' et Faux si comm contient '21h30 - Rocky IV - Durée 1h50.' Ce qui permet d'utiliser la mise en forme conditionnelle.
Un exemple ici : http://cjoint.com/?fulJSOYM6D
Re-Bonjour, Encore moi
Cela ne fonctionne pas, J'ai essayé avec nom du Champ : Texte1 Avec la source contrôle : getfacingSched(1)
Pourquoi et comment le bout de la chaine aprés le mot Durée est-il trouvé par Access ???
Merci Eric si tu peux m'expliquer la base de cette extraction de bout de chaine...
Merci et à plus.
Bernard
Bonjour Eric,
si je modifie la première ligne pour obtenir 16h00
14h30 - tralala - durée 16h00.
le formatage conditionnel ne l'affiche pas en rouge...
C'est vrai qu'il ne doit pas y avoir beaucoup de films de cette
durée...
Bonjour Bernard,
La fonction InstrRev() recherche à partir de la fin la position d'un
caractère (ou une suite de craractères) dans un champ, une variable, un
contrôle.
Ici instrrev([comm];"Durée") retournera la position dans comm du mot Durée
ExtracChaîne([comm];instrrev([comm];"Durée")) retourne la suite de caractères
contenus dans le champ comm à partir du D de Durée jusqu'à la fin de la
chaine.
Ainsi si le champ comm contient :
14h30 - Rocky Balboa - Durée 2h30.
ExtracChaîne([comm];instrrev([comm];"Durée")) retourne : Durée 2h30.
Le test ExtracChaîne([comm];instrrev([comm];"Durée"))>"Durée 2h00." retourne
Vrai si Comm contient '14h30 - Rocky Balboa - Durée 2h30.' et Faux si comm
contient '21h30 - Rocky IV - Durée 1h50.' Ce qui permet d'utiliser la mise en
forme conditionnelle.
Un exemple ici : http://cjoint.com/?fulJSOYM6D
Re-Bonjour,
Encore moi
Cela ne fonctionne pas,
J'ai essayé avec nom du Champ : Texte1
Avec la source contrôle : getfacingSched(1)
si je modifie la première ligne pour obtenir 16h00 14h30 - tralala - durée 16h00. le formatage conditionnel ne l'affiche pas en rouge...
C'est vrai qu'il ne doit pas y avoir beaucoup de films de cette durée...
Bonjour Bernard,
La fonction InstrRev() recherche à partir de la fin la position d'un caractère (ou une suite de craractères) dans un champ, une variable, un contrôle. Ici instrrev([comm];"Durée") retournera la position dans comm du mot Durée ExtracChaîne([comm];instrrev([comm];"Durée")) retourne la suite de caractères contenus dans le champ comm à partir du D de Durée jusqu'à la fin de la chaine. Ainsi si le champ comm contient : 14h30 - Rocky Balboa - Durée 2h30. ExtracChaîne([comm];instrrev([comm];"Durée")) retourne : Durée 2h30.
Le test ExtracChaîne([comm];instrrev([comm];"Durée"))>"Durée 2h00." retourne Vrai si Comm contient '14h30 - Rocky Balboa - Durée 2h30.' et Faux si comm contient '21h30 - Rocky IV - Durée 1h50.' Ce qui permet d'utiliser la mise en forme conditionnelle.
Un exemple ici : http://cjoint.com/?fulJSOYM6D
Re-Bonjour, Encore moi
Cela ne fonctionne pas, J'ai essayé avec nom du Champ : Texte1 Avec la source contrôle : getfacingSched(1)
Pourquoi et comment le bout de la chaine aprés le mot Durée est-il trouvé par Access ???
Merci Eric si tu peux m'expliquer la base de cette extraction de bout de chaine...
Merci et à plus.
Bernard
Eric
Bonjour Jac,
Oui j'avais pensé à cette situation mais je me suis dit que au delà de 9h59 il ne devait pas y avoir beaucoup de films. Pour tout te dire, j'avais pensé au film-documentaire de Lanzmann 'Shoah' (durée 9h30).
Bonjour Eric,
si je modifie la première ligne pour obtenir 16h00 14h30 - tralala - durée 16h00. le formatage conditionnel ne l'affiche pas en rouge...
C'est vrai qu'il ne doit pas y avoir beaucoup de films de cette durée...
-- A+ Eric http://www.mpfa.info/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Bonjour Jac,
Oui j'avais pensé à cette situation mais je me suis dit que au delà de
9h59 il ne devait pas y avoir beaucoup de films. Pour tout te dire,
j'avais pensé au film-documentaire de Lanzmann 'Shoah' (durée 9h30).
Bonjour Eric,
si je modifie la première ligne pour obtenir 16h00
14h30 - tralala - durée 16h00.
le formatage conditionnel ne l'affiche pas en rouge...
C'est vrai qu'il ne doit pas y avoir beaucoup de films de cette durée...
--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Oui j'avais pensé à cette situation mais je me suis dit que au delà de 9h59 il ne devait pas y avoir beaucoup de films. Pour tout te dire, j'avais pensé au film-documentaire de Lanzmann 'Shoah' (durée 9h30).
Bonjour Eric,
si je modifie la première ligne pour obtenir 16h00 14h30 - tralala - durée 16h00. le formatage conditionnel ne l'affiche pas en rouge...
C'est vrai qu'il ne doit pas y avoir beaucoup de films de cette durée...
-- A+ Eric http://www.mpfa.info/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Jac
... donc pour la condition, il faurait chercher "durée " pour que les 10h et plus passent au rouge.
Bonjour Jac,
Oui j'avais pensé à cette situation mais je me suis dit que au delà de 9h59 il ne devait pas y avoir beaucoup de films. Pour tout te dire, j'avais pensé au film-documentaire de Lanzmann 'Shoah' (durée 9h30).
Bonjour Eric,
si je modifie la première ligne pour obtenir 16h00 14h30 - tralala - durée 16h00. le formatage conditionnel ne l'affiche pas en rouge...
C'est vrai qu'il ne doit pas y avoir beaucoup de films de cette durée...
... donc pour la condition, il faurait chercher "durée " pour que les
10h et plus passent au rouge.
Bonjour Jac,
Oui j'avais pensé à cette situation mais je me suis dit que au delà de 9h59
il ne devait pas y avoir beaucoup de films. Pour tout te dire, j'avais pensé
au film-documentaire de Lanzmann 'Shoah' (durée 9h30).
Bonjour Eric,
si je modifie la première ligne pour obtenir 16h00
14h30 - tralala - durée 16h00.
le formatage conditionnel ne l'affiche pas en rouge...
C'est vrai qu'il ne doit pas y avoir beaucoup de films de cette durée...
... donc pour la condition, il faurait chercher "durée " pour que les 10h et plus passent au rouge.
Bonjour Jac,
Oui j'avais pensé à cette situation mais je me suis dit que au delà de 9h59 il ne devait pas y avoir beaucoup de films. Pour tout te dire, j'avais pensé au film-documentaire de Lanzmann 'Shoah' (durée 9h30).
Bonjour Eric,
si je modifie la première ligne pour obtenir 16h00 14h30 - tralala - durée 16h00. le formatage conditionnel ne l'affiche pas en rouge...
C'est vrai qu'il ne doit pas y avoir beaucoup de films de cette durée...
Eric
re,
Oui avec cette fonction par exemple, mais j'ai recherché le dernier espace seulement:
Public Function zz(UneChaine As Variant) As Date If IsNull(UneChaine) Then Exit Function Dim t$ t = Mid(UneChaine, InStrRev(UneChaine, " ") + 1) t = Replace(Replace(t, "h", ":"), ".", "") zz = CDate(t) End Function
et pour Expression mettre: zz([LeChamp])>#02:00:00#
... donc pour la condition, il faurait chercher "durée " pour que les 10h et plus passent au rouge.
-- A+ Eric http://www.mpfa.info/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
re,
Oui avec cette fonction par exemple, mais j'ai recherché le dernier
espace seulement:
Public Function zz(UneChaine As Variant) As Date
If IsNull(UneChaine) Then Exit Function
Dim t$
t = Mid(UneChaine, InStrRev(UneChaine, " ") + 1)
t = Replace(Replace(t, "h", ":"), ".", "")
zz = CDate(t)
End Function
et pour Expression mettre:
zz([LeChamp])>#02:00:00#
... donc pour la condition, il faurait chercher "durée " pour que les
10h et plus passent au rouge.
--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Oui avec cette fonction par exemple, mais j'ai recherché le dernier espace seulement:
Public Function zz(UneChaine As Variant) As Date If IsNull(UneChaine) Then Exit Function Dim t$ t = Mid(UneChaine, InStrRev(UneChaine, " ") + 1) t = Replace(Replace(t, "h", ":"), ".", "") zz = CDate(t) End Function
et pour Expression mettre: zz([LeChamp])>#02:00:00#
... donc pour la condition, il faurait chercher "durée " pour que les 10h et plus passent au rouge.
-- A+ Eric http://www.mpfa.info/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Eric
.../... Toutefois ça plantera si la durée est supérieure à 23h59 mais bon, même la nuit du Cinéma ne dure pas tant ;-) Attendons de voir la réponse de Bernard.
re,
Oui avec cette fonction par exemple, mais j'ai recherché le dernier espace seulement:
Public Function zz(UneChaine As Variant) As Date If IsNull(UneChaine) Then Exit Function Dim t$ t = Mid(UneChaine, InStrRev(UneChaine, " ") + 1) t = Replace(Replace(t, "h", ":"), ".", "") zz = CDate(t) End Function
et pour Expression mettre: zz([LeChamp])>#02:00:00#
... donc pour la condition, il faurait chercher "durée " pour que les 10h et plus passent au rouge.
-- A+ Eric http://www.mpfa.info/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
.../...
Toutefois ça plantera si la durée est supérieure à 23h59 mais bon, même
la nuit du Cinéma ne dure pas tant ;-)
Attendons de voir la réponse de Bernard.
re,
Oui avec cette fonction par exemple, mais j'ai recherché le dernier
espace seulement:
Public Function zz(UneChaine As Variant) As Date
If IsNull(UneChaine) Then Exit Function
Dim t$
t = Mid(UneChaine, InStrRev(UneChaine, " ") + 1)
t = Replace(Replace(t, "h", ":"), ".", "")
zz = CDate(t)
End Function
et pour Expression mettre:
zz([LeChamp])>#02:00:00#
... donc pour la condition, il faurait chercher "durée " pour que les
10h et plus passent au rouge.
--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
.../... Toutefois ça plantera si la durée est supérieure à 23h59 mais bon, même la nuit du Cinéma ne dure pas tant ;-) Attendons de voir la réponse de Bernard.
re,
Oui avec cette fonction par exemple, mais j'ai recherché le dernier espace seulement:
Public Function zz(UneChaine As Variant) As Date If IsNull(UneChaine) Then Exit Function Dim t$ t = Mid(UneChaine, InStrRev(UneChaine, " ") + 1) t = Replace(Replace(t, "h", ":"), ".", "") zz = CDate(t) End Function
et pour Expression mettre: zz([LeChamp])>#02:00:00#
... donc pour la condition, il faurait chercher "durée " pour que les 10h et plus passent au rouge.
-- A+ Eric http://www.mpfa.info/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Cinémas Décavision
Bonjour à tous et en particulier à Eric et Jac.
Merci de cette aide trés pro.
J'explore les pistes que vous m'avez gracieusement fournies....
La fonction : ExtracChaîne([getfacingSched(1)];instrrev([getfacingSched(1)];"Durée"))>"Durée 2h00."
Elle fonctionne trés bien dans la base d'essai envoyée et je la maitrise bien, mais il me semble que là ma chaine est plus compliquée... il me semble qu'elle se crée en plusieurs morceaux : D'abord les horaires, puis la durée... Exemple : 14h, 1645, 19h30 et 22h15 + merc, sam et dim 11h - Durée 1h45 ce qui ferait huit petites chaines qui se rajoute les unes aux autres... C'est là que cela devient délicat !!!! Ce n'est pas moi qui ai fait l'application, mais un informaticien qui ne veut plus programmer (déprime totale!). Donc j'essai de faire évoluer cette base et je vois déjà que vous vous y connaissez bien en cinéma et trés bien en informatique A2K.
Voilà du code VBA trouvé en rapport avec [getfacingSched(1)] Si vous y comprenez quelque chose et que cela peut aider ??? MERCI à TOUS. Merci le news group
Set rs = CurrentDb.OpenRecordset(qryFacing, dbOpenSnapshot) Do Until rs.EOF ids = Split(Nz(rs![Film_SalleNum]), "&") For Each idstr In ids Id = Val(idstr) If Id > 0 And Id <= maxRoom Then For j = 0 To UBound(titles, 2) If titles(Id, j) = rs![Film_Titre] Then Exit For If titles(Id, j) = "" Then Exit For Next If j <= UBound(titles, 2) Then If Len(scheds(Id, j)) > 0 Then scheds(Id, j) = scheds(Id, j) & " + " scheds(Id, j) = rs![Prog_StrProgInfoAbs] titles(Id, j) = rs![Film_Titre] End If
' Construit un tableau d'horaires pour le film trouvé ' Dans chacun des éléments est présent l'heure pour laquelle une entrée a été trouvée hidx = 0 Set srs = CurrentDb.OpenRecordset("SELECT * FROM [T - Séances] where (Séances_IDX=" & rs![Prog_CalcSéances] & ")", dbOpenSnapshot) srs.MoveLast srs.MoveFirst 'populate ReDim sc(srs.RecordCount) Do Until srs.EOF hour = srs![Séances_Heure] If ((srs![Séances_J1] And 7) + (srs![Séances_J2] And 7) + (srs![Séances_J3] And 7) + (srs![Séances_J4] And 7) + (srs![Séances_J5] And 7) + (srs![Séances_J6] And 7) + (srs![Séances_J7] And 7)) > 0 Then sc(hidx) = hour hidx = hidx + 1 End If srs.MoveNext Loop seances(Id, j) = sc srs.Close End If Next rs.MoveNext Loop
End Sub
Public Function getFacingSched(Id&)
Dim j&
On Error Resume Next For j = 0 To UBound(titles, 2) If titles(Id, j) = "" Then Exit Function If Len(getFacingSched) > 0 Then getFacingSched = getFacingSched & vbNewLine & "---------------" & vbNewLine getFacingSched = getFacingSched & scheds(Id, j) Next
End Function
Public Function getFacingTitle(Id&, hour As Date)
Dim j&, k&, sc As Variant
On Error Resume Next For j = 0 To UBound(titles, 2) sc = seances(Id, j) For k = 0 To UBound(sc) If sc(k) = hour Then Exit For 'indiquer que l'heure a été trouvée Next If k < UBound(sc) Then 'continuer si heure a été trouvé If titles(Id, j) = "" Then Exit Function If Len(getFacingTitle) > 0 Then getFacingTitle = getFacingTitle & vbNewLine & "---------------" & vbNewLine getFacingTitle = getFacingTitle & titles(Id, j) End If Next
End Function
Bonjour à tous et en particulier à Eric et Jac.
Merci de cette aide trés pro.
J'explore les pistes que vous m'avez gracieusement fournies....
La fonction :
ExtracChaîne([getfacingSched(1)];instrrev([getfacingSched(1)];"Durée"))>"Durée
2h00."
Elle fonctionne trés bien dans la base d'essai envoyée et je la maitrise
bien, mais il me semble que là ma chaine est plus compliquée...
il me semble qu'elle se crée en plusieurs morceaux : D'abord les horaires,
puis la durée...
Exemple : 14h, 1645, 19h30 et 22h15 + merc, sam et dim 11h - Durée 1h45
ce qui ferait huit petites chaines qui se rajoute les unes aux autres...
C'est là que cela devient délicat !!!!
Ce n'est pas moi qui ai fait l'application, mais un informaticien qui ne
veut plus programmer (déprime totale!).
Donc j'essai de faire évoluer cette base et je vois déjà que vous vous y
connaissez bien en cinéma et trés bien en informatique A2K.
Voilà du code VBA trouvé en rapport avec [getfacingSched(1)]
Si vous y comprenez quelque chose et que cela peut aider ???
MERCI à TOUS. Merci le news group
Set rs = CurrentDb.OpenRecordset(qryFacing, dbOpenSnapshot)
Do Until rs.EOF
ids = Split(Nz(rs![Film_SalleNum]), "&")
For Each idstr In ids
Id = Val(idstr)
If Id > 0 And Id <= maxRoom Then
For j = 0 To UBound(titles, 2)
If titles(Id, j) = rs![Film_Titre] Then Exit For
If titles(Id, j) = "" Then Exit For
Next
If j <= UBound(titles, 2) Then
If Len(scheds(Id, j)) > 0 Then scheds(Id, j) =
scheds(Id, j) & " + "
scheds(Id, j) = rs![Prog_StrProgInfoAbs]
titles(Id, j) = rs![Film_Titre]
End If
' Construit un tableau d'horaires pour le film trouvé
' Dans chacun des éléments est présent l'heure pour laquelle
une entrée a été trouvée
hidx = 0
Set srs = CurrentDb.OpenRecordset("SELECT * FROM [T -
Séances] where (Séances_IDX=" & rs![Prog_CalcSéances] & ")", dbOpenSnapshot)
srs.MoveLast
srs.MoveFirst 'populate
ReDim sc(srs.RecordCount)
Do Until srs.EOF
hour = srs![Séances_Heure]
If ((srs![Séances_J1] And 7) + (srs![Séances_J2] And 7) +
(srs![Séances_J3] And 7) + (srs![Séances_J4] And 7) + (srs![Séances_J5] And
7) + (srs![Séances_J6] And 7) + (srs![Séances_J7] And 7)) > 0 Then
sc(hidx) = hour
hidx = hidx + 1
End If
srs.MoveNext
Loop
seances(Id, j) = sc
srs.Close
End If
Next
rs.MoveNext
Loop
End Sub
Public Function getFacingSched(Id&)
Dim j&
On Error Resume Next
For j = 0 To UBound(titles, 2)
If titles(Id, j) = "" Then Exit Function
If Len(getFacingSched) > 0 Then getFacingSched = getFacingSched &
vbNewLine & "---------------" & vbNewLine
getFacingSched = getFacingSched & scheds(Id, j)
Next
End Function
Public Function getFacingTitle(Id&, hour As Date)
Dim j&, k&, sc As Variant
On Error Resume Next
For j = 0 To UBound(titles, 2)
sc = seances(Id, j)
For k = 0 To UBound(sc)
If sc(k) = hour Then Exit For 'indiquer que l'heure a été
trouvée
Next
If k < UBound(sc) Then
'continuer si heure a été trouvé
If titles(Id, j) = "" Then Exit Function
If Len(getFacingTitle) > 0 Then getFacingTitle = getFacingTitle &
vbNewLine & "---------------" & vbNewLine
getFacingTitle = getFacingTitle & titles(Id, j)
End If
Next
J'explore les pistes que vous m'avez gracieusement fournies....
La fonction : ExtracChaîne([getfacingSched(1)];instrrev([getfacingSched(1)];"Durée"))>"Durée 2h00."
Elle fonctionne trés bien dans la base d'essai envoyée et je la maitrise bien, mais il me semble que là ma chaine est plus compliquée... il me semble qu'elle se crée en plusieurs morceaux : D'abord les horaires, puis la durée... Exemple : 14h, 1645, 19h30 et 22h15 + merc, sam et dim 11h - Durée 1h45 ce qui ferait huit petites chaines qui se rajoute les unes aux autres... C'est là que cela devient délicat !!!! Ce n'est pas moi qui ai fait l'application, mais un informaticien qui ne veut plus programmer (déprime totale!). Donc j'essai de faire évoluer cette base et je vois déjà que vous vous y connaissez bien en cinéma et trés bien en informatique A2K.
Voilà du code VBA trouvé en rapport avec [getfacingSched(1)] Si vous y comprenez quelque chose et que cela peut aider ??? MERCI à TOUS. Merci le news group
Set rs = CurrentDb.OpenRecordset(qryFacing, dbOpenSnapshot) Do Until rs.EOF ids = Split(Nz(rs![Film_SalleNum]), "&") For Each idstr In ids Id = Val(idstr) If Id > 0 And Id <= maxRoom Then For j = 0 To UBound(titles, 2) If titles(Id, j) = rs![Film_Titre] Then Exit For If titles(Id, j) = "" Then Exit For Next If j <= UBound(titles, 2) Then If Len(scheds(Id, j)) > 0 Then scheds(Id, j) = scheds(Id, j) & " + " scheds(Id, j) = rs![Prog_StrProgInfoAbs] titles(Id, j) = rs![Film_Titre] End If
' Construit un tableau d'horaires pour le film trouvé ' Dans chacun des éléments est présent l'heure pour laquelle une entrée a été trouvée hidx = 0 Set srs = CurrentDb.OpenRecordset("SELECT * FROM [T - Séances] where (Séances_IDX=" & rs![Prog_CalcSéances] & ")", dbOpenSnapshot) srs.MoveLast srs.MoveFirst 'populate ReDim sc(srs.RecordCount) Do Until srs.EOF hour = srs![Séances_Heure] If ((srs![Séances_J1] And 7) + (srs![Séances_J2] And 7) + (srs![Séances_J3] And 7) + (srs![Séances_J4] And 7) + (srs![Séances_J5] And 7) + (srs![Séances_J6] And 7) + (srs![Séances_J7] And 7)) > 0 Then sc(hidx) = hour hidx = hidx + 1 End If srs.MoveNext Loop seances(Id, j) = sc srs.Close End If Next rs.MoveNext Loop
End Sub
Public Function getFacingSched(Id&)
Dim j&
On Error Resume Next For j = 0 To UBound(titles, 2) If titles(Id, j) = "" Then Exit Function If Len(getFacingSched) > 0 Then getFacingSched = getFacingSched & vbNewLine & "---------------" & vbNewLine getFacingSched = getFacingSched & scheds(Id, j) Next
End Function
Public Function getFacingTitle(Id&, hour As Date)
Dim j&, k&, sc As Variant
On Error Resume Next For j = 0 To UBound(titles, 2) sc = seances(Id, j) For k = 0 To UBound(sc) If sc(k) = hour Then Exit For 'indiquer que l'heure a été trouvée Next If k < UBound(sc) Then 'continuer si heure a été trouvé If titles(Id, j) = "" Then Exit Function If Len(getFacingTitle) > 0 Then getFacingTitle = getFacingTitle & vbNewLine & "---------------" & vbNewLine getFacingTitle = getFacingTitle & titles(Id, j) End If Next