Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > Requêtes et SQL.
Requêtes et SQL. Tout ce qui concerne vos questions sur les requêtes et le SQL sous Access se trouve ici.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 01/02/2012, 11h35   #1
Invité de passage
 
Homme John Lito
Artisan
Inscription : janvier 2012
Messages : 10
Détails du profil
Informations personnelles :
Nom : Homme John Lito
Localisation : Belgique

Informations professionnelles :
Activité : Artisan
Secteur : Santé

Informations forums :
Inscription : janvier 2012
Messages : 10
Points : 3
Points : 3
Par défaut dépassement de capacité

Bonjour,

Pouvez-vous m'aider à comprendre ce qu'il se passe.

J'ai une requête SQL qui fonctionne très bien > vue institutionnelle pas de group by. Il me faut également une vue par Pôle/UG (ensemble de Centre de frais). J'ai donc dupliquer ma requête et j'ai ajouté un Group By Pole_UG (18 Pole_UG différent) qui fonctionne très bien également.
Ensuite il me fallait également les mêmes traitements, mais avec un regroupement par Centre de frais (CF). Après dupplication, j'ai donc remplacé le Group By Pole_UG par Group By CF (240 cf différents).

Malheureusement j'ai pour cette requête un message d'erreur «*dépassement de capacité*». La documentation que j'ai trouvée sur le Net m'a fait penser que le type de valeur recueillie dans mon alias n'était pas correct. J'ai donc cherché comment forcer le format d'un alias. J'ai alors "casté" mes variables comme ceci : Cdbl((Sum([malInf1ms(1)]))/(Sum([jrsETPtravContr]))).

Tous les champs utilisés dans les calculs sont de type numérique (reel double)
Ma table comporte 4307 enregistrements.
Malheureusement j'ai toujours le même message d'erreur. J'ai donc testé sur des pc plus puissants (plus de RAM, CPU plus costaud, environnement 64 bits...cela ne change absolument rien...;(

Ceci fonctionne

