fcfranck
Messages postés4Date d'inscriptionmardi 4 novembre 2008StatutMembreDernière intervention30 mars 2011 6 nov. 2008 à 11:05
J'ai eu le même problème !!
après un traitement ma datagrid ne se rafraichissait pas, malgré la commande datagrid.refresh....
par contre en mettant un bouton avec la commande datagrid.refresh et quand je cliquais ça marchait !
je précise avant de rafraichir je ferme ma connexion ado et je la redémarre !
j'ai donc créer un control timer... que je démarre avant mon traitement.
Et là ça marche
Heu c'est du bricolage mais ça dépanne
Si vous trouvez mieux je suis preneur !!
Mon code:
Au début de mon traitement je mets
Timer1.Enabled = True
Timer1.Interval = 500
le timer:
Private Sub Timer1_Timer()
rsControls.Close
cnControls.Close
Call INITBase : lecture du fichier .mdb via ADO
Timer1.Enabled = True
End Sub
INITBase:
Public Sub INITBase()
Dim strQ As String
strQ = "provider=Microsoft.Jet.OLEDB.3.51;data source=" & App.Path & "\med7.mdb"
cnControls.Open strQ
rsControls.Open "select * from traitement", cnControls, adOpenKeyset, adLockOptimistic
'Call DatagridColumnAutoResize(Me.Grid, CHListeView)
If rsControls.RecordCount > 0 Then
Set Grid.DataSource = rsControls
rsControls.MoveFirst
End If
CHListeView.Grid.Refresh
End Sub
fcfranck
Messages postés4Date d'inscriptionmardi 4 novembre 2008StatutMembreDernière intervention30 mars 2011 6 nov. 2008 à 11:09
OUUPSSS
je rectifie
le timer: Private Sub Timer1_Timer()
rsControls.Close
cnControls.Close
Call INITBase : lecture du fichier .mdb via ADO
Timer1.Enabled = FALSE End Sub
fcfranck
Messages postés4Date d'inscriptionmardi 4 novembre 2008StatutMembreDernière intervention30 mars 2011 6 nov. 2008 à 11:09
OUUPSSS
je rectifie
le timer: Private Sub Timer1_Timer()
rsControls.Close
cnControls.Close
Call INITBase : lecture du fichier .mdb via ADO
Timer1.Enabled = FALSE End Sub
philsandjong
Messages postés3Date d'inscriptionmercredi 26 mars 2003StatutMembreDernière intervention 8 novembre 2008 8 nov. 2008 à 13:35
Merci, Merci et Merci
Grace a la reponse de fcfranck j'ai puis faire quelque chose qui semble marche
j ai ecrit une procedure init que j'appelle dans mon bouton ajouter.J'aimerai bien savoir s'il est optimal
voici le code (txtnum est le numero de facture en cours).Merci a tous les membres,Merci fcfranck
Public Sub INITBase()
Dim Rs15 As ADODB.Recordset
Set Rs15 = New ADODB.Recordset
Rs15.ActiveConnection = cnn
Rs15.CursorLocation = adUseClient
Rs15.CursorType = adOpenDynamic
Rs15.LockType = 3
Dim strQ As String
Dim cnControls As Control
strConnection = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Dev2\BaseGesnep2.mdb;Persist Security Info=False "
'strQ = "provider=Microsoft.Jet.OLEDB.3.51;data source=" & App.Path & "\med7.mdb"
' cnn.Open strQ
MsgBox (TxtNum)
' Rs15.Open "select * from[detail facture] where NumFac = " & TxtNum & ""
Rs15.Open "Select [detail facture].CodeArt,NomArt,DescriptionArticle,Amidon,Qté,[detail facture].PrixUnitaire,Qté*[detail facture].PrixUnitaire as [Prix Total] from [detail facture],Article where [detail facture].CodeArt = Article.CodeArt and NumFac = " & TxtNum & ""
'Call DatagridColumnAutoResize(Me.Grid, CHListeView)
If Rs15.RecordCount > 0 Then
Set grdDataGrid.DataSource = Rs15
Rs15.MoveFirst
End If
grdDataGrid.Refresh
End Sub