Access vba: atteindre un champ par variable

Résolu/Fermé
Melycea - Modifié par Melycea le 7/06/2012 à 16:59
 Utilisateur anonyme - 8 juin 2012 à 13:01
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

Utilisateur anonyme
7 juin 2012 à 23:35
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
acid3max Messages postés 37 Date d'inscription jeudi 7 juin 2012 Statut Membre Dernière intervention 8 juin 2012 5
7 juin 2012 à 17:01
La connection à ta base de données fonctionne ????
0
qu'est ce que tu entend par "connection"?!
0
acid3max Messages postés 37 Date d'inscription jeudi 7 juin 2012 Statut Membre Dernière intervention 8 juin 2012 5
7 juin 2012 à 17:08
Ah ! dsl j'ai mal lu tu travaille directement sous access !!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Oui exactement
0
C'est exactement ce qu'il me fallait ^^
Merci beaucoup Lupin (encore un fois!)
0
Utilisateur anonyme
8 juin 2012 à 13:01
re:

The pleasure is mine :-)

Cdt

Lupin
0