faycalche
Messages postés74Date d'inscriptionvendredi 2 juin 2006StatutMembreDernière intervention31 décembre 2009
-
20 août 2008 à 19:11
LIBRE_MAX
Messages postés1402Date d'inscriptionmardi 1 mai 2007StatutMembreDernière intervention 7 octobre 2012
-
22 août 2008 à 23:19
salut,
SVP dites moi ou est l'erreur dans ce code que j'ai fait pour recupérer les donnees de deux tables différentes??
Voila le code:
LIBRE_MAX
Messages postés1402Date d'inscriptionmardi 1 mai 2007StatutMembreDernière intervention 7 octobre 20126 20 août 2008 à 19:42
Salut,
c' est quoi coome control le dit g ?
On suppose que c' est un MsFlexGrid.
If rsligne_fact_four.Fields(4) = Combo1.Text Then
g.Rows = g.Rows + 1 'Ajoute une ligne
g.Row =g.Rows-1 'se positionne à la dernière 'igne
g.Col = 0
g.Text = rsligne_fact_four.Fields(0)
g.Col = 1
g.Text = rsfact_four.Fields(1)
g.Col = 2
g.Text = rsligne_fact_four.Fields(3)
g.Col = 3
g.Text = rsligne_fact_four.Fields(3)
g.Col = 4
g.Text = rsligne_fact_four.Fields(5)
<strike>g.Rows = g.Rows + 1 </strike>'pas la peine, c' est déjà fait tou<strike>t</strike> en haut
End If
<hr />... Y'en a même qui disent qu'ils l'ont vu voler.
faycalche
Messages postés74Date d'inscriptionvendredi 2 juin 2006StatutMembreDernière intervention31 décembre 2009 21 août 2008 à 03:19
salut,
Oui g est une MsFlexGrid.
J'ai essayer ton code mais le probléme pérciste encore!!une fois que j'appuie sur le bouton auquel ce code est associé,l'entete de lavgrille disparait!!
LIBRE_MAX
Messages postés1402Date d'inscriptionmardi 1 mai 2007StatutMembreDernière intervention 7 octobre 20126 21 août 2008 à 13:12
Salut,
Il faudra réinitialiser le tout au tout début de ta procédure.
Private Sub Boutton_Click()
Dim i as Integer
With g
.FixedRows=1 'ligne en-tete
.Rows=2 ' + une ligne vide
i=1
rsligne_fact_four.MoveFirst
Do While Not rsligne_fact_four.Eof
If rsligne_fact_four.Fields(4) = Combo1.Text Then
i= i + 1
.Rows= i 'nombre de ligne
.Row= i - 1 'ligne courante
faycalche
Messages postés74Date d'inscriptionvendredi 2 juin 2006StatutMembreDernière intervention31 décembre 2009 21 août 2008 à 16:54
salut LIBRE_MAX,
Cette fois ci c bon pour l'entete qui reste affichée, mais aucun enregistrement ne s'affiche dans la grille!!!
Voilà le code complet du bouton:
Dim i As Integer
Set rsligne_fact_four = New ADODB.Recordset
rsligne_fact_four.Open "select * from ligne_facture_four where Code_four= '" & Combo1.Text & "'", cn, 1, 2
Set rsfact_four = New ADODB.Recordset
rsfact_four.Open " select * from Facture_four where Code_fou = '" & Combo1.Text & " '", cn, 1, 2
If rsligne_fact_four.RecordCount = 0 Then
MsgBox "Il n'y a aucun facture saisie", vbInformation, "MAC//Z"
Exit Sub
Else
With g
.FixedRows = 1 'ligne en-tete
.Rows = 2 ' + une ligne vide
i = 1
rsligne_fact_four.MoveFirst
Do While Not rsligne_fact_four.EOF
If rsligne_fact_four.Fields(4) = Combo1.Text Then
i = i + 1
.Rows = i 'nombre de ligne
.Row = i - 1 'ligne courante
.Col = 0
.Text = rsligne_fact_four.Fields(0)
.Col = 1
.Text = rsfact_four.Fields(1)
.Col = 2
.Text = rsligne_fact_four.Fields(3)
.Col = 3
.Text = rsligne_fact_four.Fields(4)
.Col = 4
.Text = rsligne_fact_four.Fields(5)
End If
rsligne_fact_four.MoveNext
Loop
End With
End If
LIBRE_MAX
Messages postés1402Date d'inscriptionmardi 1 mai 2007StatutMembreDernière intervention 7 octobre 20126 21 août 2008 à 18:21
désolé du retard, j' ai fait une longue sieste !
Au vu ton code, j' ao pas compris ceci:
-Ta requete te renvoie tout ce qui correspond à Combo1.Text comme code fournisseur et dans la boucle tu tyestes si Fields(4)=Combo1.Text.
A quoi correspond donc ton Fields(4) ?
Si c' est code_fou le test est superflu, sinon tu devrais comparer à autre chose que combo1.Text, non ?
<hr />... Y'en a même qui disent qu'ils l'ont vu voler.
LIBRE_MAX
Messages postés1402Date d'inscriptionmardi 1 mai 2007StatutMembreDernière intervention 7 octobre 20126 21 août 2008 à 19:58
Ah oui, je vois ..En effet, t' as deux recordsets.
Ton code semble donc correct, mais franchement je ne vois pas pourquoi ça remplit pas la grille !
D' autant plus que tu n' as pas de MsgBox "Il n'y a aucun facture saisie", Ce qui prouve que ton recordset est plein.
Testes sans la condition.
Mets If rsligne_fact_four.Fields(4) = Combo1.Text Then en commentaire, pour voir.
<hr />... Y'en a même qui disent qu'ils l'ont vu voler.
faycalche
Messages postés74Date d'inscriptionvendredi 2 juin 2006StatutMembreDernière intervention31 décembre 2009 22 août 2008 à 03:24
Pardon mais j'ai oublié de vous demander comment faire(la requete SQL) si la condition etait d'aficher les factures qui ont été enregistrées entre deux dates!!
Merci