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

Trouvez l'erreur

6 réponses
Avatar
Patrick
Sous Access2000

Private Sub Texte16_GotFocus()
Dim TotalHrs, TotalMin, TempsJour, HrsMin As Integer
Dim Bdd As DataBase, Tb As Recordset
Set Bdd =3D CurrentDb
Set Tb =3D Bdd.OpenRecordset("tb1Relev=E9Heures")
TotalHrs =3D 0
TotalMin =3D 0
TempsJour =3D 0
While Not Tb.EOF
TempsJours =3D Tb!HeureFin - Tb!HeureBebut
TotalHrs =3D TotalHrs + Hour(TempsJour)
TotalMin =3D TotalMin + Minute(TempsJour)
Tb.MoveNext
Wend
HrsMin =3D TotalMin \ 60
TotalMin =3D TotalMin Mod 60
TotalHrs =3D TotalHrs + HrsMin
Me!Texte16 =3D Format(TotalHrs, "00") & ":" & Format
(TotalMin, "00")
End Sub

6 réponses

Avatar
pascale
Quand tu fais appel à des objets de type Recodset,
l'instruction Tb!Heurefin et Tb!HeureDebut (et non Bedut)
est elle acceptées ?

J'ai l'habitude de programmer en utilisant l'instruction:
tb.field("Heurefin") et tb.field("HeureDebut")

a+
-----Message d'origine-----
Sous Access2000

Private Sub Texte16_GotFocus()
Dim TotalHrs, TotalMin, TempsJour, HrsMin As Integer
Dim Bdd As DataBase, Tb As Recordset
Set Bdd = CurrentDb
Set Tb = Bdd.OpenRecordset("tb1RelevéHeures")
TotalHrs = 0
TotalMin = 0
TempsJour = 0
While Not Tb.EOF
TempsJours = Tb!HeureFin - Tb!HeureBebut
TotalHrs = TotalHrs + Hour(TempsJour)
TotalMin = TotalMin + Minute(TempsJour)
Tb.MoveNext
Wend
HrsMin = TotalMin 60
TotalMin = TotalMin Mod 60
TotalHrs = TotalHrs + HrsMin
Me!Texte16 = Format(TotalHrs, "00") & ":" & Format
(TotalMin, "00")
End Sub

.



Avatar
Patrick
Merci de la reponse
mais je bloque encore sur "Dim Bdd As DataBase", il
n'accepte pas la formule???
et je ne trouve pas
dois-je vous dire que je ne suis pas trop callé avec Access
Encore merci
-----Message d'origine-----
Quand tu fais appel à des objets de type Recodset,
l'instruction Tb!Heurefin et Tb!HeureDebut (et non Bedut)
est elle acceptées ?

J'ai l'habitude de programmer en utilisant l'instruction:
tb.field("Heurefin") et tb.field("HeureDebut")

a+
-----Message d'origine-----
Sous Access2000

Private Sub Texte16_GotFocus()
Dim TotalHrs, TotalMin, TempsJour, HrsMin As Integer
Dim Bdd As DataBase, Tb As Recordset
Set Bdd = CurrentDb
Set Tb = Bdd.OpenRecordset("tb1RelevéHeures")
TotalHrs = 0
TotalMin = 0
TempsJour = 0
While Not Tb.EOF
TempsJours = Tb!HeureFin - Tb!HeureBebut
TotalHrs = TotalHrs + Hour(TempsJour)
TotalMin = TotalMin + Minute(TempsJour)
Tb.MoveNext
Wend
HrsMin = TotalMin 60
TotalMin = TotalMin Mod 60
TotalHrs = TotalHrs + HrsMin
Me!Texte16 = Format(TotalHrs, "00") & ":" & Format
(TotalMin, "00")
End Sub

.

.





Avatar
Damien Mermoz
Salut,
Tu es sur 2000 et tu codes en DAO
Or sur 2000 DAO n'est pas référencé par défaut
quand tu écris
dim db as database
Access croit que tu veux utiliser ADO
La solution
Dans VBE outilréférence
coche microsoft DAO.3.6.dll
Et remonte cette réf au dessus d'ADO
Tu peux en plus (je te le recommande) ecrire dans tes déclarations
dim db as DAO.database
dim tb as DAO.recordset


