Champ=Somme(Champ1,Champ2) sous Access2007

Résolu
NSUADI Messages postés 540 Date d'inscription mardi 4 août 2009 Statut Membre Dernière intervention 1 février 2013 - 27 sept. 2010 à 23:14
Zlub Messages postés 809 Date d'inscription mercredi 11 octobre 2000 Statut Membre Dernière intervention 29 septembre 2010 - 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

2 réponses

Zlub Messages postés 809 Date d'inscription mercredi 11 octobre 2000 Statut Membre Dernière intervention 29 septembre 2010 8
28 sept. 2010 à 21:58
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
3
NSUADI Messages postés 540 Date d'inscription mardi 4 août 2009 Statut Membre Dernière intervention 1 février 2013 2
28 sept. 2010 à 02:15
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
0
Rejoignez-nous