Code SQL :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
SELECT Pool_UG, '4. Age', IIf([AgeFinAnnee]<=35,"<=35 ans",IIf([AgeFinAnnee]>35 AND [AgeFinAnnee]<=50,">35 à <50 ans","> 50 ans")) AS Categorie_Age,  Sum(absenteisme.ETP_STATUT) AS [ETP au cadre], (Sum([FreqMal])) AS Fréquence, (Sum([jrsETPmal(123)]))/(Sum([jrsETPtravContr])) AS [% abs mal], (Sum([AT(4)]))/(Sum([jrsETPtravContr])) AS [% AT], ((Sum([malInf1ms(1)]))+(Sum([mal1ms_1an(2)]))+(Sum([malSup1an(3)]))+(Sum([AT(4)]))+(Sum([mat_naiss(5)]))+(Sum([AbsAutor(6)]))+(Sum([AbsNonAutor(7)])))/(Sum([jrsETPtravContr])) AS [% Abs Glob], (Sum([malInf1ms(1)]))/(Sum([jrsETPtravContr])) AS [% Mal < 1 mois], (Sum([mal1jour(0)]))/(Sum([jrsETPtravContr])) AS [% Mal 1 jour]
FROM absenteisme
GROUP BY Pool_UG, IIf([AgeFinAnnee]<=35,"<=35 ans",IIf([AgeFinAnnee]>35 AND [AgeFinAnnee]<=50,">35 à <50 ans","> 50 ans"))
UNION
SELECT  Pool_UG, '3. Genre', absenteisme.genre, Sum(absenteisme.ETP_STATUT) AS [ETP au cadre], (Sum([FreqMal])) AS Fréquence, (Sum([jrsETPmal(123)]))/(Sum([jrsETPtravContr])) AS [% abs mal], (Sum([AT(4)]))/(Sum([jrsETPtravContr])) AS [% AT], ((Sum([malInf1ms(1)]))+(Sum([mal1ms_1an(2)]))+(Sum([malSup1an(3)]))+(Sum([AT(4)]))+(Sum([mat_naiss(5)]))+(Sum([AbsAutor(6)]))+(Sum([AbsNonAutor(7)])))/(Sum([jrsETPtravContr])) AS [% Abs Glob], (Sum([malInf1ms(1)]))/(Sum([jrsETPtravContr])) AS [% Mal < 1 mois], (Sum([mal1jour(0)]))/(Sum([jrsETPtravContr])) AS [% Mal 1 jour]
FROM absenteisme
GROUP BY  Pool_UG, absenteisme.genre
UNION
SELECT Pool_UG,  '5. Contrat', absenteisme.Statut,  Sum(absenteisme.ETP_STATUT) AS [ETP au cadre], (Sum([FreqMal])) AS Fréquence, (Sum([jrsETPmal(123)]))/(Sum([jrsETPtravContr])) AS [% abs mal], (Sum([AT(4)]))/(Sum([jrsETPtravContr])) AS [% AT], ((Sum([malInf1ms(1)]))+(Sum([mal1ms_1an(2)]))+(Sum([malSup1an(3)]))+(Sum([AT(4)]))+(Sum([mat_naiss(5)]))+(Sum([AbsAutor(6)]))+(Sum([AbsNonAutor(7)])))/(Sum([jrsETPtravContr])) AS [% Abs Glob], (Sum([malInf1ms(1)]))/(Sum([jrsETPtravContr])) AS [% Mal < 1 mois], (Sum([mal1jour(0)]))/(Sum([jrsETPtravContr])) AS [% Mal 1 jour]
FROM absenteisme
GROUP BY Pool_UG, absenteisme.Statut
UNION
SELECT Pool_UG, '1. Filières', absenteisme.Filiere,  Sum(absenteisme.ETP_STATUT) AS [ETP au cadre], (Sum([FreqMal])) AS Fréquence, (Sum([jrsETPmal(123)]))/(Sum([jrsETPtravContr])) AS [% abs mal], (Sum([AT(4)]))/(Sum([jrsETPtravContr])) AS [% AT], ((Sum([malInf1ms(1)]))+(Sum([mal1ms_1an(2)]))+(Sum([malSup1an(3)]))+(Sum([AT(4)]))+(Sum([mat_naiss(5)]))+(Sum([AbsAutor(6)]))+(Sum([AbsNonAutor(7)])))/(Sum([jrsETPtravContr])) AS [% Abs Glob], (Sum([malInf1ms(1)]))/(Sum([jrsETPtravContr])) AS [% Mal < 1 mois], (Sum([mal1jour(0)]))/(Sum([jrsETPtravContr])) AS [% Mal 1 jour]
FROM absenteisme
GROUP BY Pool_UG, absenteisme.Filiere
UNION
SELECT Pool_UG,  '2. Q & NQ', absenteisme.Q_NQ,  Sum(absenteisme.ETP_STATUT) AS [ETP au cadre], (Sum([FreqMal])) AS Fréquence, (Sum([jrsETPmal(123)]))/(Sum([jrsETPtravContr])) AS [% abs mal], (Sum([AT(4)]))/(Sum([jrsETPtravContr])) AS [% AT], ((Sum([malInf1ms(1)]))+(Sum([mal1ms_1an(2)]))+(Sum([malSup1an(3)]))+(Sum([AT(4)]))+(Sum([mat_naiss(5)]))+(Sum([AbsAutor(6)]))+(Sum([AbsNonAutor(7)])))/(Sum([jrsETPtravContr])) AS [% Abs Glob], (Sum([malInf1ms(1)]))/(Sum([jrsETPtravContr])) AS [% Mal < 1 mois], (Sum([mal1jour(0)]))/(Sum([jrsETPtravContr])) AS [% Mal 1 jour]
FROM absenteisme
GROUP BY  Pool_UG, absenteisme.Q_NQ
UNION SELECT  Pool_UG, '6. Global', ' ', Sum(absenteisme.ETP_STATUT) AS [ETP au cadre], (Sum([FreqMal])) AS Fréquence, (Sum([jrsETPmal(123)]))/(Sum([jrsETPtravContr])) AS [% abs mal], (Sum([AT(4)]))/(Sum([jrsETPtravContr])) AS [% AT], ((Sum([malInf1ms(1)]))+(Sum([mal1ms_1an(2)]))+(Sum([malSup1an(3)]))+(Sum([AT(4)]))+(Sum([mat_naiss(5)]))+(Sum([AbsAutor(6)]))+(Sum([AbsNonAutor(7)])))/(Sum([jrsETPtravContr])) AS [% Abs Glob], (Sum([malInf1ms(1)]))/(Sum([jrsETPtravContr])) AS [% Mal < 1 mois], (Sum([mal1jour(0)]))/(Sum([jrsETPtravContr])) AS [% Mal 1 jour]
FROM absenteisme
GROUP BY Pool_UG;



