OVH Cloud OVH Cloud

visible ou pas visible

15 réponses
Avatar
Yann
bonjours

j'ais un bout de code qui n'a pas l'air de fonctionner normalement quel
qu'un pourais me dir quoi?
Merci
yann

dbl = FileLen(CurrentDb.Name)
If dbl > (150 * 1024 * 1024) Then
Me!Compactage.Visible = False
ElseIf dbl < (150 * 1024 * 1024) Then
Me!Compactage.Visible = True
End If

10 réponses

1 2
Avatar
Charles ERNST
c'est quoi FileLen ?


"Yann" a écrit dans le message de
news:
bonjours

j'ais un bout de code qui n'a pas l'air de fonctionner normalement quel
qu'un pourais me dir quoi?
Merci
yann

dbl = FileLen(CurrentDb.Name)
If dbl > (150 * 1024 * 1024) Then
Me!Compactage.Visible = False
ElseIf dbl < (150 * 1024 * 1024) Then
Me!Compactage.Visible = True
End If




Avatar
Jessy SEMPERE
Bonjour

FileLen correspond à la taille en octet d'un fichier, en l'occurence
de la base de donnée en cours.

Sinon Yann tu testes si dbl est supérieur à quelquechose et ensuite
tu re-testes si c'est inférieur à ce même quelquechose, ce n'est pas
utile, si ce n'est pas supérieur, c'est forcément inférieur (ou égal).

Donc essais :
dbl = FileLen(CurrentDb.Name)
If dbl > (150 * 1024 * 1024) Then
Me!Compactage.Visible = False
Else
Me!Compactage.Visible = True
End If

Sinon qu'est ce qui ne marche pas exactement ?

@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
Avatar
Evaro
Bonjour
"Yann" a écrit dans le
message de news:

bonjours

j'ais un bout de code qui n'a pas l'air de
fonctionner normalement quel

qu'un pourais me dir quoi?
Merci
yann

dbl = FileLen(CurrentDb.Name)
If dbl > (150 * 1024 * 1024) Then
Me!Compactage.Visible = False
ElseIf dbl < (150 * 1024 * 1024) Then
Me!Compactage.Visible = True
End If



























1 - Me.Compactage et non Me!Compactage.
2 - Pourquoi ElseIf ? Else tout court suffit.
3 - Que se passe-t-il si dbl est strictement égal
à 150*1024*1024 ?
4 - Plus simple :

Me.Compactage.Visible = (dbl < 150*1024*1024)
Les parenthèses sont facultatives, mais elles
améliorent la lisibilité.


--
@ +
Etienne
Charte du forum:
http://users.skynet.be/mpfa/charte.htm
























Avatar
Yann
filelen correspond a la taille de la base


"Charles ERNST" a écrit dans le message de
news:
c'est quoi FileLen ?


"Yann" a écrit dans le message de
news:
bonjours

j'ais un bout de code qui n'a pas l'air de fonctionner normalement quel
qu'un pourais me dir quoi?
Merci
yann

dbl = FileLen(CurrentDb.Name)
If dbl > (150 * 1024 * 1024) Then
Me!Compactage.Visible = False
ElseIf dbl < (150 * 1024 * 1024) Then
Me!Compactage.Visible = True
End If








Avatar
Jessy SEMPERE
Re,

Ben écoutes je ne comprends pas...
Si on renseignes directement la valeur ça fonctionne :
dim dbl as double
dbl = filelen(currentdb.name)
if dbl > 157286400 then
...

Par contre si on essais :
dbl = 150*1024*1024
ça plante et honnêtement je ne comprends vraiment pas pourquoi...

@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
Avatar
Jessy SEMPERE
Sinon tu peux passer par la fonction Eval()
exemple :
Dim dbl As Double
dbl = FileLen(CurrentDb.Name)
If dbl < Eval("150*1024*1024") Then
Me.Compactage.Visible = False
Else
Me.Compactage.Visible = True
End If

@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
Avatar
Anor
Bonjour Jessy,


| Par contre si on essais :
| dbl = 150*1024*1024
| ça plante et honnêtement je ne comprends vraiment pas pourquoi...


C'est parce que Access interprète le premier argument comme un Integer

Il faut faire :
dbl = CDbl(150) * 1024 * 1024

Copie de l'aide :

You attempt to use a number in a calculation, and that number is coerced into an integer, but
the result is larger than an integer. For example:
Dim x As Long
x = 2000 * 365 ' Error: Overflow
To work around this situation, type the number, like this:

Dim x As Long
x = CLng(2000) * 365

--
à+
Arnaud
----------------------------------------------
Conseils d'utilisation, sites recommandés :
http://users.skynet.be/mpfa/
Access Memorandum - Les tablettes d'Anor
www.anor.fr.st
----------------------------------------------
Avatar
Raymond
Bonjour jessy.
ça provoque un dépassement de capacité .
il faut passer par : dbl = 150# * 1024# * 1024# et tu obtiendra bien le
résultat de 157 286 400


--
@+
Raymond Access MVP.
http://access.seneque.free.fr/
http://users.skynet.be/mpfa/charte.htm pour une meilleure
efficacité de tes interventions sur MPFA.


"Jessy SEMPERE" a écrit dans le message de
news:bgaker$c3a$
Sinon tu peux passer par la fonction Eval()
exemple :
Dim dbl As Double
dbl = FileLen(CurrentDb.Name)
If dbl < Eval("150*1024*1024") Then
Me.Compactage.Visible = False
Else
Me.Compactage.Visible = True
End If

@+
Jessy Sempere - Access MVP



Avatar
Jessy SEMPERE
Salut
ça provoque un dépassement de capacité .
il faut passer par : dbl = 150# * 1024# * 1024# et tu obtiendra bien le
résultat de 157 286 400


Ben écoutes Arnaud vient de m'expliquer la même chose et pour le
coup c'est vraiment un truc que je ne savais pas...
Comme je disais à Arnaud, on en apprend tous les jours.

Comment as-tu trouvé cette particularité ?
--
@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------

Avatar
Raymond
je l'ai trouvé par hasard en composant par exemple:
150.00 * 1024.00 * 1024.00
et c'est access qui met lui-meme le # car ça devient une constante de
compilation et non plus une variable. je ne sais plus si c'était en 97 ou en
2000.
la ligne vb devient 150# * 1024# * 1024# automatiquement.

--
@+
Raymond Access MVP.
http://access.seneque.free.fr/
http://users.skynet.be/mpfa/charte.htm pour une meilleure
efficacité de tes interventions sur MPFA.


"Jessy SEMPERE" a écrit dans le message de
news:bgald6$co5$
Salut
ça provoque un dépassement de capacité .
il faut passer par : dbl = 150# * 1024# * 1024# et tu obtiendra bien le
résultat de 157 286 400


Ben écoutes Arnaud vient de m'expliquer la même chose et pour le
coup c'est vraiment un truc que je ne savais pas...
Comme je disais à Arnaud, on en apprend tous les jours.

Comment as-tu trouvé cette particularité ?
--
@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------





1 2