Tres urgent!! Construction d'un état avec SQL (pas débutant)

Résolu
Signaler
Messages postés
37
Date d'inscription
lundi 19 janvier 2004
Statut
Membre
Dernière intervention
19 octobre 2006
-
Messages postés
37
Date d'inscription
lundi 19 janvier 2004
Statut
Membre
Dernière intervention
19 octobre 2006
-
Bonjour a tous!!
Je viens ici en désespoire de cause ou presque. Voila le topo:

Je dois créer un état. Bon jusque la ça va ;-)
J'ai créé une commande avec VB qui alimente mon état.
Le truc c'est que dans mon état je voudrais faire apparaitre le resultat d'un calcul. Jusque la ça va aussi :-D
je modiufie ma commande et ça roule
Maintenant, je ne voudrais afficher le resultat que s'il est supérieur à 0. Et la ça va beaucoup moins bien... :'(

ValeurC = valeurA - valeurB si valeurC > 0

Je vois pas du tout comment faire. En SQL, je pense pas que ça soit possible (du moins pas avec VB6.0).
Je voudrais donc savoir comment je pourrais faire pour obtenir le resultat que je souhaite. Plutot une requete SQL ou petit bout de code VB qui me ferait ça bien? Ou alors est ce qu'il est possible de faire les calcules directement sur l'état en mettant le calcul dans une zone .

Mais je vois pas du tout comment le mettre en place.
Si qqn a une idée même pas top ça me serait super utile...et j'en serais tres reconnaissant
Merci d'avance

4 réponses

Messages postés
37
Date d'inscription
lundi 19 janvier 2004
Statut
Membre
Dernière intervention
19 octobre 2006

bon ben voila....
Merci pour ton aide....ça s'appel de l'emulsion intellectuelle collective!!

Donc suiffit de mettre la fermeture du recordset en optimiste et pis ça marche tout seul!!
Bilan:

On fait sa requete, on travail sur les données que l'on veut, et on affiche le resultat
En gros ça donne

'Ouverture de la requete
maSource.maRequete [param]

'les opérations sur le recordset
while not ....
OPERATIONS
Wend

'Affichage dans le report
MonRapport.show


Et voila c'est tout con en fait!! C'est trop facil le VB
Et moi qui voulait me prendre la tete avec des requetes SQL...j'ai même envisagé de faire un Trigger....Alala
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 109 internautes nous ont dit merci ce mois-ci

Messages postés
205
Date d'inscription
samedi 22 janvier 2005
Statut
Membre
Dernière intervention
28 novembre 2005
2
Petite question avant de te répondre!

Si tu ramène un espace à la place du zéro cela t'irai?
ainsi tu affiche [Espace] quand tu a '0' donc tu affiche en fait rien!

Si cela te va alors tourne toi vers le IIF(valeurC=0," ",ValeurC)

Sinon, en quoi est fait ton Etat? en crystal report?

A tout

PtitGrumo
Messages postés
37
Date d'inscription
lundi 19 janvier 2004
Statut
Membre
Dernière intervention
19 octobre 2006

Bon des precisions....
C'est parti

Je travail avec VB 6.0 SP5. Mon etat se construit a partir d'une commande SQL (qui a une commande fille ms ça c'est du détail). C'est pas du crystal report (je crois pas que ça soit possible avec VB 6). Dans mon code, pour afficher l'état en question je fais:

sourceDeDonnées.infoEmploye mdlCommun.idExercice
dtrListeEmploye.Show

en sachant que:
- sourceDeDonnées: ben c'est ma source des données (la connexion en gros)
- infoEmploye : c'est la commande SQL
- mdlCommun.idExercice: c'est un parametre passé a ma requete
- dtrListeEmploye: c'est mon datareport

Je me demande si c'est pas possible d'ajouter la vérification dans le code en faisant un truc du style

While not rsinfoEmploye.EOF (le recordset associé a la commande)
valeurC = valeurA - valeurB
if (valeurC < 0) then
valeurC = 0
end if
Wend

'ajouter la valeurC dans l'état
dtrListeEmploye.maZone.text = valeurC

Mais ça marche pas...j'ai pas acces a dtrListeEmploye.maZone...
L'autre solution c'est de travailler la requete SQL mais la ça devient galere...
Et puis tant qu'a faire si je peux avoir mon "0" c'est aussi bien ms je me contenterai d'un " " sans que ça ne me cause le moindre soucis moral
Merci pour tout
Messages postés
37
Date d'inscription
lundi 19 janvier 2004
Statut
Membre
Dernière intervention
19 octobre 2006

Attention j'ai une idée....je sais pas si c'est possible....

Si entre le moment ou je remplit le recordset et le moment ou je rentre les valeurs dans le report, je changeais les valeurs de certains champs....
En gros si je fais ça:

sourceDeDonnées.infoEmploye mdlCommun.idExercice

While Not sourceDeDonnées.rsinfoEmploye.EOF
valeurC = sourceDeDonnées.rsinfoEmploye.Fields("valeurA") - sourceDeDonnées.rsinfoEmploye.Fields("valeurA")
If (valeurC < 0) Then
sourceDeDonnées.rsinfoEmploye.Fields("valeurC") = 0
End If
sourceDeDonnées.rsinfoEmploye.MoveNext
Wend
dtrListeEmploye.Show

Moi ça me parait plus accessible en tout cas...
Reste a savoir si je peux modifier les valeurs du recordset....je crois que c'est possible ms il faut que je cherche comment....si qqn peut m'aider a ce niveau la??

*je vais peut etre m'en sortir....yahouuu*