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

Demande d'info à R Seneque concernant l'exemple base exemple n°38

5 réponses
Avatar
fredonnon
Bonjour,

Avec mes modestes connaissances Access VBA, j'ai tenté de comprendre
comment fonctionnent les fonctions openfile et savefile.

J'avoue avoir un peu de mal à trouver où la fonction savefile récupère
le chemin entier et le nom de fichier pour l'injecter dans la table.
J'aimerais récupérer uniquement le nom de fichier avec son extension,
ce qui permet d'afficher les images en pointant sur un répertoire
relatif et non pas figé en cas d'installation sur plusieurs postes de
travail.

J'espère que tu pourras m'éclairer sur ce point.

D'avance, un grand merci !

5 réponses

Avatar
Raymond [mvp]
Bonjour.

Ce n'est pas la peine d'aller voir la base c'est du standard standard:
Private Sub Commande0_Click()
Me.Texte1 = SaveFile(currentproject.path)
End Sub

texte1 est un controle texte de formulaire qui reçoit le nom du fichier
sélectionné par l'utilisateur.
savefile est la fonction de composition de nom de document de la librairie
GetSaveFileName
currentproject.path est le répertoire en cours.

quand tu reçois le chemin complet, tu peux le partager et/ou le manipuler
avec la fonction Chemin que tu trouveras sur la pagee :
http://access.seneque.free.fr/chemin.htm

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Fredonnon" a écrit dans le message de
news:
Bonjour,

Avec mes modestes connaissances Access VBA, j'ai tenté de comprendre
comment fonctionnent les fonctions openfile et savefile.

J'avoue avoir un peu de mal à trouver où la fonction savefile récupère
le chemin entier et le nom de fichier pour l'injecter dans la table.
J'aimerais récupérer uniquement le nom de fichier avec son extension,
ce qui permet d'afficher les images en pointant sur un répertoire
relatif et non pas figé en cas d'installation sur plusieurs postes de
travail.

J'espère que tu pourras m'éclairer sur ce point.

D'avance, un grand merci !


Avatar
fredonnon
D'accord mais si je ne veux avoir que la partie fichier et extension,
on peut l'effectuer sans la dll je pense non ?

J'ai essayé et j'ai trouvé comment récupérer le nom de fichier seul
mais pour l'injecter à la place du nom dans la base exemple, je sèche
un peu.

Voilà où j'en suis :

Dim strChemin As String, CPF As String, intSlashLoc As String, nb as
integer,Nomfichier as string
CPF=currentproject.FullName
intslashloc=instrrev(CPF,"",len(cpf))
strchemin=left(cpf,intslashloc)
nb=len(cpf)-len(strchemin)
nomfichier=right(cpf,nb)



"Raymond [mvp]" wrote in message news:...
Bonjour.

Ce n'est pas la peine d'aller voir la base c'est du standard standard:
Private Sub Commande0_Click()
Me.Texte1 = SaveFile(currentproject.path)
End Sub

texte1 est un controle texte de formulaire qui reçoit le nom du fichier
sélectionné par l'utilisateur.
savefile est la fonction de composition de nom de document de la librairie
GetSaveFileName
currentproject.path est le répertoire en cours.

quand tu reçois le chemin complet, tu peux le partager et/ou le manipuler
avec la fonction Chemin que tu trouveras sur la pagee :
http://access.seneque.free.fr/chemin.htm

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Fredonnon" a écrit dans le message de
news:
Bonjour,

Avec mes modestes connaissances Access VBA, j'ai tenté de comprendre
comment fonctionnent les fonctions openfile et savefile.

J'avoue avoir un peu de mal à trouver où la fonction savefile récupère
le chemin entier et le nom de fichier pour l'injecter dans la table.
J'aimerais récupérer uniquement le nom de fichier avec son extension,
ce qui permet d'afficher les images en pointant sur un répertoire
relatif et non pas figé en cas d'installation sur plusieurs postes de
travail.

J'espère que tu pourras m'éclairer sur ce point.

D'avance, un grand merci !