Y'a peut être d'autres soucis dans ton code (tu fais une soustraction sur
deux champs date) mais commence d'abord par régler ce pb de référence on
verra par la suite.

A +
Damien.

"Patrick" a écrit dans le message news:
00d001c3b69b$5fb30620$
Merci de la reponse
mais je bloque encore sur "Dim Bdd As DataBase", il
n'accepte pas la formule???
et je ne trouve pas
dois-je vous dire que je ne suis pas trop callé avec Access
Encore merci
-----Message d'origine-----
Quand tu fais appel à des objets de type Recodset,
l'instruction Tb!Heurefin et Tb!HeureDebut (et non Bedut)
est elle acceptées ?

J'ai l'habitude de programmer en utilisant l'instruction:
tb.field("Heurefin") et tb.field("HeureDebut")

a+
-----Message d'origine-----
Sous Access2000

Private Sub Texte16_GotFocus()
Dim TotalHrs, TotalMin, TempsJour, HrsMin As Integer
Dim Bdd As DataBase, Tb As Recordset
Set Bdd = CurrentDb
Set Tb = Bdd.OpenRecordset("tb1RelevéHeures")
TotalHrs = 0
TotalMin = 0
TempsJour = 0
While Not Tb.EOF
TempsJours = Tb!HeureFin - Tb!HeureBebut
TotalHrs = TotalHrs + Hour(TempsJour)
TotalMin = TotalMin + Minute(TempsJour)
Tb.MoveNext
Wend
HrsMin = TotalMin 60
TotalMin = TotalMin Mod 60
TotalHrs = TotalHrs + HrsMin
Me!Texte16 = Format(TotalHrs, "00") & ":" & Format
(TotalMin, "00")
End Sub

.

.





Avatar
Patrick
Merci du tuyau
mais je bloque sur" TempsJours = tb.field
("Heurefin") et tb.field("HeureDebut") "
Encore Merci
-----Message d'origine-----
Salut,
Tu es sur 2000 et tu codes en DAO
Or sur 2000 DAO n'est pas référencé par défaut
quand tu écris
dim db as database
Access croit que tu veux utiliser ADO
La solution
Dans VBE outilréférence
coche microsoft DAO.3.6.dll
Et remonte cette réf au dessus d'ADO
Tu peux en plus (je te le recommande) ecrire dans tes
déclarations

dim db as DAO.database
dim tb as DAO.recordset


Y'a peut être d'autres soucis dans ton code (tu fais une
soustraction sur

deux champs date) mais commence d'abord par régler ce pb
de référence on

verra par la suite.

A +
Damien.

"Patrick" a écrit dans le message
news:

00d001c3b69b$5fb30620$
Merci de la reponse
mais je bloque encore sur "Dim Bdd As DataBase", il
n'accepte pas la formule???
et je ne trouve pas
dois-je vous dire que je ne suis pas trop callé avec
Access

Encore merci
-----Message d'origine-----
Quand tu fais appel à des objets de type Recodset,
l'instruction Tb!Heurefin et Tb!HeureDebut (et non Bedut)
est elle acceptées ?

J'ai l'habitude de programmer en utilisant l'instruction:
tb.field("Heurefin") et tb.field("HeureDebut")

a+
-----Message d'origine-----
Sous Access2000

Private Sub Texte16_GotFocus()
Dim TotalHrs, TotalMin, TempsJour, HrsMin As Integer
Dim Bdd As DataBase, Tb As Recordset
Set Bdd = CurrentDb
Set Tb = Bdd.OpenRecordset("tb1RelevéHeures")
TotalHrs = 0
TotalMin = 0
TempsJour = 0
While Not Tb.EOF
TempsJours = Tb!HeureFin - Tb!HeureBebut
TotalHrs = TotalHrs + Hour(TempsJour)
TotalMin = TotalMin + Minute(TempsJour)
Tb.MoveNext
Wend
HrsMin = TotalMin 60
TotalMin = TotalMin Mod 60
TotalHrs = TotalHrs + HrsMin
Me!Texte16 = Format(TotalHrs, "00") & ":" & Format
(TotalMin, "00")
End Sub