Et pas ceci


Code SQL :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
SELECT CF, '4. Age', IIf([AgeFinAnnee]<=35,"<=35 ans",IIf([AgeFinAnnee]>35 AND [AgeFinAnnee]<=50,">35 à <50 ans","> 50 ans")) AS Categorie_Age,  Sum(absenteisme.ETP_STATUT) AS [ETP au cadre], (Sum([FreqMal])) AS Fréquence, (Sum([jrsETPmal(123)]))/(Sum([jrsETPtravContr])) AS [% abs mal], (Sum([AT(4)]))/(Sum([jrsETPtravContr])) AS [% AT], ((Sum([malInf1ms(1)]))+(Sum([mal1ms_1an(2)]))+(Sum([malSup1an(3)]))+(Sum([AT(4)]))+(Sum([mat_naiss(5)]))+(Sum([AbsAutor(6)]))+(Sum([AbsNonAutor(7)])))/(Sum([jrsETPtravContr])) AS [% Abs Glob], (Sum([malInf1ms(1)]))/(Sum([jrsETPtravContr])) AS [% Mal < 1 mois], (Sum([mal1jour(0)]))/(Sum([jrsETPtravContr])) AS [% Mal 1 jour]
FROM absenteisme
GROUP BY CF, IIf([AgeFinAnnee]<=35,"<=35 ans",IIf([AgeFinAnnee]>35 AND [AgeFinAnnee]<=50,">35 à <50 ans","> 50 ans"))
UNION
SELECT  CF, '3. Genre', absenteisme.genre, Sum(absenteisme.ETP_STATUT) AS [ETP au cadre], (Sum([FreqMal])) AS Fréquence, (Sum([jrsETPmal(123)]))/(Sum([jrsETPtravContr])) AS [% abs mal], (Sum([AT(4)]))/(Sum([jrsETPtravContr])) AS [% AT], ((Sum([malInf1ms(1)]))+(Sum([mal1ms_1an(2)]))+(Sum([malSup1an(3)]))+(Sum([AT(4)]))+(Sum([mat_naiss(5)]))+(Sum([AbsAutor(6)]))+(Sum([AbsNonAutor(7)])))/(Sum([jrsETPtravContr])) AS [% Abs Glob], (Sum([malInf1ms(1)]))/(Sum([jrsETPtravContr])) AS [% Mal < 1 mois], (Sum([mal1jour(0)]))/(Sum([jrsETPtravContr])) AS [% Mal 1 jour]
FROM absenteisme
GROUP BY CF, absenteisme.genre
UNION
SELECT CF,  '5. Contrat', absenteisme.Statut,  Sum(absenteisme.ETP_STATUT) AS [ETP au cadre], (Sum([FreqMal])) AS Fréquence, (Sum([jrsETPmal(123)]))/(Sum([jrsETPtravContr])) AS [% abs mal], (Sum([AT(4)]))/(Sum([jrsETPtravContr])) AS [% AT], ((Sum([malInf1ms(1)]))+(Sum([mal1ms_1an(2)]))+(Sum([malSup1an(3)]))+(Sum([AT(4)]))+(Sum([mat_naiss(5)]))+(Sum([AbsAutor(6)]))+(Sum([AbsNonAutor(7)])))/(Sum([jrsETPtravContr])) AS [% Abs Glob], (Sum([malInf1ms(1)]))/(Sum([jrsETPtravContr])) AS [% Mal < 1 mois], (Sum([mal1jour(0)]))/(Sum([jrsETPtravContr])) AS [% Mal 1 jour]
FROM absenteisme
GROUP BY CF, absenteisme.Statut
UNION
SELECT CF, '1. Filières', absenteisme.Filiere,  Sum(absenteisme.ETP_STATUT) AS [ETP au cadre], (Sum([FreqMal])) AS Fréquence, (Sum([jrsETPmal(123)]))/(Sum([jrsETPtravContr])) AS [% abs mal], (Sum([AT(4)]))/(Sum([jrsETPtravContr])) AS [% AT], ((Sum([malInf1ms(1)]))+(Sum([mal1ms_1an(2)]))+(Sum([malSup1an(3)]))+(Sum([AT(4)]))+(Sum([mat_naiss(5)]))+(Sum([AbsAutor(6)]))+(Sum([AbsNonAutor(7)])))/(Sum([jrsETPtravContr])) AS [% Abs Glob], (Sum([malInf1ms(1)]))/(Sum([jrsETPtravContr])) AS [% Mal < 1 mois], (Sum([mal1jour(0)]))/(Sum([jrsETPtravContr])) AS [% Mal 1 jour]
FROM absenteisme
GROUP BY CF, absenteisme.Filiere
UNION
SELECT CF,  '2. Q & NQ', absenteisme.Q_NQ,  Sum(absenteisme.ETP_STATUT) AS [ETP au cadre], (Sum([FreqMal])) AS Fréquence, (Sum([jrsETPmal(123)]))/(Sum([jrsETPtravContr])) AS [% abs mal], (Sum([AT(4)]))/(Sum([jrsETPtravContr])) AS [% AT], ((Sum([malInf1ms(1)]))+(Sum([mal1ms_1an(2)]))+(Sum([malSup1an(3)]))+(Sum([AT(4)]))+(Sum([mat_naiss(5)]))+(Sum([AbsAutor(6)]))+(Sum([AbsNonAutor(7)])))/(Sum([jrsETPtravContr])) AS [% Abs Glob], (Sum([malInf1ms(1)]))/(Sum([jrsETPtravContr])) AS [% Mal < 1 mois], (Sum([mal1jour(0)]))/(Sum([jrsETPtravContr])) AS [% Mal 1 jour]
FROM absenteisme
GROUP BY  CF, absenteisme.Q_NQ
UNION SELECT  CF, '6. Global', ' ', Sum(absenteisme.ETP_STATUT) AS [ETP au cadre], (Sum([FreqMal])) AS Fréquence, (Sum([jrsETPmal(123)]))/(Sum([jrsETPtravContr])) AS [% abs mal], (Sum([AT(4)]))/(Sum([jrsETPtravContr])) AS [% AT], ((Sum([malInf1ms(1)]))+(Sum([mal1ms_1an(2)]))+(Sum([malSup1an(3)]))+(Sum([AT(4)]))+(Sum([mat_naiss(5)]))+(Sum([AbsAutor(6)]))+(Sum([AbsNonAutor(7)])))/(Sum([jrsETPtravContr])) AS [% Abs Glob], (Sum([malInf1ms(1)]))/(Sum([jrsETPtravContr])) AS [% Mal < 1 mois], (Sum([mal1jour(0)]))/(Sum([jrsETPtravContr])) AS [% Mal 1 jour]
FROM absenteisme
GROUP BY CF;


Pourquoi ? Access a-t-il ce genre de limite ? Où dois-je procéder autrement ?
D'avance merci pour votre aide.
Cordialement
John
johnlito est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/02/2012, 15h09   #2
Membre Expert
 
Avatar de nico84
 
Homme Nicolas Guimbal
Consultant/développeur ERP
Inscription : mai 2008
Messages : 1 267
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Guimbal
Âge : 49
Localisation : France

Informations professionnelles :
Activité : Consultant/développeur ERP
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : mai 2008
Messages : 1 267
Points : 1 890
Points : 1 890
Bonjour,

Question bête : il n'y aurait pas une division par 0 ???
(ajoute having sum(...)<>0 pour voir)
nico84 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/02/2012, 17h19   #3
Nouveau Membre du Club
 
Homme Thib Oxur
apprenti ingénieur en informatique et réseaux
Inscription : octobre 2010
Messages : 49
Détails du profil
Informations personnelles :
Nom : Homme Thib Oxur
Localisation : France, Drôme (Rhône Alpes)

Informations professionnelles :
Activité : apprenti ingénieur en informatique et réseaux
Secteur : Industrie

Informations forums :
Inscription : octobre 2010
Messages : 49
Points : 30
Points : 30
essaye de caster directement sur les sum, et non sur les résultats des divisions des sum
tibjedi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/02/2012, 13h59   #4
Invité de passage
 
