OVH Cloud OVH Cloud

utilisation des champs dans un recordset

3 réponses
Avatar
Dominique MARTIN
Bonjour,
J'ai un probl=E8me avec le code suivant : il ne comprend pas=20
la ligne de code (rst! Fields(strFld) =3D "") il me dit=20
=E9l=E9ment non trouv=E9.

Dim db As Database
Dim rst As Recordset
Dim fld As Object
Dim strFld As String
=20
=20
Set db =3D CurrentDb
Set rst =3D db.OpenRecordset("Nego", dbOpenDynaset)
rst.MoveFirst
Do
For Each fld In rst.Fields
strFld =3D fld.Name
If fld.Value =3D "2" Then
rst! Fields(strFld) =3D ""
rst.Update
End If
Next
rst.MoveNext
Loop Until rst.EOF

Je n'arrive pas =E0 trouver la syntaxe.
Merci pour votre aide

Dominique

3 réponses

Avatar
LE CARRE Yannick
Bonjour Dominique,

vérifie tout d'abord si ton jeu d'enregistrement (recordset) n'est pas vide
(rst.eof = true).
vérifie ensuite que ta variable strFld rècupère bien une valeur au format
texte (fld.Name). Dans le cas contraire, effectue sa conversion avec la
fonction CStr.

Envoie moi la syntaxe SQL de ta requête stockée Nego si le problème
persiste.

Cordialement,

Yannick


Dominique MARTIN a écrit dans le message :
000c01c376e4$be04c2f0$
Bonjour,
J'ai un problème avec le code suivant : il ne comprend pas
la ligne de code (rst! Fields(strFld) = "") il me dit
élément non trouvé.

Dim db As Database
Dim rst As Recordset
Dim fld As Object
Dim strFld As String


Set db = CurrentDb
Set rst = db.OpenRecordset("Nego", dbOpenDynaset)
rst.MoveFirst
Do
For Each fld In rst.Fields
strFld = fld.Name
If fld.Value = "2" Then
rst! Fields(strFld) = ""
rst.Update
End If
Next
rst.MoveNext
Loop Until rst.EOF

Je n'arrive pas à trouver la syntaxe.
Merci pour votre aide

Dominique
Avatar
Raymond
Bonsoir.

il vaut mieux que tu utilises : rst.Fields(strFld) = ""

après le ! il faut indiquer ton nom de champ.
de même il serait plus prudent d'utiliser la syntaxe dao:
Dim rst As DAO.Recordset
Dim fld As DAO.Field
etc etc......
--
@+
Raymond Access MVP.
http://access.seneque.free.fr/
http://users.skynet.be/mpfa/charte.htm pour une meilleure
efficacité de tes interventions sur MPFA.


"Dominique MARTIN" a écrit dans le message de
news:000c01c376e4$be04c2f0$
Bonjour,
J'ai un problème avec le code suivant : il ne comprend pas
la ligne de code (rst! Fields(strFld) = "") il me dit
élément non trouvé.

Dim db As Database
Dim rst As Recordset
Dim fld As Object
Dim strFld As String


Set db = CurrentDb
Set rst = db.OpenRecordset("Nego", dbOpenDynaset)
rst.MoveFirst
Do
For Each fld In rst.Fields
strFld = fld.Name
If fld.Value = "2" Then
rst! Fields(strFld) = ""
rst.Update
End If
Next
rst.MoveNext
Loop Until rst.EOF

Je n'arrive pas à trouver la syntaxe.
Merci pour votre aide

Dominique
Avatar
Dominique MARTIN
Bonjour,
Merci cela marche rst.Fields(strFld) = ""
Dominique

-----Message d'origine-----
Bonsoir.

il vaut mieux que tu utilises : rst.Fields(strFld) = ""

après le ! il faut indiquer ton nom de champ.
de même il serait plus prudent d'utiliser la syntaxe dao:
Dim rst As DAO.Recordset
Dim fld As DAO.Field
etc etc......
--
@+
Raymond Access MVP.
http://access.seneque.free.fr/
http://users.skynet.be/mpfa/charte.htm pour une meilleure
efficacité de tes interventions sur MPFA.


"Dominique MARTIN" a écrit
dans le message de

news:000c01c376e4$be04c2f0$
Bonjour,
J'ai un problème avec le code suivant : il ne comprend pas
la ligne de code (rst! Fields(strFld) = "") il me dit
élément non trouvé.

Dim db As Database
Dim rst As Recordset
Dim fld As Object
Dim strFld As String


Set db = CurrentDb
Set rst = db.OpenRecordset("Nego", dbOpenDynaset)
rst.MoveFirst
Do
For Each fld In rst.Fields
strFld = fld.Name
If fld.Value = "2" Then
rst! Fields(strFld) = ""
rst.Update
End If
Next
rst.MoveNext
Loop Until rst.EOF

Je n'arrive pas à trouver la syntaxe.
Merci pour votre aide

Dominique


.