.

.





.





Avatar
Damien Mermoz
Salut,
Ben toi tu me sembles être le roi du bug :-)

tu déclares tempsjour
puis tu écris tempsjours !!
Tu m'étonnes que ça passe pas.
Déjà tu vas écrire
option explicit
en dessous option compare database

ensuite tu fais débogage puis compiler
et tu corriges tes erreurs

A part ça ton code semble fonctionner
J'ai testé avec une table T_heure et HeureDebut en heure abrégé et HeureFin
idem

voilà mon code
Private Sub Texte0_GotFocus()
Dim db As DAO.Database
Dim tb As DAO.Recordset
Dim TotalHrs, TotalMin, TempsJour, HrsMin As Integer


Set db = CurrentDb
Set tb = db.OpenRecordset("T_heure")
While Not tb.EOF
TempsJour = tb!heuredebut - tb!heurefin
TotalHrs = TotalHrs + Hour(TempsJour)
TotalMin = TotalMin + Minute(TempsJour)
tb.MoveNext

Wend
HrsMin = TotalMin / 60
TotalMin = TotalMin Mod 60
TotalHrs = TotalHrs + HrsMin


Me.Texte0 = Format(TotalHrs, "00") & ":" & Format(TotalMin, "00")

tb.Close
db.Close
Set tb = Nothing
Set db = Nothing

End Sub

En espèrant t'aider.

A +
Damien.

"Patrick" a écrit dans le message news:
00e501c3b6a7$9f502810$
Merci du tuyau
mais je bloque sur" TempsJours = tb.field
("Heurefin") et tb.field("HeureDebut") "
Encore Merci
-----Message d'origine-----
Salut,
Tu es sur 2000 et tu codes en DAO
Or sur 2000 DAO n'est pas référencé par défaut
quand tu écris
dim db as database
Access croit que tu veux utiliser ADO
La solution
Dans VBE outilréférence
coche microsoft DAO.3.6.dll
Et remonte cette réf au dessus d'ADO
Tu peux en plus (je te le recommande) ecrire dans tes
déclarations

dim db as DAO.database
dim tb as DAO.recordset


Y'a peut être d'autres soucis dans ton code (tu fais une
soustraction sur

deux champs date) mais commence d'abord par régler ce pb
de référence on

verra par la suite.

A +
Damien.

"Patrick" a écrit dans le message
news:

00d001c3b69b$5fb30620$
Merci de la reponse
mais je bloque encore sur "Dim Bdd As DataBase", il
n'accepte pas la formule???
et je ne trouve pas
dois-je vous dire que je ne suis pas trop callé avec
Access

Encore merci
-----Message d'origine-----
Quand tu fais appel à des objets de type Recodset,
l'instruction Tb!Heurefin et Tb!HeureDebut (et non Bedut)
est elle acceptées ?

J'ai l'habitude de programmer en utilisant l'instruction:
tb.field("Heurefin") et tb.field("HeureDebut")

a+
-----Message d'origine-----
Sous Access2000

Private Sub Texte16_GotFocus()
Dim TotalHrs, TotalMin, TempsJour, HrsMin As Integer
Dim Bdd As DataBase, Tb As Recordset
Set Bdd = CurrentDb
Set Tb = Bdd.OpenRecordset("tb1RelevéHeures")
TotalHrs = 0
TotalMin = 0
TempsJour = 0
While Not Tb.EOF
TempsJours = Tb!HeureFin - Tb!HeureBebut
TotalHrs = TotalHrs + Hour(TempsJour)
TotalMin = TotalMin + Minute(TempsJour)
Tb.MoveNext
Wend
HrsMin = TotalMin 60
TotalMin = TotalMin Mod 60
TotalHrs = TotalHrs + HrsMin
Me!Texte16 = Format(TotalHrs, "00") & ":" & Format
(TotalMin, "00")
End Sub

