Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Modifier la valeur d'un champ d'un enregistrement en VBA

510 views
Skip to first unread message

Joėl GARBE

unread,
Nov 19, 2004, 4:55:48 PM11/19/04
to
Bonjour,

Je découvre encore VBA Access (plutôt spécialisé Excel VBA)

Quelle est la procédure qui permettrait, en VBA, de modifier la valeur d'un
champ d'un enregistrement donné d'une table.

J'espère que la question est suffisamment précise...

Le but étant d'importr un fichier csv pas forcément structuré
"linéairement"...
ex (déjà expliqué dans un autre fil mais je retente en ciblant un peu plus
la question...)...

Etat de parc

"Code groupe;Code entreprise;N° compte client;N° d'appel GSM;N° Abonné;N°
carte SIM;Nom utilisateur;Réf. Commande;N° Contrat;Date
activation;Remarque;Types Abonnements;Services;Date d'effet;Date de fin;Type
terminal"
"001657;374201;60521471;0607171170;477313;1044721630025;Guillaume
HERMELIN;OF/DTRS/DDS/SVE/PCE;30348405;21/07/1997;;Forfait entreprise 10h
se;;;;"
";;;;;;;;;;;;Présentation du numéro;09/07/2003;;"
";;;;;;;;;;;;International;02/12/2003;;"
";;;;;;;;;;;;Quid PC 5Mo/2H WIFI;14/04/2004;;"
";;;;;;;;;;;;Cartes jumelles;01/06/2004;;"
";;;;;;;;;;;;Numéro Leader;01/06/2004;;"
";;;;;;;;;;;;Fact. détaillée 10CH S/WE;01/06/2004;;"
";;;;;;;;;;;;;;;NOKIA 6610"
"001657;374201;60521471;0608528225;20416921;2034883452168;DUMOUSSET;ANALYSTE
DSI / POE;30348405;15/03/2001;;Tarif interne (non factur;;;;"
";;;;;;;;;;;;Messagerie Vocale;15/03/2001;;"
";;;;;;;;;;;;Présentation du numéro;15/03/2001;;"
";;;;;;;;;;;;Monde;04/12/2003;;"
";;;;;;;;;;;;Quid PC 5Mo/2H WIFI;14/04/2004;;"
";;;;;;;;;;;;;;;MOTOROLA V500"
"001657;374201;60521471;0670641298;1742957;2942643662795;JEAN-JACQUES
PROST;DDS/SVE Expert Fonctionnel;30348405;23/09/1999;;Tarif interne (non
factur;;;;"
";;;;;;;;;;;;Messagerie Vocale;23/09/1999;;"
";;;;;;;;;;;;Présentation du numéro;23/09/1999;;"
";;;;;;;;;;;;Monde;05/12/2003;;"
";;;;;;;;;;;;Quid PC 5Mo/2H WIFI;14/04/2004;;"
";;;;;;;;;;;;;;;MOTOROLA V500"
"001657;374201;60521471;0673671583;20334160;2034883535376;YANN
PIERREFEU;CHEF PROJET DSI / POE;30348405;18/01/2001;;Tarif interne (non
factur;;;;"
";;;;;;;;;;;;Messagerie Vocale;18/01/2001;;"
";;;;;;;;;;;;Présentation du numéro;18/01/2001;;"
";;;;;;;;;;;;Monde;17/10/2003;;"
";;;;;;;;;;;;Quid PC 5Mo/2H WIFI;14/04/2004;;"
";;;;;;;;;;;;;;;MOTOROLA V600"

Par avance merci à tous...

Bien cordialement,

Joël GARBE
www.joelgarbe.fr


Pierre CFI [mvp]

unread,
Nov 20, 2004, 3:43:37 AM11/20/04
to
bonjour
non, c'est pas trés clair :o), tu parles de valeur et de structure ???

--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
Access http://users.skynet.be/mpfa/
Excel http://www.excelabo.net
Site perso
http://access.cfi.free.fr
"Joël GARBE" <joel-...@wanadoo.fr> a écrit dans le message de news:419e6bd9$0$8191$8fcf...@news.wanadoo.fr...

Joėl GARBE

unread,
Nov 20, 2004, 4:23:49 AM11/20/04
to
Bonjour Pierre, et merci de ton aide.

La vraie question est celle-ci :

Lorsque j'ai une donnée, que je récupère dans un fichier csv par une
procédure VBA, comment faire pour l'envoyer dans un champ d'un
enregistrement d'une table ACCESS.

ou alors,

En d'autre termes comment parcourir tous les enregistrements d'une table, et
pour chaque enregistrement, cibler un champ déterminé.

J'espère que la clarté fait son chemin ;-)

finalement, c'est quelquefois plus facilme de répondre à des questions que
de les poser ;-)-)-)

Bon week-end et encore merci !

Bien cordialement,

Joël GARBE
www.joelgarbe.fr
"Pierre CFI [mvp]" <XXX_pier...@aol.com> a écrit dans le message de
news: ORTWKztz...@TK2MSFTNGP14.phx.gbl...

Pierre CFI [mvp]

unread,
Nov 20, 2004, 4:33:42 AM11/20/04
to
..../....
exact, pas forcement facile de poser une question
je me suis aperçu que lorsque mes questions n'étaient pas claires , mon objectif l'était encore moins (travaillant seul, je me fais
des questions réponses)
là, dans ton cas, une requete modification avec un critére sur l'enregistrement voulu ? quitte à récupérer le code sql de cette req,
pour le mettre dans une proc vba

--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

"Joël GARBE" <joel-...@wanadoo.fr> a écrit dans le message de news:419f0d1a$0$8153$8fcf...@news.wanadoo.fr...

Joėl GARBE

