Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

d'un repertoire vers une table et l'inverse

3 réponses
Avatar
FTH
Bonjour,

j'ai une appli qui recherche des fichiers dans un repertoire et les mets
dans une table.
super, ça tourne.

je dois maintenant pouvoir supprimer les lignes des fichiers ne se trouvant
plus dans le repertoire.

avant de faire le code, je me demandait quelle pouvait etre la demarche à
suivre.
d'avance merci

Frédéric

3 réponses

Avatar
Eric
Bonjour,

Une idée : Supprimer les enregistrements de la table et relancer la
procédure d'écriture, non ?

Bonjour,

j'ai une appli qui recherche des fichiers dans un repertoire et les mets
dans une table.
super, ça tourne.

je dois maintenant pouvoir supprimer les lignes des fichiers ne se
trouvant plus dans le repertoire.

avant de faire le code, je me demandait quelle pouvait etre la demarche
à suivre.
d'avance merci

Frédéric


--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Avatar
FTH
Bonjour Eric

c'est la solution que j'avais retenue en premier mais (parce qu'il y en a un
...)
la table contient d'autres infos ajoutées apres l'encodage, comme des mots
clefs etc..
ces autres infos disparaitront lors d'une relance de la procedure..

En fait, je dois pouvoir comparer la table "active" avec ce qu'il y a dans
le repertoire cible.
dans le cas ou la ligne existe encore dans "active" mais plus dans le
repertoire "cible", les données sont transférées dans la table "Old".

Je planche actuellement sur une solution avec une table "temp" qui load les
infos du repertoire et les compares à la table "active"..
mais toutes pistes plus rationnelles et/ou me permettant de poursuivre est
la bienvenue

merci

Frederic


"Eric" wrote in message
news:
Bonjour,

Une idée : Supprimer les enregistrements de la table et relancer la
procédure d'écriture, non ?

Bonjour,

j'ai une appli qui recherche des fichiers dans un repertoire et les mets
dans une table.
super, ça tourne.

je dois maintenant pouvoir supprimer les lignes des fichiers ne se
trouvant plus dans le repertoire.

avant de faire le code, je me demandait quelle pouvait etre la demarche à
suivre.
d'avance merci

Frédéric


--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr



Avatar
Eric
Bonsoir,

J'arrive un peu tard. Une proposition en utilisant les méthodes DAO.
Je suppose une table nommée DesFichiers ayant les 3 premiers champs
définis ainsi :
Champ1:NumeroAuto - Clé Primaire
Champ2:Chemin - Texte
Champ3:NomComplet du fichier (y compris son extension)
les autres champs n'ont pas d'importance

Sub PurgeTableFichiers()
'Charger la référence Microsoft DAO 3.x Object Library
'La table doit être indéxée sur un champ,
'par défaut la clé primaire (ici NumAuto)
Dim rst As DAO.Recordset, rang As Long
'Ouverture d'un Recordset sur la table
'Adapter le nom de la table (ici: DesFichiers)
'1er champ rst(0) correspond à la clé 1aire
'2ème champ rst(1) le chemin
'3ème champ rst(2) le nom complet du fichier
Set rst = CurrentDb.OpenRecordset("DesFichiers")
'on précise l'index pour la recherche du record
'qui se fera dans la proc DelEnregistrementCourant
'par la méthode Seek
rst.Index = "PrimaryKey"
While Not rst.EOF
If Dir(rst(1) & IIf(Right(rst(1), 1) <> "", "", "") _
& rst(2)) = "" Then
'si le fichier n'existe pas/plus dans le repertoire
'il faut supprimer l'enreg associé dans la table
rang = rst(0) ' on stocke la valeur de la clé Iaire
'Appel procédure de suppression
Call DelEnregistrementCourant(rst, rang)
End If
rst.MoveNext
Wend
rst.Close
Set rst = Nothing
End Sub

Sub DelEnregistrementCourant(rstTemp As DAO.Recordset, _
lngRang As Long)
With rstTemp
'on rend actif l'enregistrement à effacer
.Seek "=", lngRang
If Not .NoMatch Then 'si trouvé
' ici mettre la partie copie dans la table OLD
.Delete
End If
End With
End Sub

PS0: A tester sur une COPIE de la table (Précaution)
PS1: L'idée d'une table temporaire avec une requête de
non-correspondance pour trouver les enregistrements à supprimer peut ne
pas être mal.
PS2: Proposition pour revoir des méthodes (SEEK, INDEX) que j'utilise de
moins en moins (à noter toutefois que l'aide sur DAO est pas mal foutue
et m'a bien inspiré)


Bonjour Eric

c'est la solution que j'avais retenue en premier mais (parce qu'il y en
a un ...)
la table contient d'autres infos ajoutées apres l'encodage, comme des
mots clefs etc..
ces autres infos disparaitront lors d'une relance de la procedure..

En fait, je dois pouvoir comparer la table "active" avec ce qu'il y a
dans le repertoire cible.
dans le cas ou la ligne existe encore dans "active" mais plus dans le
repertoire "cible", les données sont transférées dans la table "Old".

Je planche actuellement sur une solution avec une table "temp" qui load
les infos du repertoire et les compares à la table "active"..
mais toutes pistes plus rationnelles et/ou me permettant de poursuivre
est la bienvenue

merci

Frederic


"Eric" wrote in message
news:
Bonjour,

Une idée : Supprimer les enregistrements de la table et relancer la
procédure d'écriture, non ?

Bonjour,

j'ai une appli qui recherche des fichiers dans un repertoire et les
mets dans une table.
super, ça tourne.

je dois maintenant pouvoir supprimer les lignes des fichiers ne se
trouvant plus dans le repertoire.

avant de faire le code, je me demandait quelle pouvait etre la
demarche à suivre.
d'avance merci

Frédéric


--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr




--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr