Access vba: atteindre un champ par variable

Résolu
Melycea -  
 Utilisateur anonyme -
Bonjour,

Je travaille sous Access97.
J'ai une table avec les champs 2000|2001|2002|...|2011
Et je calcule les données à y rentrer via une fonction vb.
Donc, évidemment, vu que le calcul est le même pour chaque champs, j'ai commencé à faire une boucle mais je n'arrive pas à atteindre les champs:

for i=2000 to 2011 
valeurCalculee=...(en fonction de i) 
MaTable.edit 
MaTable![" & i & "]=valeurCalculee 
MaTable.update 
next i


ça ne fonctionne pas (même si je met des cotes dans les crochets) et j'ai comme message d'erreur : "3265: élément non trouvé dans cette collection."

J'attend toutes vos suggestions avec impatience.

Merci

6 réponses

  1. Utilisateur anonyme
     
    Bonjour,

    Voici un exemple type :

    ... j'ai laissé tous le code en commentaires que j'ai utilisé ...

    Option Compare Database
    Option Explicit
    '
    
    
    Private Sub ExecuteInsertionNomChampDynamique()
    
        Dim DBCourant As Database
        Dim RecClone As Recordset
        Dim Message As String, NomChamp As String
        Dim Champ As Variant
        Dim Nombre As Long, Boucle As Long, Limite As Long
        
        Set DBCourant = CurrentDb()
        Set RecClone = DBCourant.OpenRecordset("Req_SelectionTous")
        
    '    For Each Champ In RecClone.Fields
    '        ' Capture nom du champ
    '        Message = Message & Champ.Name & vbCrLf
    '    Next
    '
    '    MsgBox Message
    '    Message = ""
        
    '    RecClone.AddNew
    '    For Boucle = 2000 To Limite
    '        NomChamp = CStr(Boucle)
    '        RecClone.Fields(NomChamp).Value = Boucle
    '    Next Boucle
    '    RecClone.Update
        
        If (Not RecClone.EOF) Then
            RecClone.MoveLast
            RecClone.MoveFirst
            Nombre = RecClone.RecordCount
        End If
    
        Limite = 2012
    
        RecClone.Edit
        For Boucle = 2000 To Limite
            NomChamp = CStr(Boucle)
            RecClone.Fields(NomChamp).Value = CStr(Boucle * 10)
        Next Boucle
    
        RecClone.Update
        RecClone.Close
    
    End Sub
    '
    


    Cdt

    Lupin
    1
  2. acid3max Messages postés 38 Statut Membre 5
     
    La connection à ta base de données fonctionne ????
    0
  3. Melycea
     
    qu'est ce que tu entend par "connection"?!
    0
  4. acid3max Messages postés 38 Statut Membre 5
     
    Ah ! dsl j'ai mal lu tu travaille directement sous access !!
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Melycea
     
    C'est exactement ce qu'il me fallait ^^
    Merci beaucoup Lupin (encore un fois!)
    0
    1. Utilisateur anonyme
       
      re:

      The pleasure is mine :-)

      Cdt

      Lupin
      0