unread,
Nov 20, 2004, 4:39:58 AM11/20/04
to
Merci Pierre,

J'étudie cela dans la matinée et reviens vers le groupe pour donner mes
conclusions...

Bien cordialement,

Joël GARBE
www.joelgarbe.fr
"Pierre CFI [mvp]" <XXX_pier...@aol.com> a écrit dans le message de

news: uycQJPuz...@tk2msftngp13.phx.gbl...

Joėl GARBE

unread,
Nov 20, 2004, 6:46:07 AM11/20/04
to
Re ;-)

Je progresse...

à l'aide de requêtes (formidable cet instrument quand on sait s'en servir),
je parviens à faire du ménage dans la table issue de mon fichier csv...

Il me reste au moins un problème majeur :

Dans la requête "pré-finale", il me reste à indiquer la chose suivante :

Si une ligne contient un champ "Code Groupe" vide, et que le champ "Service
Carte Jumelle" contient l'information "Cartes Jumelles", je dois remonter
"OUI" dans l'enregistrement précédent ou le champ "Code Groupe" n'est pas
vide...
Idem côté champ "Service Bureau Mobile" avec l'information "Bureau Mobile"

Une autre façon de procéder pourrait consister à recopier vers le bas les
champs "Code Groupe" à "Nom Utilisateur" (automatiquement bien sûr),
Malheureusement, nous ne sommes pas sur Excel...

et ensuite, je devrais pouvoir trouver les requêtes qui vont bien ...

Rq Recensement Code Groupe Code Entreprise N° Compte Client N° Appel GSM
N° Abonné Nom Utilisateur Service Carte Jumelle Service Bureau Mobile
001657 374201 60521471 06071xxxxx 477313 Guillaume HERMELIN


Cartes jumelles Cartes jumelles
001657 374201 60521471 06085xxxxx 20416921 DUMOUSSET


001657 374201 60521471 06706xxxxx 1742957 JEAN-JACQUES PROST


001657 374201 60521471 06736xxxxx 20334160 YANN PIERREFEU


001657 374201 60521471 06745xxxxx 20295759 CAROLE AUBERT


001657 374201 60521471 06745xxxxx 20295761 WILLIAM CHASTE


001657 374201 60521471 06806xxxxx 21230840 LUGAGNEDELPON EMMANUEL


001657 374201 60521471 06806xxxxx 20073865 FLORENCE DROUINEAU


001657 374201 60521471 06838xxxxx 1358613 Cédric LIGNON


Bureau Mobile Bureau Mobile
001657 374201 60521471 06863xxxxx 739686 JEAN MICHEL MONTLAHUC


Cartes jumelles Cartes jumelles
001657 374201 60521471 06866xxxxx 2255839 PHILIPPE LOUSSE


001657 374201 60521471 06883xxxxx 1707895 PATRICK REVEILLON


d'avance merci pour le tuyau...

Bien cordialement,

Joël GARBE
www.joelgarbe.fr
"Pierre CFI [mvp]" <XXX_pier...@aol.com> a écrit dans le message de

news: uycQJPuz...@tk2msftngp13.phx.gbl...

Joėl GARBE

unread,
Nov 20, 2004, 9:04:58 AM11/20/04
to
Re ;-)

Pour information, voici le code utilisé pour répondre à ma demande (on
progresse vite quand on est confronté aux problèmes à resoudre...)

Il ne me reste plus qu'à créer une requête suppression pour supprimer les
enregistrements en trop et le tour est joué...

Encore merci Pierre(s) et bon week-end...

Sub RemplirChamps()
Dim strTable As String
Dim strChampCJ As String
Dim strChampBM As String
Dim dbs As DAO.database
Dim rst As DAO.Recordset
Dim rstP As DAO.Recordset
Dim BurMob As String
Dim CarteJum As String

Dim i As Long
strTable = "Rq Recensement"
Set dbs = CurrentDb
Set rst = dbs.OpenRecordset(strTable, dbOpenDynaset)
i = 0
Dim j As Long
strChampCJ = "Service Cartes Jumelles"
strChampBM = "Service Bureau Mobile"
Set rstP = rst.Clone

With rst
Do While Not .EOF
If .Fields("Code Groupe") <> "" Then
Else
i = 0
Do Until rstP.Fields("Code Groupe") <> ""
rstP.MovePrevious
i = i + 1
Loop
If .Fields(strChampCJ) = "Cartes Jumelles" Then
rstP.edit
rstP.Fields(strChampCJ) = "OUI"
rstP.Update
Else
If IsNull(rstP.Fields(strChampCJ).Value) Or
rstP.Fields(strChampCJ).Value = "" Then
rstP.edit
rstP.Fields(strChampCJ) = "NON"
rstP.Update
End If
End If
If .Fields(strChampCJ) = "Bureau Mobile" Then
rstP.edit
rstP.Fields(strChampBM) = "OUI"
rstP.Update
Else
If IsNull(rstP.Fields(strChampBM).Value) Or
rstP.Fields(strChampBM).Value = "" Then
rstP.edit
rstP.Fields(strChampBM) = "NON"
rstP.Update
End If
End If

For j = 1 To i
rstP.MoveNext
Next
End If
'.edit
'.Fields(strChamp) = i
'.Update
.MoveNext
rstP.MoveNext
Loop
End With
rstP.Close
rst.Close
dbs.Close
Set rstP = Nothing
Set rst = Nothing
Set dbs = Nothing

End Sub


--

Bien cordialement,

Joël GARBE
www.joelgarbe.fr


"Joël GARBE" <joel-...@wanadoo.fr> a écrit dans le message de news:

419f2e76$0$8809$8fcf...@news.wanadoo.fr...

0 new messages