Homme John Lito
Artisan
Inscription : janvier 2012
Messages : 10
Détails du profil
Informations personnelles :
Nom : Homme John Lito
Localisation : Belgique

Informations professionnelles :
Activité : Artisan
Secteur : Santé

Informations forums :
Inscription : janvier 2012
Messages : 10
Points : 3
Points : 3
Merci pour la suggestion.

Ou dois-je mettre le ?
A chaque somme ? Directement dans la formule ?...

Comme ceci ?

Code :
1
2
3
SELECT  CF, '3. Genre', absenteisme.genre, ...(having Sum([jrsETPmal(123)]))<>0/(having Sum([jrsETPtravContr]))<>0 AS [% abs mal].....
FROM absenteisme
GROUP BY CF, absenteisme.genre
Pouvez-vous écrire un exemple avec ma premiere ligne de code ?

Merci
johnlito est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/02/2012, 14h39   #5
Nouveau Membre du Club
 
Homme Thib Oxur
apprenti ingénieur en informatique et réseaux
Inscription : octobre 2010
Messages : 49
Détails du profil
Informations personnelles :
Nom : Homme Thib Oxur
Localisation : France, Drôme (Rhône Alpes)

Informations professionnelles :
Activité : apprenti ingénieur en informatique et réseaux
Secteur : Industrie

Informations forums :
Inscription : octobre 2010
Messages : 49
Points : 30
Points : 30
Le having sum je ne connais pas mais la façon dont tu l'utilise me semble bonne.

Moi ce que je suggérai c'est de faire ceci :
Code :
Cdbl(Sum([malInf1ms(1)]))/Cdbl(Sum([jrsETPtravContr]))
plutot que
Code :
Cdbl((Sum([malInf1ms(1)]))/(Sum([jrsETPtravContr])))
Mais bon j'suis qu'un gros débutant ^^'
tibjedi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/02/2012, 17h22   #6
Rédacteur/Modérateur

 
Avatar de loufab
 
Homme Fabrice CONSTANS
Ingénieur développement logiciels
Inscription : avril 2005
Messages : 7 090
Détails du profil
Informations personnelles :
Nom : Homme Fabrice CONSTANS
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : avril 2005
Messages : 7 090
Points : 11 622
Points : 11 622
Bonjour,

D'accord avec Nico84, une division par zero.

Transforme chaque somme de dénominateur de la manière suivante.

Code :
sum([numérateur])/iif(sum([dénominateur])<>0;sum([dénominateur]);1) as ....
Ou écarte les valeurs à zéro en utilisant :

Code :
1
2
 
...FROM table WHERE sum([dénominateur1])<>0 AND sum([dénominateur2])<>0;
Ps : A quoi sert le cast si c'est une division par zéro qui pose problème ?

Cordialement,
__________________
Classe MELA(CRUD) Opérateur IN et zone de liste
MsGraph et VBA - 1e Partie 2e partie
Entête d'états-Opérateur LIKE-Evénements formulaires-Cours 2010
Complément :Générateur de msgbox
Visitez mon Blog
Les questions techniques par MP ne sont pas lues et je ne pratique pas l'extispicine
loufab est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/02/2012, 17h28   #7
Nouveau Membre du Club
 
