Access vba: atteindre un champ par variable
Résolu
Melycea
-
Utilisateur anonyme -
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:
ç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
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
A voir également:
- Access vba: atteindre un champ par variable
- Acer quick access - Forum logiciel systeme
- Désinstaller ACER QUICK ACCESS - Forum Logiciels
- Access appdata - Guide
- L'indice n'appartient pas à la sélection vba - Forum VB / VBA
- Exemple base de données access à télécharger gratuit - Forum Access
6 réponses
Bonjour,
Voici un exemple type :
... j'ai laissé tous le code en commentaires que j'ai utilisé ...
Cdt
Lupin
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
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question