En utilisant la fonction de 3Stone pour lister les fichiers d'un
répertoire dnas un champ liste (avec un coup de pouce d'Eric), j'ai la
question subsidiaire.
Comment enregistrer cette liste dans un champ de table??
merci d'avance
Joyeux Noël à toutes et à tous. Un merci particulier aux 'cracs' de ce
groupe pour leur formidable travail.
Jean-Pierre
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
Eric
Bonsoir Jean-Pierre,
Est-ce vraiment raisonnable car si tu as entre 2 instants, t et t+dt, plus (ou moins) de fichiers dans le répertoire, ton champ de la table ne sera jamais à jour (on peut l'assimiler à un champ calculé).
Nonobstant cette remarque, tu peux toujours insérer via une commande SQL Dim strSQL as String strSQL = "Insert into LaTable(LeChampRecevantListe) VALUES('" & fListFiles("C:") & "');" CurrentDb.Execute strSQL
Salut,
En utilisant la fonction de 3Stone pour lister les fichiers d'un répertoire dnas un champ liste (avec un coup de pouce d'Eric), j'ai la question subsidiaire. Comment enregistrer cette liste dans un champ de table?? merci d'avance Joyeux Noël à toutes et à tous. Un merci particulier aux 'cracs' de ce groupe pour leur formidable travail. Jean-Pierre
-- A+ Eric http://www.mpfa.info/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Bonsoir Jean-Pierre,
Est-ce vraiment raisonnable car si tu as entre 2 instants, t et t+dt,
plus (ou moins) de fichiers dans le répertoire, ton champ de la table ne
sera jamais à jour (on peut l'assimiler à un champ calculé).
Nonobstant cette remarque, tu peux toujours insérer via une commande SQL
Dim strSQL as String
strSQL = "Insert into LaTable(LeChampRecevantListe) VALUES('" &
fListFiles("C:") & "');"
CurrentDb.Execute strSQL
Salut,
En utilisant la fonction de 3Stone pour lister les fichiers d'un
répertoire dnas un champ liste (avec un coup de pouce d'Eric), j'ai la
question subsidiaire.
Comment enregistrer cette liste dans un champ de table??
merci d'avance
Joyeux Noël à toutes et à tous. Un merci particulier aux 'cracs' de ce
groupe pour leur formidable travail.
Jean-Pierre
--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Est-ce vraiment raisonnable car si tu as entre 2 instants, t et t+dt, plus (ou moins) de fichiers dans le répertoire, ton champ de la table ne sera jamais à jour (on peut l'assimiler à un champ calculé).
Nonobstant cette remarque, tu peux toujours insérer via une commande SQL Dim strSQL as String strSQL = "Insert into LaTable(LeChampRecevantListe) VALUES('" & fListFiles("C:") & "');" CurrentDb.Execute strSQL
Salut,
En utilisant la fonction de 3Stone pour lister les fichiers d'un répertoire dnas un champ liste (avec un coup de pouce d'Eric), j'ai la question subsidiaire. Comment enregistrer cette liste dans un champ de table?? merci d'avance Joyeux Noël à toutes et à tous. Un merci particulier aux 'cracs' de ce groupe pour leur formidable travail. Jean-Pierre
-- A+ Eric http://www.mpfa.info/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
JP
Merci Eric,
Je suis assez d'accord avec ta remarque mais c'est und situation particulière. JP
Bonsoir Jean-Pierre,
Est-ce vraiment raisonnable car si tu as entre 2 instants, t et t+dt, plus (ou moins) de fichiers dans le répertoire, ton champ de la table ne sera jamais à jour (on peut l'assimiler à un champ calculé).
Nonobstant cette remarque, tu peux toujours insérer via une commande SQL Dim strSQL as String strSQL = "Insert into LaTable(LeChampRecevantListe) VALUES('" & fListFiles("C:") & "');" CurrentDb.Execute strSQL
Salut,
En utilisant la fonction de 3Stone pour lister les fichiers d'un répertoire dnas un champ liste (avec un coup de pouce d'Eric), j'ai la question subsidiaire. Comment enregistrer cette liste dans un champ de table?? merci d'avance Joyeux Noël à toutes et à tous. Un merci particulier aux 'cracs' de ce groupe pour leur formidable travail. Jean-Pierre
Merci Eric,
Je suis assez d'accord avec ta remarque mais c'est und situation
particulière.
JP
Bonsoir Jean-Pierre,
Est-ce vraiment raisonnable car si tu as entre 2 instants, t et t+dt,
plus (ou moins) de fichiers dans le répertoire, ton champ de la table ne
sera jamais à jour (on peut l'assimiler à un champ calculé).
Nonobstant cette remarque, tu peux toujours insérer via une commande SQL
Dim strSQL as String
strSQL = "Insert into LaTable(LeChampRecevantListe) VALUES('" &
fListFiles("C:") & "');"
CurrentDb.Execute strSQL
Salut,
En utilisant la fonction de 3Stone pour lister les fichiers d'un
répertoire dnas un champ liste (avec un coup de pouce d'Eric), j'ai la
question subsidiaire.
Comment enregistrer cette liste dans un champ de table??
merci d'avance
Joyeux Noël à toutes et à tous. Un merci particulier aux 'cracs' de ce
groupe pour leur formidable travail.
Jean-Pierre
Je suis assez d'accord avec ta remarque mais c'est und situation particulière. JP
Bonsoir Jean-Pierre,
Est-ce vraiment raisonnable car si tu as entre 2 instants, t et t+dt, plus (ou moins) de fichiers dans le répertoire, ton champ de la table ne sera jamais à jour (on peut l'assimiler à un champ calculé).
Nonobstant cette remarque, tu peux toujours insérer via une commande SQL Dim strSQL as String strSQL = "Insert into LaTable(LeChampRecevantListe) VALUES('" & fListFiles("C:") & "');" CurrentDb.Execute strSQL
Salut,
En utilisant la fonction de 3Stone pour lister les fichiers d'un répertoire dnas un champ liste (avec un coup de pouce d'Eric), j'ai la question subsidiaire. Comment enregistrer cette liste dans un champ de table?? merci d'avance Joyeux Noël à toutes et à tous. Un merci particulier aux 'cracs' de ce groupe pour leur formidable travail. Jean-Pierre
Gloops
Salut,
J'ai essayé ce que tu dis, comme ça par curiosité, et je me suis fait jeter : le nombre de valeurs de la requête doit coïncider avec le nombre de champs destination.
Ce qui signifie que si il y a un seul fichier sous la racine, ça marche.
Ce qui laisserait entendre qu'avec plus de fichiers on devrait pouvoir s'en sortir avec quelque chose du style
Public Sub ListeFichiers(Chemin As String) Dim Fic As String Fic = Dir(Chemin) While Not Fic = "" CurrentDb.Execute _ "INSERT INTO LaTable(LeChampRecevantListe) VALUES(" _ + Chr$(34) + Fic + Chr$(34) + ")" Fic = Dir() Wend End Sub
Comme je n'avais pas suivi la conversation précédente, j'ai fait le test avec ceci : Public Function fListFiles(Chemin As String) As String Dim Fic As String Fic = Dir(Chemin) fListFiles = "" While Not Fic = "" fListFiles = fListFiles + IIf(fListFiles = "", "", ", ") _ + """" + Fic + """" Fic = Dir() Wend End Function
à noter que les noms de fichiers apparaissent sans les caractères accentués (en tout cas sous Windows XP et avec Access 95). ___________________________________ Eric a écrit, le 23/12/2005 22:29 :
Bonsoir Jean-Pierre,
Est-ce vraiment raisonnable car si tu as entre 2 instants, t et t+dt, plus (ou moins) de fichiers dans le répertoire, ton champ de la table ne sera jamais à jour (on peut l'assimiler à un champ calculé).
Nonobstant cette remarque, tu peux toujours insérer via une commande SQL Dim strSQL as String strSQL = "Insert into LaTable(LeChampRecevantListe) VALUES('" & fListFiles("C:") & "');" CurrentDb.Execute strSQL
Salut,
En utilisant la fonction de 3Stone pour lister les fichiers d'un répertoire dnas un champ liste (avec un coup de pouce d'Eric), j'ai la question subsidiaire. Comment enregistrer cette liste dans un champ de table?? merci d'avance Joyeux Noël à toutes et à tous. Un merci particulier aux 'cracs' de ce groupe pour leur formidable travail. Jean-Pierre
Salut,
J'ai essayé ce que tu dis, comme ça par curiosité, et je me suis fait
jeter : le nombre de valeurs de la requête doit coïncider avec le nombre
de champs destination.
Ce qui signifie que si il y a un seul fichier sous la racine, ça marche.
Ce qui laisserait entendre qu'avec plus de fichiers on devrait pouvoir
s'en sortir avec quelque chose du style
Public Sub ListeFichiers(Chemin As String)
Dim Fic As String
Fic = Dir(Chemin)
While Not Fic = ""
CurrentDb.Execute _
"INSERT INTO LaTable(LeChampRecevantListe) VALUES(" _
+ Chr$(34) + Fic + Chr$(34) + ")"
Fic = Dir()
Wend
End Sub
Comme je n'avais pas suivi la conversation précédente, j'ai fait le test
avec ceci :
Public Function fListFiles(Chemin As String) As String
Dim Fic As String
Fic = Dir(Chemin)
fListFiles = ""
While Not Fic = ""
fListFiles = fListFiles + IIf(fListFiles = "", "", ", ") _
+ """" + Fic + """"
Fic = Dir()
Wend
End Function
à noter que les noms de fichiers apparaissent sans les caractères
accentués (en tout cas sous Windows XP et avec Access 95).
___________________________________
Eric a écrit, le 23/12/2005 22:29 :
Bonsoir Jean-Pierre,
Est-ce vraiment raisonnable car si tu as entre 2 instants, t et t+dt,
plus (ou moins) de fichiers dans le répertoire, ton champ de la table ne
sera jamais à jour (on peut l'assimiler à un champ calculé).
Nonobstant cette remarque, tu peux toujours insérer via une commande SQL
Dim strSQL as String
strSQL = "Insert into LaTable(LeChampRecevantListe) VALUES('" &
fListFiles("C:") & "');"
CurrentDb.Execute strSQL
Salut,
En utilisant la fonction de 3Stone pour lister les fichiers d'un
répertoire dnas un champ liste (avec un coup de pouce d'Eric), j'ai la
question subsidiaire.
Comment enregistrer cette liste dans un champ de table??
merci d'avance
Joyeux Noël à toutes et à tous. Un merci particulier aux 'cracs' de ce
groupe pour leur formidable travail.
Jean-Pierre
J'ai essayé ce que tu dis, comme ça par curiosité, et je me suis fait jeter : le nombre de valeurs de la requête doit coïncider avec le nombre de champs destination.
Ce qui signifie que si il y a un seul fichier sous la racine, ça marche.
Ce qui laisserait entendre qu'avec plus de fichiers on devrait pouvoir s'en sortir avec quelque chose du style
Public Sub ListeFichiers(Chemin As String) Dim Fic As String Fic = Dir(Chemin) While Not Fic = "" CurrentDb.Execute _ "INSERT INTO LaTable(LeChampRecevantListe) VALUES(" _ + Chr$(34) + Fic + Chr$(34) + ")" Fic = Dir() Wend End Sub
Comme je n'avais pas suivi la conversation précédente, j'ai fait le test avec ceci : Public Function fListFiles(Chemin As String) As String Dim Fic As String Fic = Dir(Chemin) fListFiles = "" While Not Fic = "" fListFiles = fListFiles + IIf(fListFiles = "", "", ", ") _ + """" + Fic + """" Fic = Dir() Wend End Function
à noter que les noms de fichiers apparaissent sans les caractères accentués (en tout cas sous Windows XP et avec Access 95). ___________________________________ Eric a écrit, le 23/12/2005 22:29 :
Bonsoir Jean-Pierre,
Est-ce vraiment raisonnable car si tu as entre 2 instants, t et t+dt, plus (ou moins) de fichiers dans le répertoire, ton champ de la table ne sera jamais à jour (on peut l'assimiler à un champ calculé).
Nonobstant cette remarque, tu peux toujours insérer via une commande SQL Dim strSQL as String strSQL = "Insert into LaTable(LeChampRecevantListe) VALUES('" & fListFiles("C:") & "');" CurrentDb.Execute strSQL
Salut,
En utilisant la fonction de 3Stone pour lister les fichiers d'un répertoire dnas un champ liste (avec un coup de pouce d'Eric), j'ai la question subsidiaire. Comment enregistrer cette liste dans un champ de table?? merci d'avance Joyeux Noël à toutes et à tous. Un merci particulier aux 'cracs' de ce groupe pour leur formidable travail. Jean-Pierre
Eric
Bonjour Gloops,
La fonction fListiles() de Pierre(3Stone - voir ici : http://www.3stone.be/access/articles.php?lng=fr&pg5 ) construit une chaine composée de tous les fichiers du répertoire passé en argument séparé par un point virgule ou une chaine vide si le répertoire est vide ou inexistant. Donc je ne vois pas ce qui peut bloquer sauf si le champ de la table interdit les chaines de longueur nulle.
En SQL, je ne renseigne qu'un seul champ de table. L'erreur que tu signales peut apparaitre si le nom de fichier contient une virgule mais il est vrai que je n'avais pas imaginé ce cas-là.
Salut,
J'ai essayé ce que tu dis, comme ça par curiosité, et je me suis fait jeter : le nombre de valeurs de la requête doit coïncider avec le nombre de champs destination.
Ce qui signifie que si il y a un seul fichier sous la racine, ça marche.
Ce qui laisserait entendre qu'avec plus de fichiers on devrait pouvoir s'en sortir avec quelque chose du style [...] à noter que les noms de fichiers apparaissent sans les caractères accentués (en tout cas sous Windows XP et avec Access 95).
-- A+ Eric http://www.mpfa.info/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Bonjour Gloops,
La fonction fListiles() de Pierre(3Stone - voir ici :
http://www.3stone.be/access/articles.php?lng=fr&pg5 ) construit une
chaine composée de tous les fichiers du répertoire passé en argument
séparé par un point virgule ou une chaine vide si le répertoire est vide
ou inexistant. Donc je ne vois pas ce qui peut bloquer sauf si le champ
de la table interdit les chaines de longueur nulle.
En SQL, je ne renseigne qu'un seul champ de table. L'erreur que tu
signales peut apparaitre si le nom de fichier contient une virgule mais
il est vrai que je n'avais pas imaginé ce cas-là.
Salut,
J'ai essayé ce que tu dis, comme ça par curiosité, et je me suis fait
jeter : le nombre de valeurs de la requête doit coïncider avec le nombre
de champs destination.
Ce qui signifie que si il y a un seul fichier sous la racine, ça marche.
Ce qui laisserait entendre qu'avec plus de fichiers on devrait pouvoir
s'en sortir avec quelque chose du style
[...]
à noter que les noms de fichiers apparaissent sans les caractères
accentués (en tout cas sous Windows XP et avec Access 95).
--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
La fonction fListiles() de Pierre(3Stone - voir ici : http://www.3stone.be/access/articles.php?lng=fr&pg5 ) construit une chaine composée de tous les fichiers du répertoire passé en argument séparé par un point virgule ou une chaine vide si le répertoire est vide ou inexistant. Donc je ne vois pas ce qui peut bloquer sauf si le champ de la table interdit les chaines de longueur nulle.
En SQL, je ne renseigne qu'un seul champ de table. L'erreur que tu signales peut apparaitre si le nom de fichier contient une virgule mais il est vrai que je n'avais pas imaginé ce cas-là.
Salut,
J'ai essayé ce que tu dis, comme ça par curiosité, et je me suis fait jeter : le nombre de valeurs de la requête doit coïncider avec le nombre de champs destination.
Ce qui signifie que si il y a un seul fichier sous la racine, ça marche.
Ce qui laisserait entendre qu'avec plus de fichiers on devrait pouvoir s'en sortir avec quelque chose du style [...] à noter que les noms de fichiers apparaissent sans les caractères accentués (en tout cas sous Windows XP et avec Access 95).
-- A+ Eric http://www.mpfa.info/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Gloops
Non non, l'erreur est au niveau de la syntaxe SQL : INSERT INTO ne crée qu'un seul enregistrement, et peut renseigner plusieurs champs, dont les noms sont fournis entre les parenthèses.
En cherchant bien peut-être qu'on trouve une autre syntaxe, mais celle-là c'est pour un enregistrement. ___________________________________ Eric a écrit, le 26/12/2005 07:47 :
Bonjour Gloops,
La fonction fListiles() de Pierre(3Stone - voir ici : http://www.3stone.be/access/articles.php?lng=fr&pg5 ) construit une chaine composée de tous les fichiers du répertoire passé en argument séparé par un point virgule ou une chaine vide si le répertoire est vide ou inexistant. Donc je ne vois pas ce qui peut bloquer sauf si le champ de la table interdit les chaines de longueur nulle.
En SQL, je ne renseigne qu'un seul champ de table. L'erreur que tu signales peut apparaitre si le nom de fichier contient une virgule mais il est vrai que je n'avais pas imaginé ce cas-là.
Non non, l'erreur est au niveau de la syntaxe SQL : INSERT INTO ne crée
qu'un seul enregistrement, et peut renseigner plusieurs champs, dont les
noms sont fournis entre les parenthèses.
En cherchant bien peut-être qu'on trouve une autre syntaxe, mais
celle-là c'est pour un enregistrement.
___________________________________
Eric a écrit, le 26/12/2005 07:47 :
Bonjour Gloops,
La fonction fListiles() de Pierre(3Stone - voir ici :
http://www.3stone.be/access/articles.php?lng=fr&pg5 ) construit une
chaine composée de tous les fichiers du répertoire passé en argument
séparé par un point virgule ou une chaine vide si le répertoire est vide
ou inexistant. Donc je ne vois pas ce qui peut bloquer sauf si le champ
de la table interdit les chaines de longueur nulle.
En SQL, je ne renseigne qu'un seul champ de table. L'erreur que tu
signales peut apparaitre si le nom de fichier contient une virgule mais
il est vrai que je n'avais pas imaginé ce cas-là.
Non non, l'erreur est au niveau de la syntaxe SQL : INSERT INTO ne crée qu'un seul enregistrement, et peut renseigner plusieurs champs, dont les noms sont fournis entre les parenthèses.
En cherchant bien peut-être qu'on trouve une autre syntaxe, mais celle-là c'est pour un enregistrement. ___________________________________ Eric a écrit, le 26/12/2005 07:47 :
Bonjour Gloops,
La fonction fListiles() de Pierre(3Stone - voir ici : http://www.3stone.be/access/articles.php?lng=fr&pg5 ) construit une chaine composée de tous les fichiers du répertoire passé en argument séparé par un point virgule ou une chaine vide si le répertoire est vide ou inexistant. Donc je ne vois pas ce qui peut bloquer sauf si le champ de la table interdit les chaines de longueur nulle.
En SQL, je ne renseigne qu'un seul champ de table. L'erreur que tu signales peut apparaitre si le nom de fichier contient une virgule mais il est vrai que je n'avais pas imaginé ce cas-là.
Eric
je comrends pas pourquoi tu veux ajouter plusieurs enregistrements. La fonction retourne une chaine constituée de tous les fichiers d'un rep du genre: C:1.xls;C:2.doc;...;C:tata.mdb;C:titi.mdb;C:toto.mdb. Il n'y a donc qu'un seul enregistrement à ajouter pour un répertoire donné et la commande SQL marche très bien.
Non non, l'erreur est au niveau de la syntaxe SQL : INSERT INTO ne crée qu'un seul enregistrement, et peut renseigner plusieurs champs, dont les noms sont fournis entre les parenthèses.
En cherchant bien peut-être qu'on trouve une autre syntaxe, mais celle-là c'est pour un enregistrement.
-- A+ Eric http://www.mpfa.info/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
je comrends pas pourquoi tu veux ajouter plusieurs enregistrements.
La fonction retourne une chaine constituée de tous les fichiers d'un rep
du genre: C:1.xls;C:2.doc;...;C:tata.mdb;C:titi.mdb;C:toto.mdb. Il
n'y a donc qu'un seul enregistrement à ajouter pour un répertoire donné
et la commande SQL marche très bien.
Non non, l'erreur est au niveau de la syntaxe SQL : INSERT INTO ne crée
qu'un seul enregistrement, et peut renseigner plusieurs champs, dont les
noms sont fournis entre les parenthèses.
En cherchant bien peut-être qu'on trouve une autre syntaxe, mais
celle-là c'est pour un enregistrement.
--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
je comrends pas pourquoi tu veux ajouter plusieurs enregistrements. La fonction retourne une chaine constituée de tous les fichiers d'un rep du genre: C:1.xls;C:2.doc;...;C:tata.mdb;C:titi.mdb;C:toto.mdb. Il n'y a donc qu'un seul enregistrement à ajouter pour un répertoire donné et la commande SQL marche très bien.
Non non, l'erreur est au niveau de la syntaxe SQL : INSERT INTO ne crée qu'un seul enregistrement, et peut renseigner plusieurs champs, dont les noms sont fournis entre les parenthèses.
En cherchant bien peut-être qu'on trouve une autre syntaxe, mais celle-là c'est pour un enregistrement.
-- A+ Eric http://www.mpfa.info/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Gloops
Ah, tu veux mettre toute la liste dans un seul champ, sur le même enregistrement ? J'avoue que l'idée ne m'avait pas effleuré ne serait-ce qu'un instant.
Il peut y avoir deux difficultés : - savoir à quelle longueur le dimensionner - savoir quoi faire avec
Une fois ces deux questions réglées, effectivement, avec un seul INSERT INTO on s'en sort très bien. ___________________________________ Eric a écrit, le 27/12/2005 09:30 :
je comrends pas pourquoi tu veux ajouter plusieurs enregistrements. La fonction retourne une chaine constituée de tous les fichiers d'un rep du genre: C:1.xls;C:2.doc;...;C:tata.mdb;C:titi.mdb;C:toto.mdb. Il n'y a donc qu'un seul enregistrement à ajouter pour un répertoire donné et la commande SQL marche très bien.
Non non, l'erreur est au niveau de la syntaxe SQL : INSERT INTO ne crée qu'un seul enregistrement, et peut renseigner plusieurs champs, dont les noms sont fournis entre les parenthèses.
En cherchant bien peut-être qu'on trouve une autre syntaxe, mais celle-là c'est pour un enregistrement.
Ah, tu veux mettre toute la liste dans un seul champ, sur le même
enregistrement ?
J'avoue que l'idée ne m'avait pas effleuré ne serait-ce qu'un instant.
Il peut y avoir deux difficultés :
- savoir à quelle longueur le dimensionner
- savoir quoi faire avec
Une fois ces deux questions réglées, effectivement, avec un seul INSERT
INTO on s'en sort très bien.
___________________________________
Eric a écrit, le 27/12/2005 09:30 :
je comrends pas pourquoi tu veux ajouter plusieurs enregistrements.
La fonction retourne une chaine constituée de tous les fichiers d'un rep
du genre: C:1.xls;C:2.doc;...;C:tata.mdb;C:titi.mdb;C:toto.mdb. Il
n'y a donc qu'un seul enregistrement à ajouter pour un répertoire donné
et la commande SQL marche très bien.
Non non, l'erreur est au niveau de la syntaxe SQL : INSERT INTO ne
crée qu'un seul enregistrement, et peut renseigner plusieurs champs,
dont les noms sont fournis entre les parenthèses.
En cherchant bien peut-être qu'on trouve une autre syntaxe, mais
celle-là c'est pour un enregistrement.
Ah, tu veux mettre toute la liste dans un seul champ, sur le même enregistrement ? J'avoue que l'idée ne m'avait pas effleuré ne serait-ce qu'un instant.
Il peut y avoir deux difficultés : - savoir à quelle longueur le dimensionner - savoir quoi faire avec
Une fois ces deux questions réglées, effectivement, avec un seul INSERT INTO on s'en sort très bien. ___________________________________ Eric a écrit, le 27/12/2005 09:30 :
je comrends pas pourquoi tu veux ajouter plusieurs enregistrements. La fonction retourne une chaine constituée de tous les fichiers d'un rep du genre: C:1.xls;C:2.doc;...;C:tata.mdb;C:titi.mdb;C:toto.mdb. Il n'y a donc qu'un seul enregistrement à ajouter pour un répertoire donné et la commande SQL marche très bien.
Non non, l'erreur est au niveau de la syntaxe SQL : INSERT INTO ne crée qu'un seul enregistrement, et peut renseigner plusieurs champs, dont les noms sont fournis entre les parenthèses.
En cherchant bien peut-être qu'on trouve une autre syntaxe, mais celle-là c'est pour un enregistrement.
Gloops
Salut,
A noter au passage une autre façon d'enregistrer la liste des fichiers dans un fichier, bien adaptée quand on a un poil dans la main :)
Shell "DIR " + Rep + " /B >DIR.TXT" (testé sous Windows XP)
C'est vrai que c'est à la lecture que le poil dans la main va gêner, car là il faudra se farcir :
Open "DIR.TXT" For Input As #1 While Not EOF(1) Input #1, Fic Wend Close #1
Un peu de paresse c'est bien pour chercher des solutions créatives, mais attention quand même de ne pas se gameller sur le répertoire où on met le fichier de liste. Si on compte sur le répertoire par défaut, se méfier qu'il peut changer.
Si le fichier de liste se met dans le répertoire listé, attention aux problèmes qui peuvent en découler.
On peut aussi importer un fichier texte dans une base Access, mais là on dépasse peut-être la question ... _________________________________ JP a écrit, le 23/12/2005 22:15 :
Salut,
En utilisant la fonction de 3Stone pour lister les fichiers d'un répertoire dnas un champ liste (avec un coup de pouce d'Eric), j'ai la question subsidiaire. Comment enregistrer cette liste dans un champ de table?? merci d'avance Joyeux Noël à toutes et à tous. Un merci particulier aux 'cracs' de ce groupe pour leur formidable travail. Jean-Pierre
Salut,
A noter au passage une autre façon d'enregistrer la liste des fichiers
dans un fichier, bien adaptée quand on a un poil dans la main :)
Shell "DIR " + Rep + " /B >DIR.TXT"
(testé sous Windows XP)
C'est vrai que c'est à la lecture que le poil dans la main va gêner, car
là il faudra se farcir :
Open "DIR.TXT" For Input As #1
While Not EOF(1)
Input #1, Fic
Wend
Close #1
Un peu de paresse c'est bien pour chercher des solutions créatives, mais
attention quand même de ne pas se gameller sur le répertoire où on met
le fichier de liste. Si on compte sur le répertoire par défaut, se
méfier qu'il peut changer.
Si le fichier de liste se met dans le répertoire listé, attention aux
problèmes qui peuvent en découler.
On peut aussi importer un fichier texte dans une base Access, mais là on
dépasse peut-être la question ...
_________________________________
JP a écrit, le 23/12/2005 22:15 :
Salut,
En utilisant la fonction de 3Stone pour lister les fichiers d'un
répertoire dnas un champ liste (avec un coup de pouce d'Eric), j'ai la
question subsidiaire.
Comment enregistrer cette liste dans un champ de table??
merci d'avance
Joyeux Noël à toutes et à tous. Un merci particulier aux 'cracs' de ce
groupe pour leur formidable travail.
Jean-Pierre
A noter au passage une autre façon d'enregistrer la liste des fichiers dans un fichier, bien adaptée quand on a un poil dans la main :)
Shell "DIR " + Rep + " /B >DIR.TXT" (testé sous Windows XP)
C'est vrai que c'est à la lecture que le poil dans la main va gêner, car là il faudra se farcir :
Open "DIR.TXT" For Input As #1 While Not EOF(1) Input #1, Fic Wend Close #1
Un peu de paresse c'est bien pour chercher des solutions créatives, mais attention quand même de ne pas se gameller sur le répertoire où on met le fichier de liste. Si on compte sur le répertoire par défaut, se méfier qu'il peut changer.
Si le fichier de liste se met dans le répertoire listé, attention aux problèmes qui peuvent en découler.
On peut aussi importer un fichier texte dans une base Access, mais là on dépasse peut-être la question ... _________________________________ JP a écrit, le 23/12/2005 22:15 :
Salut,
En utilisant la fonction de 3Stone pour lister les fichiers d'un répertoire dnas un champ liste (avec un coup de pouce d'Eric), j'ai la question subsidiaire. Comment enregistrer cette liste dans un champ de table?? merci d'avance Joyeux Noël à toutes et à tous. Un merci particulier aux 'cracs' de ce groupe pour leur formidable travail. Jean-Pierre
Gloops
Gloops a écrit, le 27/12/2005 13:01 :
Shell "DIR " + Rep + " /B >DIR.TXT" (testé sous Windows XP)
Pardon pour la publicité mensongère. C'est la commande DIR que j'avais testée. L'appel depuis Access s'écrit comme ça : Shell "CMD /C" + Chr$(34) + "DIR C: /B >DIR.TXT" + Chr$(34) en remplaçant C: par " + Rep + " ce que je n'ai pas testé mais là j'ai confiance, ... Attention on peut avoir à mettre des guillemets autour du chemin du répertoire dans le cas où on utilise un nom long, comme "C:Documents and Settings", sinon les espaces vont poser problème. "DIR " + Chr$(34) + Rep + Chr$(34) + " /B" ...
CMD est aussi le résultat de Environ$("COMSPEC") qui peut s'avérer plus souple pour s'adapter à d'autres configurations. Sur d'autres versions de Windows il peut falloir adapter.
Moui. Paresse si on veut, mais à condition de ne pas trop changer de système en route ...
Gloops a écrit, le 27/12/2005 13:01 :
Shell "DIR " + Rep + " /B >DIR.TXT"
(testé sous Windows XP)
Pardon pour la publicité mensongère.
C'est la commande DIR que j'avais testée.
L'appel depuis Access s'écrit comme ça :
Shell "CMD /C" + Chr$(34) + "DIR C: /B >DIR.TXT" + Chr$(34)
en remplaçant C: par " + Rep + "
ce que je n'ai pas testé mais là j'ai confiance, ...
Attention on peut avoir à mettre des guillemets autour du chemin du
répertoire dans le cas où on utilise un nom long, comme "C:Documents
and Settings", sinon les espaces vont poser problème.
"DIR " + Chr$(34) + Rep + Chr$(34) + " /B" ...
CMD est aussi le résultat de
Environ$("COMSPEC")
qui peut s'avérer plus souple pour s'adapter à d'autres configurations.
Sur d'autres versions de Windows il peut falloir adapter.
Moui. Paresse si on veut, mais à condition de ne pas trop changer de
système en route ...
Shell "DIR " + Rep + " /B >DIR.TXT" (testé sous Windows XP)
Pardon pour la publicité mensongère. C'est la commande DIR que j'avais testée. L'appel depuis Access s'écrit comme ça : Shell "CMD /C" + Chr$(34) + "DIR C: /B >DIR.TXT" + Chr$(34) en remplaçant C: par " + Rep + " ce que je n'ai pas testé mais là j'ai confiance, ... Attention on peut avoir à mettre des guillemets autour du chemin du répertoire dans le cas où on utilise un nom long, comme "C:Documents and Settings", sinon les espaces vont poser problème. "DIR " + Chr$(34) + Rep + Chr$(34) + " /B" ...
CMD est aussi le résultat de Environ$("COMSPEC") qui peut s'avérer plus souple pour s'adapter à d'autres configurations. Sur d'autres versions de Windows il peut falloir adapter.
Moui. Paresse si on veut, mais à condition de ne pas trop changer de système en route ...
Bon, vous avez compris que j'ai testé une étape, puis élucubré sur une autre. Bien entendu, si on met deux jeux de guillemets sur une même ligne de commande, ça va donner quelque chose de bizarre. Alors l'un des deux sera à remplacer par des apostrophes, et à chacun de tester et adapter, en n'oubliant pas le cas où un nom de fichier contient une apostrophe si jamais le système accepte ça. J'ai annoncé une solution pour paresseux ? Peut-être que j'aurais aussi bien fait de m'abstenir, tiens ...
Bon, vous avez compris que j'ai testé une étape, puis élucubré sur une
autre.
Bien entendu, si on met deux jeux de guillemets sur une même ligne de
commande, ça va donner quelque chose de bizarre.
Alors l'un des deux sera à remplacer par des apostrophes, et à chacun de
tester et adapter, en n'oubliant pas le cas où un nom de fichier
contient une apostrophe si jamais le système accepte ça.
J'ai annoncé une solution pour paresseux ?
Peut-être que j'aurais aussi bien fait de m'abstenir, tiens ...
Bon, vous avez compris que j'ai testé une étape, puis élucubré sur une autre. Bien entendu, si on met deux jeux de guillemets sur une même ligne de commande, ça va donner quelque chose de bizarre. Alors l'un des deux sera à remplacer par des apostrophes, et à chacun de tester et adapter, en n'oubliant pas le cas où un nom de fichier contient une apostrophe si jamais le système accepte ça. J'ai annoncé une solution pour paresseux ? Peut-être que j'aurais aussi bien fait de m'abstenir, tiens ...