Rechercher : dans
Par :

Dépassement de capacité vba access

Dernière réponse le 23 nov 2007 à 16:25:19 mohcultiv, le 20 avr 2007 à 11:46:22 
 Signaler ce message aux modérateurs

Salut à tous,

je dévelloppe avec vba access et lorsque j'essaie d'effectuer l'opération suivante j'obtiens un dépassement de capacité:

dim h as integer
h= 12*3600

j 'ai essayer de mette h en long mais ca ne change rien

si je fais :
h=12*360
h=h*10
ca fonctionne

mais le mieux c pas ca c quand je fais
dim h as integer
h=12*36000
ca fonctionne!

J'ai rien compris multiplication par 3600 cause un dépassement de capacité mais par 36000 ca fonctionne.

Est ce que quelqun y comprend quelque chose?

Configuration: Windows XP
Internet Explorer 6.0

1

blux, le 20 avr 2007 à 13:53:10

Salut,

normalement, seul h=12*360 devrait marcher...

Un integer est compris entre -32768 et 32767 (16 bits), donc toute opération qui tend à mettre une valeur en dehors de ces limites se voit être refusée.

Quand ça marche, tu n'as pas mis h en variant ?
A+ Blux

 "Les cons, ça ose tout.
C'est même à ça qu'on les reconnait"

Répondre à blux

2

mohcultiv, le 22 avr 2007 à 16:50:53

Non il etait bel et bien en integer

mais en mettant toutes les variables qui servent à mon calcul en long ca marche

Répondre à mohcultiv

3

jaajaa, le 23 nov 2007 à 15:38:34

Salut

j'ai une quistion a une relation avec le dépassement en arithmétique binaire
je voudrais s'avoire c quoi un dépassement ;et. je voudrais effectier les operations suivants en signialant s'il a dépassement ou non :et pour quoi il y ce dépassement ?
merci

Répondre à jaajaa

5

le père, le 23 nov 2007 à 16:00:54

Bonjour,

Pour faire simple, disons qu'un dépassement, c'est quand un calcul donne un nombre trop grand. Contrairement aux hommes qui peuvent écrire des nombres aussi longs que nécessaire (s'ils en ont le courage) sur un bout de papier, les logiciels utilisent généralement des nombres de taille fixe.
La limite dépend de la machine, du langage et du type de nombre (entier, virgule flottante...). En général, le langage de programmation gère lles dépassements en indiquant une erreur et en arrêtant le programme, mais on peut les gérer soi-même à l'aides d'instructions particulières ( par exemple On error en VB)

Répondre à le père

4

jaajaa, le 23 nov 2007 à 15:43:59

A=01010111, B+00111100 et C=10100110
(a) A+B
(b) A+B+C
(c) B-A
(d) C-A

Répondre à jaajaa

6

jaajaa, le 23 nov 2007 à 16:17:36

Merci
par exemple en a A=01010111 et B = 00111100 C=10100110
et je voudrais effectuer les operation A+B et A+B+C
je sais bien que A+B=10010011 et A+B+C=100111001 mais est ce qu'il y a un dépassement dans si operations et le quelle?
et merci beaucoup d'avoire répondai a ma quistion

Répondre à jaajaa

7

 le père, le 23 nov 2007 à 16:25:19

Qu'il y ait ou non un dépassement, cela dépend de la machine, du langageet du type de variable que tu utilises.
Si tu travailles sur des octets (8 bits), tu n'as pas de dépassement avec A+B, mais il y en a un avec A+B+C

Répondre à le père
Collection CommentÇaMarche.net