Champ=Somme(Champ1,Champ2) sous Access2007 [Résolu]

NSUADI 540 Messages postés mardi 4 août 2009Date d'inscription 1 février 2013 Dernière intervention - 27 sept. 2010 à 23:14 - Dernière réponse : Zlub 815 Messages postés mercredi 11 octobre 2000Date d'inscription 29 septembre 2010 Dernière intervention
- 28 sept. 2010 à 21:58
Bonsoir!!
je suis sous access 2007 et j'ai 3 champs:Montant1,Montant2,DifMontant.
je voudrais que le champs DifMontant soit la différence de Montant1 et Montant2
Ex:Montant1=5 et Montant2=3 et je voudrais qu'automatiquement la valeur de DifMontant soit égale 2 c.à.d 5-3=2.

je ne suis pas sous vba
,je parle bien des champs lors de la création de mes tables...

je sais que c'est pas de la programmation mais cela me sera utile pour ma petite application.

Merci d'avance!!

Ce qui compte,ce n'est pas ce qu'on a mais plutôt ce que l'on fait avec ce qu'on a...

Visual Basic .Net is the best
and vb6.0
Afficher la suite 

Votre réponse

2 réponses

Meilleure réponse
Zlub 815 Messages postés mercredi 11 octobre 2000Date d'inscription 29 septembre 2010 Dernière intervention - 28 sept. 2010 à 21:58
3
Merci
Salut,

Je n'ai pas de quoi tester sous la main. Par contre, j'ai peut être une piste concernant l'erreur que tu as.

Essais en utilisant un alias dans ta requête car j'ai peur qu'Access ne sache pas accéder au résultat de sum(Montant). Ta requête serait donc :

req = "select sum(Montant) AS Montant from commande"


Concernant ta premiere question qui n'est pas tres claire (à mon goût), j'opterais pour faire ton opération directement par requête SQL. Mais tout dépend du contexte.

Exemple :

SELECT 5 AS Montant1, 3 AS Montant2, (5-3) AS DifMontant

N'ayant ni le nom de la table, ni la méthode de calcul des montants (via fonction, via SQL, résultat requete), ni le nom des champs contenant les montants (dans le cas où les montant sont stockés en base), je ne peux que te donner une réponse générique.

++

Zlub

Merci Zlub 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 124 internautes ce mois-ci

Commenter la réponse de Zlub
NSUADI 540 Messages postés mardi 4 août 2009Date d'inscription 1 février 2013 Dernière intervention - 28 sept. 2010 à 02:15
0
Merci
Re bonsoir!!
je ne cesse de trouver de l'aide par moi-même mais là je bloque un tout petit peu
voici mon code:
Dim req As String
req = "select sum(Montant) from commande"
Set rs1 = New ADODB.Recordset
Set con = New ADODB.Connection

Set com = New ADODB.Command
db = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\Info_gestion.mdb;Persist Security Info=False"
With con
.Open db 
Set com.ActiveConnection = con
com.CommandText = req
rs1 = com.Execute(, , adCmdText)
Text1.Text = rs1!Montant
.Close
End With


je souhaite récupérer la somme des enregistrements du champs Montant mais avec ce code ci-haut j'ai constamment l'erreur:
Impossible de trouver l'objet dans la collection correspondant au nom ou à la référence ordinale demandé


je sais que le problème provient de la fonction "sum" dans ma requête et de la ligne:Text1.Text=rs1!Montant,qui sont en conflit,mais comment faire pour palier à ça?

Merci d'avance!!!
j'espère,cette fois ci,avoir une réponse,svp!!

Ce qui compte,ce n'est pas ce qu'on a mais plutôt ce que l'on fait avec ce qu'on a...

Visual Basic .Net is the best
and vb6.0
Commenter la réponse de NSUADI

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.