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

Résolu
youplaboom69 Messages postés 37 Date d'inscription lundi 19 janvier 2004 Statut Membre Dernière intervention 19 octobre 2006 - 13 juil. 2005 à 12:49
youplaboom69 Messages postés 37 Date d'inscription lundi 19 janvier 2004 Statut Membre Dernière intervention 19 octobre 2006 - 13 juil. 2005 à 14:43
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
A voir également:

4 réponses

youplaboom69 Messages postés 37 Date d'inscription lundi 19 janvier 2004 Statut Membre Dernière intervention 19 octobre 2006
13 juil. 2005 à 14:43
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
PtitGrumo Messages postés 205 Date d'inscription samedi 22 janvier 2005 Statut Membre Dernière intervention 28 novembre 2005 2
13 juil. 2005 à 14:05
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
0
youplaboom69 Messages postés 37 Date d'inscription lundi 19 janvier 2004 Statut Membre Dernière intervention 19 octobre 2006
13 juil. 2005 à 14:28
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
0
youplaboom69 Messages postés 37 Date d'inscription lundi 19 janvier 2004 Statut Membre Dernière intervention 19 octobre 2006
13 juil. 2005 à 14:34
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*
0
Rejoignez-nous