Homme Thib Oxur
apprenti ingénieur en informatique et réseaux
Inscription : octobre 2010
Messages : 49
Détails du profil
Informations personnelles :
Nom : Homme Thib Oxur
Localisation : France, Drôme (Rhône Alpes)

Informations professionnelles :
Activité : apprenti ingénieur en informatique et réseaux
Secteur : Industrie

Informations forums :
Inscription : octobre 2010
Messages : 49
Points : 30
Points : 30
je proposais ça car on a pas vérifié que c'était du à une division par zero, c'était juste une suggestion
Du coup j'imagine que tu peux supprimer tous tes CDbl
tibjedi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/02/2012, 15h33   #8
Membre Expert
 
Avatar de nico84
 
Homme Nicolas Guimbal
Consultant/développeur ERP
Inscription : mai 2008
Messages : 1 267
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Guimbal
Âge : 49
Localisation : France

Informations professionnelles :
Activité : Consultant/développeur ERP
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : mai 2008
Messages : 1 267
Points : 1 890
Points : 1 890
having est une condition similaire à where mais réservés aux éléments concernés par le group by
Elle se place juste avant l'order by ou avant chaque union
Exemple sur le premier select :
Code :
1
2
3
4
SELECT CF, '4. Age', IIf([AgeFinAnnee]<=35,"<=35 ans",IIf([AgeFinAnnee]>35 AND [AgeFinAnnee]<=50,">35 à <50 ans","> 50 ans")) AS Categorie_Age,  Sum(absenteisme.ETP_STATUT) AS [ETP au cadre], (Sum([FreqMal])) AS Fréquence, (Sum([jrsETPmal(123)]))/(Sum([jrsETPtravContr])) AS [% abs mal], (Sum([AT(4)]))/(Sum([jrsETPtravContr])) AS [% AT], ((Sum([malInf1ms(1)]))+(Sum([mal1ms_1an(2)]))+(Sum([malSup1an(3)]))+(Sum([AT(4)]))+(Sum([mat_naiss(5)]))+(Sum([AbsAutor(6)]))+(Sum([AbsNonAutor(7)])))/(Sum([jrsETPtravContr])) AS [% Abs Glob], (Sum([malInf1ms(1)]))/(Sum([jrsETPtravContr])) AS [% Mal < 1 mois], (Sum([mal1jour(0)]))/(Sum([jrsETPtravContr])) AS [% Mal 1 jour]
FROM absenteisme
GROUP BY CF, IIf([AgeFinAnnee]<=35,"<=35 ans",IIf([AgeFinAnnee]>35 AND [AgeFinAnnee]<=50,">35 à <50 ans","> 50 ans"))
HAVING Sum([jrsETPtravContr])<>0
Parfois comme le suggère loufab la condition est acceptée aussi dans le WHERE

Dans ton cas il faut tester tous les diviseurs...
nico84 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/02/2012, 15h34   #9
Invité de passage
 
Homme John Lito
Artisan
Inscription : janvier 2012
Messages : 10
Détails du profil
Informations personnelles :
Nom : Homme John Lito
Localisation : Belgique

Informations professionnelles :
Activité : Artisan
Secteur : Santé

Informations forums :
Inscription : janvier 2012
Messages : 10
Points : 3
Points : 3
Ok ...
Le "
Code :
HAVING Sum([jrsETPtravContr])<>0
" fonctionne très bien.

Merci beaucoup pour votre aide.
@bientôt
johnlito est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/02/2012, 12h55   #10
Invité de passage
 
Homme John Lito
Artisan
Inscription : janvier 2012
Messages : 10
Détails du profil
Informations personnelles :
Nom : Homme John Lito
Localisation : Belgique

Informations professionnelles :
Activité : Artisan
Secteur : Santé

Informations forums :
Inscription : janvier 2012
Messages : 10
Points : 3
Points : 3
À titre d'info,

