Salut ,
Jai un problème dans un programme en VB qui ne fonctionne pas toujours, parfois il se bloque , et parfois il termine lexécution jusquà la fin .
Jai mis le code ici et jespère bien quil y a quelquun qui peut maider, car je dois mavancer dans le programme et je nai plus de temps. Merci davance pour tous ceux qui réfléchissent à ce problème et veulent maider.
Jai deux maquettes la première marche correctement et la deuxième qui saffiche à partir dun bouton de la première maquette. le problème est dans le fonctionnement dun bouton de la deuxième maquette qui utilise une table de la base déjà remplie avec le code du premier bouton. Jespère que jai pu expliquer le problème rencontré.
Voici le premier programme du bouton suiv de la première maquette qui permet dafficher la maquette suivante avec le calcul automatique des champs de la table prfinof et leur affichage dans la datagrid qui est liée à cette table à laide de lADODC « datPrimaryRS » :
Private Sub suiv_Click()
Dim min As Integer
Dim max As Integer
Dim pos As Integer
Dim minap As Integer
Dim maxap As Integer
Dim f As New prfinof
Dim sql As String
D1.rsprfinof.Open
sql = " delete from prfinof "
D1.con.Execute sql
D1.rsordre_fab.Open , , , 2
D1.rsordre_fab.MoveFirst
f.datPrimaryRS.Refresh
For nof = 1 To D1.rsordre_fab.RecordCount
f.datPrimaryRS.Recordset.AddNew
min = 0
minap = 0
max = 0
maxap = 0
pos = D1.rsordre_fab.AbsolutePosition
D1.rsordre_fab.MoveFirst
For i = 1 To pos - 1
min = min + D1.rsordre_fab.Fields!dmin
max = max + D1.rsordre_fab.Fields!dmax
D1.rsordre_fab.MoveNext
Next
For i = pos To D1.rsordre_fab.RecordCount
minap = minap + D1.rsordre_fab.Fields!dmin
maxap = maxap + D1.rsordre_fab.Fields!dmax
D1.rsordre_fab.MoveNext
Next
D1.rsordre_fab.AbsolutePosition = pos
f.grdDataGrid.Columns(0) = D1.rsordre_fab.Fields!of
f.grdDataGrid.Columns(1) = min
f.grdDataGrid.Columns(2) = max
f.grdDataGrid.Columns(3) = minap
f.grdDataGrid.Columns(4) = maxap
f.datPrimaryRS.Recordset.Update
D1.rsordre_fab.MoveNext
Next
D1.rsordre_fab.close
D1.rsprfinof.close
D1.rsprfinof.Fields.Refresh
Unload Me
f.Show
End Sub
La procedure qui na pas pu fonctionné correctement tout le temps dans la deuxième maquette est
Private Sub val_Click()
D1.rsprfinof.Fields.Refresh
D1.rsprfinof.Open
D1.rsprfinof.MoveLast ß le programme se bloque ici et un message derreur : « lopération demandée nécessite un enregistrement actuel » qui saffiche, je ne sais pas pourquoi le programme ne détecte pas toujours le changement effectué sur la table prfinof dans la base. Parfois le programme complète lexécution correctement et parfois il se bloque.