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

Résultat d'une requête analyse croisée, Access 2.0

3 réponses
Avatar
mathilde
Bonjour à tous et toutes,

Je suis en train de développer une application de gestion bancaire et j'ai
défini une requête analyse croisée dont la structure semble être correcte
puisqu'elle me renvoie les enregistrements que je désire obtenir de façon
correcte, sous la forme :

Identifiant personne | Somme des Crédits | Somme des Débits
--------------------------------------------------------------
Personne 1 | 2000 | 1500
Personne 2 | 5000 |
Personne 3 | | 1000
Personne 4 | 3500 | 5000
etc.....

J'ai dès lors créé un état basé sur cette requête pour présenter toutes ces
informations, et je souhaiterai obtenir le solde par personne, à savoir la
somme des débits otée de la somme des crédits. Pour ce faire, j ai créé un
contrôle sur ledit état calculant cette soustraction, et différents autres
contrôles me permettant d'obtenir des totaux, plutôt classique ...

Mon problème est que je souhaiterai obtenir un "0" lorsque la requête ne
renvoie pas de montant (en crédit ou débit) pour avoir tout le temps un
solde signifié (et par exemple obtenir un solde négatif lorsque qu'une
personne n'a que des débits et pas de crédit).

A quel niveau intervenir (requête ? état ? ...) et comment faire pour que
cela soit possible ?

J'espère avoir été claire dans mes explications et j'espère également que la
question n'a pas été maintes fois débattue.
Dernière chose, je travaille sur la version 2.0 de MS Access...

Je vous remercie d'avance pour votre aide,

Cordialement,

Mathilde.

3 réponses

Avatar
tecman
Bonjour.

Ton probléme résulte du paramétrage des valeurs par défaut.
N'ayant rien spécifier dans la (les) table(s), aucune
valeur n'est inscrite par défaut. Donc la seule valeure
existante est "null". Ceci explique que ta requête ne
donne pas de valeurs.
Comment faire ?
Soit par du code VBa soit, le plus simle, définir 0 comme
valeur par défaut pour chaque champ entrant en compte dans
ta requête.

N'hésite pas à demander d'autre précisions au besoin.

@+
Tecman.
-----Message d'origine-----
Bonjour à tous et toutes,

Je suis en train de développer une application de gestion
bancaire et j'ai

défini une requête analyse croisée dont la structure
semble être correcte

puisqu'elle me renvoie les enregistrements que je désire
obtenir de façon

correcte, sous la forme :

Identifiant personne | Somme des Crédits | Somme des
Débits

----------------------------------------------------------
----

Personne 1 | 2000 |
1500

Personne 2 | 5000 |
Personne 3 |
| 1000

Personne 4 | 3500 |
5000

etc.....

J'ai dès lors créé un état basé sur cette requête pour
présenter toutes ces

informations, et je souhaiterai obtenir le solde par
personne, à savoir la

somme des débits otée de la somme des crédits. Pour ce
faire, j ai créé un

contrôle sur ledit état calculant cette soustraction, et
différents autres

contrôles me permettant d'obtenir des totaux, plutôt
classique ...


Mon problème est que je souhaiterai obtenir un "0"
lorsque la requête ne

renvoie pas de montant (en crédit ou débit) pour avoir
tout le temps un

solde signifié (et par exemple obtenir un solde négatif
lorsque qu'une

personne n'a que des débits et pas de crédit).

A quel niveau intervenir (requête ? état ? ...) et
comment faire pour que

cela soit possible ?

J'espère avoir été claire dans mes explications et
j'espère également que la

question n'a pas été maintes fois débattue.
Dernière chose, je travaille sur la version 2.0 de MS
Access...


Je vous remercie d'avance pour votre aide,

Cordialement,

Mathilde.




.



Avatar
Xavier HUE
Bonjour Mathilde,

Tu peux essayer avec le fonction VraiFaux(IIf en VB).
Mais je ne me souviens pas si celle-ci existe en Access 2.0

Dans SourceControl de ton textbox qui fait le calcul:
=VraiFaux(IsNull([TonChampCredit]); 0 ;
[TonChampCredit]) - VraiFaux(IsNull([TonChampDebit]); 0 ;
[TonChampDebit])

Au pire, créer la fonction suivante dans un module:

Function CalculerSolde(byVal varCredit as variant, byVal
varDebit as variant) As Currency

If IsNull(varCredit) Then
varCredit = 0
EndIf

If IsNull(varDebit) Then
varDebit = 0
EndIf

CalculerSolde = varCredit - varDebit
End Function

Et dans SourceControl de ton textbox qui fait le calcul:
= CalculerSolde([TonChampCredit];[TonChampDebit])

Cordialement.
Avatar
mathilde
ReBonjour,

Tout d'abord un grand merci à tous les deux pour vos conseils :-) !! J'ai
tout d'abord ajouté en valeur par défaut le 0 dans ma table contenant les
montants dont je me sers en requête, mais cela n'a rien changé. L'usage de
la fonction VraiFaux (qui existe bel et bien en version 2.0) m'a permis de
calculer correctement mes soldes.

Encore merci,

Cordialement,

Mathilde.


"mathilde" a écrit dans le message de news:
br4c1f$mtm$
Bonjour à tous et toutes,

Je suis en train de développer une application de gestion bancaire et j'ai
défini une requête analyse croisée dont la structure semble être correcte
puisqu'elle me renvoie les enregistrements que je désire obtenir de façon
correcte, sous la forme :

Identifiant personne | Somme des Crédits | Somme des Débits
--------------------------------------------------------------
Personne 1 | 2000 | 1500
Personne 2 | 5000 |
Personne 3 | | 1000
Personne 4 | 3500 | 5000
etc.....

J'ai dès lors créé un état basé sur cette requête pour présenter toutes
ces

informations, et je souhaiterai obtenir le solde par personne, à savoir la
somme des débits otée de la somme des crédits. Pour ce faire, j ai créé un
contrôle sur ledit état calculant cette soustraction, et différents autres
contrôles me permettant d'obtenir des totaux, plutôt classique ...

Mon problème est que je souhaiterai obtenir un "0" lorsque la requête ne
renvoie pas de montant (en crédit ou débit) pour avoir tout le temps un
solde signifié (et par exemple obtenir un solde négatif lorsque qu'une
personne n'a que des débits et pas de crédit).

A quel niveau intervenir (requête ? état ? ...) et comment faire pour que
cela soit possible ?

J'espère avoir été claire dans mes explications et j'espère également que
la

question n'a pas été maintes fois débattue.
Dernière chose, je travaille sur la version 2.0 de MS Access...

Je vous remercie d'avance pour votre aide,

Cordialement,

Mathilde.