existe-t-il un article Microsoft ou autre sur ce qui se cache derrière le message d'erreur «*dépassement de capacité*» ?

- Mauvais format de donnée (forcer avec CDbl)
- div par 0 impossible (HAVING Sum([jrsETPtravContr])<>0)
...
Afin d'avoir une liste des pistes à exploiter par type de message ?

Merci
johnlito est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/02/2012, 13h34   #11
Rédacteur/Modérateur

 
Avatar de loufab
 
Homme Fabrice CONSTANS
Ingénieur développement logiciels
Inscription : avril 2005
Messages : 7 090
Détails du profil
Informations personnelles :
Nom : Homme Fabrice CONSTANS
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : avril 2005
Messages : 7 090
Points : 11 622
Points : 11 622
Bouton d'aide sur le message d'erreur.

Mince ! il y a un bouton d'aide et une touche F1 sur ACCESS ?!!!
__________________
Classe MELA(CRUD) Opérateur IN et zone de liste
MsGraph et VBA - 1e Partie 2e partie
Entête d'états-Opérateur LIKE-Evénements formulaires-Cours 2010
Complément :Générateur de msgbox
Visitez mon Blog
Les questions techniques par MP ne sont pas lues et je ne pratique pas l'extispicine
loufab est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 27/02/2012, 14h58   #12
Invité de passage
 
Homme John Lito
Artisan
Inscription : janvier 2012
Messages : 10
Détails du profil
Informations personnelles :
Nom : Homme John Lito
Localisation : Belgique

Informations professionnelles :
Activité : Artisan
Secteur : Santé

Informations forums :
Inscription : janvier 2012
Messages : 10
Points : 3
Points : 3
1- Mise à par le bouton "OK", il n'existe pas de bouton "AIDE" avec access 2003
2- Via l'aide access "F1" aucune info concernant "dépassement de capacité"
...
johnlito est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/02/2012, 17h45   #13
Rédacteur/Modérateur

 
Avatar de loufab
 
Homme Fabrice CONSTANS
Ingénieur développement logiciels
Inscription : avril 2005
Messages : 7 090
Détails du profil
Informations personnelles :
Nom : Homme Fabrice CONSTANS
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : avril 2005
Messages : 7 090
Points : 11 622
Points : 11 622
1) Il y a bien un bouton d'aide sur cette erreur. C'est l'erreur N° 6.

Lorsqu'on clique dessus il affiche ceci :
Citation:
Dépassement de capacité (erreur 6)

Un dépassement de capacité se produit lorsque vous tentez d'effectuer une affectation dépassant les limites de la cible de l'affectation. Causes et solutions de cette erreur :

Le résultat d'une affectation, d'un calcul ou d'une conversion de type de données est trop grand pour être représenté dans la plage de valeurs autorisée pour ce type de variable.
Affectez la valeur à un type de variable pouvant contenir une plage de valeurs plus grande.

Une affectation à une propriété dépasse la valeur maximum de la propriété.
Vérifiez que votre affectation se situe à l'intérieur de la plage de la propriété cible.

Vous tentez d'utiliser dans un calcul un nombre converti dans un entier, mais le résultat est plus grand qu'un entier. Exemple :
Code :
1
2
    Dim x As Long
    x = 2 000 * 365   ' Erreur : Dépassement de capacité
Afin de contourner le problème, saisissez le nombre comme suit :

Code :
1
2
    Dim x As Long
    x = CLng(2 000) * 365
Pour plus d'informations, sélectionnez l'élément en question et appuyez sur F1 (sous Windows) ou AIDE (sur Macintosh).
__________________
Classe MELA(CRUD) Opérateur IN et zone de liste
MsGraph et VBA - 1e Partie 2e partie
Entête d'états-Opérateur LIKE-Evénements formulaires-Cours 2010
Complément :Générateur de msgbox
Visitez mon Blog
Les questions techniques par MP ne sont pas lues et je ne pratique pas l'extispicine
loufab est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h23.


 
 
 
 
Partenaires

Hébergement Web