Bonjour =E0 tous
Tout d'abord je suis un d=E9butant sur access
voila mon soucis: j'ai cr=E9=E9 une table en important un
fichier texte ma table comprend environ 2000000(deux
millions) d'enregistrements. j'ai des champs qui sont vides
et j'aimerai qu'il soient renseign=E9s avec le champs pr=E9c=E9dent.
Copier, coller c'est tr=E8s long vue la taille de la table!!!
Une ame charitable pourrait-elle me donner un rem=E8de?
Merci beaucoup
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
3stone
Salut,
"Germain" Tout d'abord je suis un débutant sur access voila mon soucis: j'ai créé une table en important un fichier texte ma table comprend environ 2000000(deux millions) d'enregistrements. j'ai des champs qui sont vides et j'aimerai qu'il soient renseignés avec le champs précédent. Copier, coller c'est très long vue la taille de la table!!! Une ame charitable pourrait-elle me donner un remède?
Tu parle de table et champs précédents... J'imagine que tu parle du champ de l'enregistrement "précédent" ?
Y a-t-il une clé primaire dans cette table ? (très important)
Car, les enregistrements d'une table n'ont pas d'ordre, malgré l'apparence... Il faut donc, obligatoirement une clé primaire, donc un champ unique, pour réaliser ce que tu demande.
A défaut, la recopie serait alléatoire... et pur hasard !
-- A+ Pierre (3stone) Access MVP ------------------------------------------------------- Bien démarrer ? c'est ici http://users.skynet.be/mpfa/ ( Je ne réponds pas aux emails qui concernent Access ) -------------------------------------------------------
Salut,
"Germain"
Tout d'abord je suis un débutant sur access
voila mon soucis: j'ai créé une table en important un
fichier texte ma table comprend environ 2000000(deux
millions) d'enregistrements. j'ai des champs qui sont vides
et j'aimerai qu'il soient renseignés avec le champs précédent.
Copier, coller c'est très long vue la taille de la table!!!
Une ame charitable pourrait-elle me donner un remède?
Tu parle de table et champs précédents...
J'imagine que tu parle du champ de l'enregistrement "précédent" ?
Y a-t-il une clé primaire dans cette table ? (très important)
Car, les enregistrements d'une table n'ont pas d'ordre, malgré l'apparence...
Il faut donc, obligatoirement une clé primaire, donc un champ unique,
pour réaliser ce que tu demande.
A défaut, la recopie serait alléatoire... et pur hasard !
--
A+
Pierre (3stone) Access MVP
-------------------------------------------------------
Bien démarrer ? c'est ici http://users.skynet.be/mpfa/
( Je ne réponds pas aux emails qui concernent Access )
-------------------------------------------------------
"Germain" Tout d'abord je suis un débutant sur access voila mon soucis: j'ai créé une table en important un fichier texte ma table comprend environ 2000000(deux millions) d'enregistrements. j'ai des champs qui sont vides et j'aimerai qu'il soient renseignés avec le champs précédent. Copier, coller c'est très long vue la taille de la table!!! Une ame charitable pourrait-elle me donner un remède?
Tu parle de table et champs précédents... J'imagine que tu parle du champ de l'enregistrement "précédent" ?
Y a-t-il une clé primaire dans cette table ? (très important)
Car, les enregistrements d'une table n'ont pas d'ordre, malgré l'apparence... Il faut donc, obligatoirement une clé primaire, donc un champ unique, pour réaliser ce que tu demande.
A défaut, la recopie serait alléatoire... et pur hasard !
-- A+ Pierre (3stone) Access MVP ------------------------------------------------------- Bien démarrer ? c'est ici http://users.skynet.be/mpfa/ ( Je ne réponds pas aux emails qui concernent Access ) -------------------------------------------------------
-----Message d'origine----- Salut,
"Germain" Tout d'abord je suis un débutant sur access voila mon soucis: j'ai créé une table en important un fichier texte ma table comprend environ 2000000(deux millions) d'enregistrements. j'ai des champs qui sont vides et j'aimerai qu'il soient renseignés avec le champs précédent. Copier, coller c'est très long vue la taille de la table!!! Une ame charitable pourrait-elle me donner un remède?
Tu parle de table et champs précédents... J'imagine que tu parle du champ de l'enregistrement "précédent" ?
Y a-t-il une clé primaire dans cette table ? (très important)
Car, les enregistrements d'une table n'ont pas d'ordre, malgré l'apparence...
Il faut donc, obligatoirement une clé primaire, donc un champ unique,
pour réaliser ce que tu demande.
A défaut, la recopie serait alléatoire... et pur hasard !
-- A+ Pierre (3stone) Access MVP ------------------------------------------------------- Bien démarrer ? c'est ici http://users.skynet.be/mpfa/ ( Je ne réponds pas aux emails qui concernent Access ) -------------------------------------------------------
. oui il y a une clé primaire je fais quoi après ? merci
-----Message d'origine-----
Salut,
"Germain"
Tout d'abord je suis un débutant sur access
voila mon soucis: j'ai créé une table en important un
fichier texte ma table comprend environ 2000000(deux
millions) d'enregistrements. j'ai des champs qui sont vides
et j'aimerai qu'il soient renseignés avec le champs précédent.
Copier, coller c'est très long vue la taille de la table!!!
Une ame charitable pourrait-elle me donner un remède?
Tu parle de table et champs précédents...
J'imagine que tu parle du champ de l'enregistrement
"précédent" ?
Y a-t-il une clé primaire dans cette table ? (très important)
Car, les enregistrements d'une table n'ont pas d'ordre,
malgré l'apparence...
Il faut donc, obligatoirement une clé primaire, donc un
champ unique,
pour réaliser ce que tu demande.
A défaut, la recopie serait alléatoire... et pur hasard !
--
A+
Pierre (3stone) Access MVP
-------------------------------------------------------
Bien démarrer ? c'est ici http://users.skynet.be/mpfa/
( Je ne réponds pas aux emails qui concernent Access )
-------------------------------------------------------
.
oui il y a une clé primaire je fais quoi après ?
merci
"Germain" Tout d'abord je suis un débutant sur access voila mon soucis: j'ai créé une table en important un fichier texte ma table comprend environ 2000000(deux millions) d'enregistrements. j'ai des champs qui sont vides et j'aimerai qu'il soient renseignés avec le champs précédent. Copier, coller c'est très long vue la taille de la table!!! Une ame charitable pourrait-elle me donner un remède?
Tu parle de table et champs précédents... J'imagine que tu parle du champ de l'enregistrement "précédent" ?
Y a-t-il une clé primaire dans cette table ? (très important)
Car, les enregistrements d'une table n'ont pas d'ordre, malgré l'apparence...
Il faut donc, obligatoirement une clé primaire, donc un champ unique,
pour réaliser ce que tu demande.
A défaut, la recopie serait alléatoire... et pur hasard !
-- A+ Pierre (3stone) Access MVP ------------------------------------------------------- Bien démarrer ? c'est ici http://users.skynet.be/mpfa/ ( Je ne réponds pas aux emails qui concernent Access ) -------------------------------------------------------
. oui il y a une clé primaire je fais quoi après ? merci
3stone
Salut,
a écrit
. oui il y a une clé primaire je fais quoi après ?
Hmmm ;-)
Tu te débrouille avec VBA ?
Commence par crée une requête basée sur ta table, avec un ordre de tri sur ta clé primaire. Cet ordre te convient ? Est-il le même que celui que "semble" avoir la table ?
Si cela convient, je te donne une petite fonction qui fera le boulot...
NB: Tu es conscient du fait que si l'ordre est modifié, la valeur recopiée ne sera pas celle que tu pense...
-- A+ Pierre (3stone) Access MVP ------------------------------------------------------- Bien démarrer ? c'est ici http://users.skynet.be/mpfa/ ( Je ne réponds pas aux emails qui concernent Access ) -------------------------------------------------------
Salut,
<anonymous@discussions.microsoft.com> a écrit
.
oui il y a une clé primaire je fais quoi après ?
Hmmm ;-)
Tu te débrouille avec VBA ?
Commence par crée une requête basée sur ta table, avec un ordre de tri sur ta clé primaire.
Cet ordre te convient ? Est-il le même que celui que "semble" avoir la table ?
Si cela convient, je te donne une petite fonction qui fera le boulot...
NB:
Tu es conscient du fait que si l'ordre est modifié,
la valeur recopiée ne sera pas celle que tu pense...
--
A+
Pierre (3stone) Access MVP
-------------------------------------------------------
Bien démarrer ? c'est ici http://users.skynet.be/mpfa/
( Je ne réponds pas aux emails qui concernent Access )
-------------------------------------------------------
. oui il y a une clé primaire je fais quoi après ?
Hmmm ;-)
Tu te débrouille avec VBA ?
Commence par crée une requête basée sur ta table, avec un ordre de tri sur ta clé primaire. Cet ordre te convient ? Est-il le même que celui que "semble" avoir la table ?
Si cela convient, je te donne une petite fonction qui fera le boulot...
NB: Tu es conscient du fait que si l'ordre est modifié, la valeur recopiée ne sera pas celle que tu pense...
-- A+ Pierre (3stone) Access MVP ------------------------------------------------------- Bien démarrer ? c'est ici http://users.skynet.be/mpfa/ ( Je ne réponds pas aux emails qui concernent Access ) -------------------------------------------------------
Germain
-----Message d'origine----- Salut,
a écrit
. oui il y a une clé primaire je fais quoi après ?
Hmmm ;-)
Tu te débrouille avec VBA ?
Commence par crée une requête basée sur ta table, avec un ordre de tri sur ta clé primaire.
Cet ordre te convient ? Est-il le même que celui que "semble" avoir la table ?
Si cela convient, je te donne une petite fonction qui fera le boulot...
NB: Tu es conscient du fait que si l'ordre est modifié, la valeur recopiée ne sera pas celle que tu pense...
-- A+ Pierre (3stone) Access MVP ------------------------------------------------------- Bien démarrer ? c'est ici http://users.skynet.be/mpfa/ ( Je ne réponds pas aux emails qui concernent Access ) -------------------------------------------------------
. Tous ce que tu dis est déjà fait. Ce qu'il me faut c'est une routine qui trouve les enregistrements vides est les renseigne avec
l'enregistrement précédent. A+ et merci
-----Message d'origine-----
Salut,
<anonymous@discussions.microsoft.com> a écrit
.
oui il y a une clé primaire je fais quoi après ?
Hmmm ;-)
Tu te débrouille avec VBA ?
Commence par crée une requête basée sur ta table, avec un
ordre de tri sur ta clé primaire.
Cet ordre te convient ? Est-il le même que celui que
"semble" avoir la table ?
Si cela convient, je te donne une petite fonction qui fera
le boulot...
NB:
Tu es conscient du fait que si l'ordre est modifié,
la valeur recopiée ne sera pas celle que tu pense...
--
A+
Pierre (3stone) Access MVP
-------------------------------------------------------
Bien démarrer ? c'est ici http://users.skynet.be/mpfa/
( Je ne réponds pas aux emails qui concernent Access )
-------------------------------------------------------
.
Tous ce que tu dis est déjà fait.
Ce qu'il me faut c'est une routine qui trouve les
enregistrements vides est les renseigne avec
. oui il y a une clé primaire je fais quoi après ?
Hmmm ;-)
Tu te débrouille avec VBA ?
Commence par crée une requête basée sur ta table, avec un ordre de tri sur ta clé primaire.
Cet ordre te convient ? Est-il le même que celui que "semble" avoir la table ?
Si cela convient, je te donne une petite fonction qui fera le boulot...
NB: Tu es conscient du fait que si l'ordre est modifié, la valeur recopiée ne sera pas celle que tu pense...
-- A+ Pierre (3stone) Access MVP ------------------------------------------------------- Bien démarrer ? c'est ici http://users.skynet.be/mpfa/ ( Je ne réponds pas aux emails qui concernent Access ) -------------------------------------------------------
. Tous ce que tu dis est déjà fait. Ce qu'il me faut c'est une routine qui trouve les enregistrements vides est les renseigne avec
l'enregistrement précédent. A+ et merci
3stone
Salut,
"Germain"
Tous ce que tu dis est déjà fait.
C'est bien ;-)
Ce qu'il me faut c'est une routine qui trouve les enregistrements vides est les renseigne avec l'enregistrement précédent.
Y a qu'à demander ;-)
Colle la fonction ci-dessous dans un module (onglet Module) et sauve-le sous le nom de "mod_MiseaJour"
Ensuite, tu ouvre la fenêtre d'exécution directe ( Control + G ) et tu saisis:
MiseaJour("Nom_de_ta_requête")
Important !!! Le premier enregistrement de la requête DOIT être complet !!! Dis-moi combien de temps cela à pris, cette mise à jour...
'//--- début ----------------------------- Function MiseAJour(strNomRequete) Dim Champ() As Variant, f As Variant, i As Integer Dim db As DAO.Database, rs As DAO.Recordset
Set db = CurrentDb() ' req_SurTable sera une requête triée sur la clé primaire ' a défaut, renseigner directement la table Set rs = db.OpenRecordset(strNomRequete) ReDim Champ(rs.Fields.Count)
'Lire le premier enregistrement qui DOIT être complet i = 0 For Each f In rs.Fields Champ(i) = rs.Fields(i).Value i = i + 1 Next rs.MoveNext
'// Boucler sur les enregistrements Do While Not rs.EOF rs.Edit : i = 0 'On complète les champs vides... For Each f In rs.Fields rs.Fields(i) = Nz(rs.Fields(i), Champ(i)) i = i + 1 Next rs.Update i = 0 'On mémorise les dernières valeurs For Each f In rs.Fields Champ(i) = rs.Fields(i).Value i = i + 1 Next 'Suivant rs.MoveNext Loop
'On termine proprement rs.Close Set rs = Nothing Set db = Nothing End Function '//--- Fin ----------------------------------
-- A+ Pierre (3stone) Access MVP ------------------------------------------------------- Bien démarrer ? c'est ici http://users.skynet.be/mpfa/ ( Je ne réponds pas aux emails qui concernent Access ) -------------------------------------------------------
Salut,
"Germain"
Tous ce que tu dis est déjà fait.
C'est bien ;-)
Ce qu'il me faut c'est une routine qui trouve les
enregistrements vides est les renseigne avec
l'enregistrement précédent.
Y a qu'à demander ;-)
Colle la fonction ci-dessous dans un module (onglet Module)
et sauve-le sous le nom de "mod_MiseaJour"
Ensuite, tu ouvre la fenêtre d'exécution directe ( Control + G ) et tu saisis:
MiseaJour("Nom_de_ta_requête")
Important !!!
Le premier enregistrement de la requête DOIT être complet !!!
Dis-moi combien de temps cela à pris, cette mise à jour...
'//--- début -----------------------------
Function MiseAJour(strNomRequete)
Dim Champ() As Variant, f As Variant, i As Integer
Dim db As DAO.Database, rs As DAO.Recordset
Set db = CurrentDb()
' req_SurTable sera une requête triée sur la clé primaire
' a défaut, renseigner directement la table
Set rs = db.OpenRecordset(strNomRequete)
ReDim Champ(rs.Fields.Count)
'Lire le premier enregistrement qui DOIT être complet
i = 0
For Each f In rs.Fields
Champ(i) = rs.Fields(i).Value
i = i + 1
Next
rs.MoveNext
'// Boucler sur les enregistrements
Do While Not rs.EOF
rs.Edit : i = 0
'On complète les champs vides...
For Each f In rs.Fields
rs.Fields(i) = Nz(rs.Fields(i), Champ(i))
i = i + 1
Next
rs.Update
i = 0
'On mémorise les dernières valeurs
For Each f In rs.Fields
Champ(i) = rs.Fields(i).Value
i = i + 1
Next
'Suivant
rs.MoveNext
Loop
'On termine proprement
rs.Close
Set rs = Nothing
Set db = Nothing
End Function
'//--- Fin ----------------------------------
--
A+
Pierre (3stone) Access MVP
-------------------------------------------------------
Bien démarrer ? c'est ici http://users.skynet.be/mpfa/
( Je ne réponds pas aux emails qui concernent Access )
-------------------------------------------------------
Ce qu'il me faut c'est une routine qui trouve les enregistrements vides est les renseigne avec l'enregistrement précédent.
Y a qu'à demander ;-)
Colle la fonction ci-dessous dans un module (onglet Module) et sauve-le sous le nom de "mod_MiseaJour"
Ensuite, tu ouvre la fenêtre d'exécution directe ( Control + G ) et tu saisis:
MiseaJour("Nom_de_ta_requête")
Important !!! Le premier enregistrement de la requête DOIT être complet !!! Dis-moi combien de temps cela à pris, cette mise à jour...
'//--- début ----------------------------- Function MiseAJour(strNomRequete) Dim Champ() As Variant, f As Variant, i As Integer Dim db As DAO.Database, rs As DAO.Recordset
Set db = CurrentDb() ' req_SurTable sera une requête triée sur la clé primaire ' a défaut, renseigner directement la table Set rs = db.OpenRecordset(strNomRequete) ReDim Champ(rs.Fields.Count)
'Lire le premier enregistrement qui DOIT être complet i = 0 For Each f In rs.Fields Champ(i) = rs.Fields(i).Value i = i + 1 Next rs.MoveNext
'// Boucler sur les enregistrements Do While Not rs.EOF rs.Edit : i = 0 'On complète les champs vides... For Each f In rs.Fields rs.Fields(i) = Nz(rs.Fields(i), Champ(i)) i = i + 1 Next rs.Update i = 0 'On mémorise les dernières valeurs For Each f In rs.Fields Champ(i) = rs.Fields(i).Value i = i + 1 Next 'Suivant rs.MoveNext Loop
'On termine proprement rs.Close Set rs = Nothing Set db = Nothing End Function '//--- Fin ----------------------------------
-- A+ Pierre (3stone) Access MVP ------------------------------------------------------- Bien démarrer ? c'est ici http://users.skynet.be/mpfa/ ( Je ne réponds pas aux emails qui concernent Access ) -------------------------------------------------------
Germain
-----Message d'origine----- Salut,
"Germain"
Tous ce que tu dis est déjà fait.
C'est bien ;-)
Ce qu'il me faut c'est une routine qui trouve les enregistrements vides est les renseigne avec l'enregistrement précédent.
Y a qu'à demander ;-)
Colle la fonction ci-dessous dans un module (onglet Module) et sauve-le sous le nom de "mod_MiseaJour"
Ensuite, tu ouvre la fenêtre d'exécution directe ( Control + G ) et tu saisis:
MiseaJour("Nom_de_ta_requête")
Important !!! Le premier enregistrement de la requête DOIT être complet !!! Dis-moi combien de temps cela à pris, cette mise à jour...
'//--- début ----------------------------- Function MiseAJour(strNomRequete) Dim Champ() As Variant, f As Variant, i As Integer Dim db As DAO.Database, rs As DAO.Recordset
Set db = CurrentDb() ' req_SurTable sera une requête triée sur la clé primaire ' a défaut, renseigner directement la table Set rs = db.OpenRecordset(strNomRequete) ReDim Champ(rs.Fields.Count)
'Lire le premier enregistrement qui DOIT être complet i = 0 For Each f In rs.Fields Champ(i) = rs.Fields(i).Value i = i + 1 Next rs.MoveNext
'// Boucler sur les enregistrements Do While Not rs.EOF rs.Edit : i = 0 'On complète les champs vides... For Each f In rs.Fields rs.Fields(i) = Nz(rs.Fields(i), Champ(i)) i = i + 1 Next rs.Update i = 0 'On mémorise les dernières valeurs For Each f In rs.Fields Champ(i) = rs.Fields(i).Value i = i + 1 Next 'Suivant rs.MoveNext Loop
'On termine proprement rs.Close Set rs = Nothing Set db = Nothing End Function '//--- Fin ----------------------------------
-- A+ Pierre (3stone) Access MVP ------------------------------------------------------- Bien démarrer ? c'est ici http://users.skynet.be/mpfa/ ( Je ne réponds pas aux emails qui concernent Access ) -------------------------------------------------------
. Merci Pierre, je te dirai demain car ma base est au boulot A+
-----Message d'origine-----
Salut,
"Germain"
Tous ce que tu dis est déjà fait.
C'est bien ;-)
Ce qu'il me faut c'est une routine qui trouve les
enregistrements vides est les renseigne avec
l'enregistrement précédent.
Y a qu'à demander ;-)
Colle la fonction ci-dessous dans un module (onglet Module)
et sauve-le sous le nom de "mod_MiseaJour"
Ensuite, tu ouvre la fenêtre d'exécution directe ( Control
+ G ) et tu saisis:
MiseaJour("Nom_de_ta_requête")
Important !!!
Le premier enregistrement de la requête DOIT être complet !!!
Dis-moi combien de temps cela à pris, cette mise à jour...
'//--- début -----------------------------
Function MiseAJour(strNomRequete)
Dim Champ() As Variant, f As Variant, i As Integer
Dim db As DAO.Database, rs As DAO.Recordset
Set db = CurrentDb()
' req_SurTable sera une requête triée sur la clé primaire
' a défaut, renseigner directement la table
Set rs = db.OpenRecordset(strNomRequete)
ReDim Champ(rs.Fields.Count)
'Lire le premier enregistrement qui DOIT être complet
i = 0
For Each f In rs.Fields
Champ(i) = rs.Fields(i).Value
i = i + 1
Next
rs.MoveNext
'// Boucler sur les enregistrements
Do While Not rs.EOF
rs.Edit : i = 0
'On complète les champs vides...
For Each f In rs.Fields
rs.Fields(i) = Nz(rs.Fields(i), Champ(i))
i = i + 1
Next
rs.Update
i = 0
'On mémorise les dernières valeurs
For Each f In rs.Fields
Champ(i) = rs.Fields(i).Value
i = i + 1
Next
'Suivant
rs.MoveNext
Loop
'On termine proprement
rs.Close
Set rs = Nothing
Set db = Nothing
End Function
'//--- Fin ----------------------------------
--
A+
Pierre (3stone) Access MVP
-------------------------------------------------------
Bien démarrer ? c'est ici http://users.skynet.be/mpfa/
( Je ne réponds pas aux emails qui concernent Access )
-------------------------------------------------------
.
Merci Pierre, je te dirai demain car ma base est au boulot
A+
Ce qu'il me faut c'est une routine qui trouve les enregistrements vides est les renseigne avec l'enregistrement précédent.
Y a qu'à demander ;-)
Colle la fonction ci-dessous dans un module (onglet Module) et sauve-le sous le nom de "mod_MiseaJour"
Ensuite, tu ouvre la fenêtre d'exécution directe ( Control + G ) et tu saisis:
MiseaJour("Nom_de_ta_requête")
Important !!! Le premier enregistrement de la requête DOIT être complet !!! Dis-moi combien de temps cela à pris, cette mise à jour...
'//--- début ----------------------------- Function MiseAJour(strNomRequete) Dim Champ() As Variant, f As Variant, i As Integer Dim db As DAO.Database, rs As DAO.Recordset
Set db = CurrentDb() ' req_SurTable sera une requête triée sur la clé primaire ' a défaut, renseigner directement la table Set rs = db.OpenRecordset(strNomRequete) ReDim Champ(rs.Fields.Count)
'Lire le premier enregistrement qui DOIT être complet i = 0 For Each f In rs.Fields Champ(i) = rs.Fields(i).Value i = i + 1 Next rs.MoveNext
'// Boucler sur les enregistrements Do While Not rs.EOF rs.Edit : i = 0 'On complète les champs vides... For Each f In rs.Fields rs.Fields(i) = Nz(rs.Fields(i), Champ(i)) i = i + 1 Next rs.Update i = 0 'On mémorise les dernières valeurs For Each f In rs.Fields Champ(i) = rs.Fields(i).Value i = i + 1 Next 'Suivant rs.MoveNext Loop
'On termine proprement rs.Close Set rs = Nothing Set db = Nothing End Function '//--- Fin ----------------------------------
-- A+ Pierre (3stone) Access MVP ------------------------------------------------------- Bien démarrer ? c'est ici http://users.skynet.be/mpfa/ ( Je ne réponds pas aux emails qui concernent Access ) -------------------------------------------------------
. Merci Pierre, je te dirai demain car ma base est au boulot A+