Avatar
Raymond [mvp]
Si tu demandes un chemin par l'api savefile c'est justement pour avoir le
chemin complet choisi par l'utilisateur sans se soucier du nom ni du chemin.
si tu avais voulu le choisir toi-même tu aurais pris le currentproject.path
peux-tu expliciter pourquoi tu veux partager le nom complet ?
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Fredonnon" a écrit dans le message de
news:
D'accord mais si je ne veux avoir que la partie fichier et extension,
on peut l'effectuer sans la dll je pense non ?

J'ai essayé et j'ai trouvé comment récupérer le nom de fichier seul
mais pour l'injecter à la place du nom dans la base exemple, je sèche
un peu.

Voilà où j'en suis :

Dim strChemin As String, CPF As String, intSlashLoc As String, nb as
integer,Nomfichier as string
CPF=currentproject.FullName
intslashloc=instrrev(CPF,"",len(cpf))
strchemin=left(cpf,intslashloc)
nb=len(cpf)-len(strchemin)
nomfichier=right(cpf,nb)




Avatar
fredonnon
Le fait de ne pas avoir le nom complet dans le champ permet de
s'affranchir de la position de la base dans l'arborescence du disque
dur si l'on change la base de place (exemple d'une copie de la base
sur un autre micro). Je préfère avoir un chemin relatif que figé dans
mes champs pointant sur les images mais c'est peut-être être un peu
perfectionniste tu me diras (c;

J'avoue aussi être curieux de connaître un peu plus comment fonctionne
la base exemple 38 sur la récupération du chemin et l'enregistrement
du nom dans un champ. Mais peut-être que tout simplement cette api
fonctionne ainsi. C'est ce que je crois comprendre d'après ce que tu
dis.


"Raymond [mvp]" wrote in message news:...
Si tu demandes un chemin par l'api savefile c'est justement pour avoir le
chemin complet choisi par l'utilisateur sans se soucier du nom ni du chemin.
si tu avais voulu le choisir toi-même tu aurais pris le currentproject.path
peux-tu expliciter pourquoi tu veux partager le nom complet ?
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Fredonnon" a écrit dans le message de
news:
D'accord mais si je ne veux avoir que la partie fichier et extension,
on peut l'effectuer sans la dll je pense non ?

J'ai essayé et j'ai trouvé comment récupérer le nom de fichier seul
mais pour l'injecter à la place du nom dans la base exemple, je sèche
un peu.

Voilà où j'en suis :

Dim strChemin As String, CPF As String, intSlashLoc As String, nb as
integer,Nomfichier as string
CPF=currentproject.FullName
intslashloc=instrrev(CPF,"",len(cpf))
strchemin=left(cpf,intslashloc)
nb=len(cpf)-len(strchemin)
nomfichier=right(cpf,nb)






Avatar
Raymond [mvp]
Dans l'exemple, le chemin complet n'est pas fragmenté mais en entier dans la
table. Si on part du principe qu'on place l'image sur un répertoire relatif,
pourquoi le demander à l'utilisateur et surtout pourquoi lui demander le nom
du fichier car il suffit de le remplacer par la clé primaire de
l'enregistrement. (entre nous tu en connais beaucoup qui plongent dans
l'arborescence d'une base de données. il faut être téméraire pour le
faire.).
tu as aussi des fonctions pour partager les noms. exemple :
http://access.seneque.free.fr/chemin.htm

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Fredonnon" a écrit dans le message de
news:
Le fait de ne pas avoir le nom complet dans le champ permet de
s'affranchir de la position de la base dans l'arborescence du disque
dur si l'on change la base de place (exemple d'une copie de la base
sur un autre micro). Je préfère avoir un chemin relatif que figé dans
mes champs pointant sur les images mais c'est peut-être être un peu
perfectionniste tu me diras (c;

J'avoue aussi être curieux de connaître un peu plus comment fonctionne
la base exemple 38 sur la récupération du chemin et l'enregistrement
du nom dans un champ. Mais peut-être que tout simplement cette api
fonctionne ainsi. C'est ce que je crois comprendre d'après ce que tu
dis.