Salut Pierre, Merci pour ces infos mais bien sur je n'arrive pas à les mettre en place... J'ai crée un module que j'ai appelé "modspike" et qui contient le code suivant que j'ai adapté à mon nom de table.... Sub UpdateFollowing() Dim db As DAO.Database Dim rs As DAO.Recordset Dim Ctr As Integer, sSQL As String Ctr = 0 sSQL = "Select Ref, Speed, Following FROM tblspeed Order By Ref;" Set db = CurrentDb Set rs = db.OpenRecordset(sSQL) Do Until rs.EOF If rs!Speed > 160 Then Ctr = Ctr + 1 Else Ctr = 0 End If rs.Edit rs!Following = Ctr rs.Update rs.MoveNext Loop rs.Close: db.Close Set rs = Nothing Set db = Nothing End Sub
Ensuite dans le form j'ai fait un bouton avec un code qui appele le module et la je me suis fait virer au prétexte qu'on ne peut pas appeler un module mais qu'il attend une variable... Private Sub Commande4_Click() DoCmd.OpenModule ([modspike]) End Sub
Ma table a les valeurs de speed qui sont mises à jour depuis un import de texte (c'est toi qui 'a expliqué la méthode pour un import automatique de données sur le groupe access) donc si on peut inclure le code de mise à jour de following en fonction du fait que des valeurs successives en ref sont > 160 ca me va très bien :)
Je le mets le code du module d'import que tu m'as donné et que j'ai modifié pour l'adapter à mon cas particulier (et qui marche nickel, encore merci :) )
Function fOpenFiles() As String 'Nécessite la référence microsoft office x.x object library Dim Dialogue As FileDialog Dim Fichier As Variant Set Dialogue = FileDialog(msoFileDialogOpen) With Dialogue .AllowMultiSelect = False .ButtonName = "Load" .InitialFileName = "*.txt" .Filters.Clear .InitialView = msoFileDialogViewList .title = "Choose speed file ..." If .Show Then For Each Fichier In .SelectedItems fOpenFiles = fOpenFiles & Fichier & ";" Next End If End With If Len(fOpenFiles) > 0 Then fOpenFiles = Left(fOpenFiles, Len(fOpenFiles) - 1) End If Set Dialogue = Nothing End Function
|