.

.





.





Avatar
Patrick
UN GRAND MERCI A VOUS
Vous m'avez retiré un belle épine du pied
encore Merci
Patrick
-----Message d'origine-----
Salut,
Ben toi tu me sembles être le roi du bug :-)

tu déclares tempsjour
puis tu écris tempsjours !!
Tu m'étonnes que ça passe pas.
Déjà tu vas écrire
option explicit
en dessous option compare database

ensuite tu fais débogage puis compiler
et tu corriges tes erreurs

A part ça ton code semble fonctionner
J'ai testé avec une table T_heure et HeureDebut en heure
abrégé et HeureFin

idem

voilà mon code
Private Sub Texte0_GotFocus()
Dim db As DAO.Database
Dim tb As DAO.Recordset
Dim TotalHrs, TotalMin, TempsJour, HrsMin As Integer


Set db = CurrentDb
Set tb = db.OpenRecordset("T_heure")
While Not tb.EOF
TempsJour = tb!heuredebut - tb!heurefin
TotalHrs = TotalHrs + Hour(TempsJour)
TotalMin = TotalMin + Minute(TempsJour)
tb.MoveNext

Wend
HrsMin = TotalMin / 60
TotalMin = TotalMin Mod 60
TotalHrs = TotalHrs + HrsMin


Me.Texte0 = Format(TotalHrs, "00") & ":" & Format
(TotalMin, "00")


tb.Close
db.Close
Set tb = Nothing
Set db = Nothing

End Sub

En espèrant t'aider.

A +
Damien.

"Patrick" a écrit dans le message
news:

00e501c3b6a7$9f502810$
Merci du tuyau
mais je bloque sur" TempsJours = tb.field
("Heurefin") et tb.field("HeureDebut") "
Encore Merci
-----Message d'origine-----
Salut,
Tu es sur 2000 et tu codes en DAO
Or sur 2000 DAO n'est pas référencé par défaut
quand tu écris
dim db as database
Access croit que tu veux utiliser ADO
La solution
Dans VBE outilréférence
coche microsoft DAO.3.6.dll
Et remonte cette réf au dessus d'ADO
Tu peux en plus (je te le recommande) ecrire dans tes
déclarations

dim db as DAO.database
dim tb as DAO.recordset


Y'a peut être d'autres soucis dans ton code (tu fais une
soustraction sur

deux champs date) mais commence d'abord par régler ce pb
de référence on

verra par la suite.

A +
Damien.

"Patrick" a écrit dans le message
news:

00d001c3b69b$5fb30620$
Merci de la reponse
mais je bloque encore sur "Dim Bdd As DataBase", il
n'accepte pas la formule???
et je ne trouve pas
dois-je vous dire que je ne suis pas trop callé avec
Access

Encore merci
-----Message d'origine-----
Quand tu fais appel à des objets de type Recodset,
l'instruction Tb!Heurefin et Tb!HeureDebut (et non
Bedut)



est elle acceptées ?

J'ai l'habitude de programmer en utilisant
l'instruction:



tb.field("Heurefin") et tb.field("HeureDebut")

a+
-----Message d'origine-----
Sous Access2000

Private Sub Texte16_GotFocus()
Dim TotalHrs, TotalMin, TempsJour, HrsMin As
Integer




Dim Bdd As DataBase, Tb As Recordset
Set Bdd = CurrentDb
Set Tb = Bdd.OpenRecordset("tb1RelevéHeures")
TotalHrs = 0
TotalMin = 0
TempsJour = 0
While Not Tb.EOF
TempsJours = Tb!HeureFin - Tb!HeureBebut
TotalHrs = TotalHrs + Hour(TempsJour)
TotalMin = TotalMin + Minute(TempsJour)
Tb.MoveNext
Wend
HrsMin = TotalMin 60
TotalMin = TotalMin Mod 60
TotalHrs = TotalHrs + HrsMin
Me!Texte16 = Format(TotalHrs, "00") & ":" & Format
(TotalMin, "00")
End Sub

.

.





.




.