Forum des développeurs  

Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé.
Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Microsoft Office > Access > Conception

Conception Le forum qui vous aide à résoudre vos questions relatives à la modélisation de votre base de données sous Access.

Réponse
 
Outils de la discussion
Vieux 24/09/2008, 13h04   #1 (permalink)
Membre régulier
 
Date d'inscription: novembre 2004
Localisation: Lorraine
Âge: 53
Messages: 135
Par défaut liens fichiers en réseau

Bonjour à tous

Une table article avec
un champ Code
un champ Lien1 (lien vers un fichier)
un champ Lien2 (lien vers une image)

Cette table est alimentée par un formulaire et les champs liens 1 et 2 sont alimentés par une fonction GetFileName.

Cela donne :
1510 c:\annexes\regles\Reg_1510.pdf C:\annexes\img\Img_1510.jpg
1520 c:\annexes\regles\Reg_1520.pdf C:\annexes\img\Img_1520.jpg

Et cela permet dans un formulaire d'avoir la fiche article avec les liens permettant d'ouvrir directement les fichiers en question.
Tout va très bien tant que c'est en Mono-poste.
Si je mets maintenant un poste client, pas de problèmes pour faire les mises à jour des liens tables vers le poste principal ou un serveur.

Par contre quand on rappelle la fiche article sur le poste client, on a toujours le lien vers "c:\annexes\regles\Reg_1510.pdf"

J'ai bien pensé à mettre à la configuration du poste client une zone enregistrée dans un fichier liens.ini
[Chemin]
chemin annexe=M:\annexes\

Dans ce cas comment, au moment ou je clique sur le lien faire en sorte qu'il remplace "c:\annexes\regles\Reg_1510.pdf" par "M:\annexes\regles\Reg_1510.pdf" et qu'il ouvre donc le fichier?

Vous remerciant tous par avance.
GAYOT est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 24/09/2008, 13h39   #2 (permalink)
Responsable PowerPoint
 
Avatar de Philippe JOCHMANS
 
Date d'inscription: mai 2005
Localisation: Loir et Cher et Touraine
Âge: 40
Messages: 10 361
Envoyer un message via MSN à Philippe JOCHMANS
Par défaut

Bonjour

Ce que tu peux faire c'est juste mettre le nom de fichier, et le concaténer avec le chemin de ton fichier Ini, ainsi tu reconstitues la chaine complète.

Starec
__________________
En cas de questions techniques par MP ou message visiteur
Office : :Les Cours, Les FAQs
VB : Les Cours, Les FAQs
Mes articles : ici
Me connaitre
Philippe JOCHMANS est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 24/09/2008, 13h49   #3 (permalink)
Membre régulier
 
Date d'inscription: novembre 2004
Localisation: Lorraine
Âge: 53
Messages: 135
Par défaut

Citation:
Envoyé par Starec Voir le message
Bonjour

Ce que tu peux faire c'est juste mettre le nom de fichier, et le concaténer avec le chemin de ton fichier Ini, ainsi tu reconstitues la chaine complète.

Starec
Merci Starec.

Mais comment fais je pour récupérer dans la chaine déjà créée, juste le nom du fichier, afin effectivement de le concaténer à une fonction LireFichierIni?
GAYOT est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 24/09/2008, 14h08   #4 (permalink)
Responsable PowerPoint
 
Avatar de Philippe JOCHMANS
 
Date d'inscription: mai 2005
Localisation: Loir et Cher et Touraine
Âge: 40
Messages: 10 361
Envoyer un message via MSN à Philippe JOCHMANS
Par défaut

Bonjour

Une petite fonction en utilisant la fonction Split pour éclater la chaine :

Code :
Public Function RechFichier(strChemin As String) As String
    
    Dim tabChemin() As String
    Dim i As Integer
    
    tabChemin = Split(strChemin, "\")
    
    RechFichier = tabChemin(UBound(tabChemin))
End Function
 
 
Tu peux la mettre dans une requête de mise à jour (attention à faire les tests sur une copie).

Starec
__________________
En cas de questions techniques par MP ou message visiteur
Office : :Les Cours, Les FAQs
VB : Les Cours, Les FAQs
Mes articles : ici
Me connaitre
Philippe JOCHMANS est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 24/09/2008, 17h11   #5 (permalink)
Membre régulier
 
Date d'inscription: novembre 2004
Localisation: Lorraine
Âge: 53
Messages: 135
Par défaut

Citation:
Envoyé par Starec Voir le message
Bonjour

Une petite fonction en utilisant la fonction Split pour éclater la chaine :

Code :
Public Function RechFichier(strChemin As String) As String
    
    Dim tabChemin() As String
    Dim i As Integer
    
    tabChemin = Split(strChemin, "\")
    
    RechFichier = tabChemin(UBound(tabChemin))
End Function
 
 
Tu peux la mettre dans une requête de mise à jour (attention à faire les tests sur une copie).

Starec
Je vais essayer cette méthode, pour que cela s'affiche avec le lien modifié.

Cependant je ne veux pas mettre ma table à jour dans la mesure ou le lien sur le poste principal ou serveur est bon.

Ce pourrait par contre être valable , si je changeais le répertoire de place.
GAYOT est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 29/09/2008, 11h11   #6 (permalink)
Membre régulier
 
Date d'inscription: novembre 2004
Localisation: Lorraine
Âge: 53
Messages: 135
Par défaut

Citation:
Envoyé par Starec Voir le message
Bonjour

Une petite fonction en utilisant la fonction Split pour éclater la chaine :

Code :
Public Function RechFichier(strChemin As String) As String
    
    Dim tabChemin() As String
    Dim i As Integer
    
    tabChemin = Split(strChemin, "\")
    
    RechFichier = tabChemin(UBound(tabChemin))
End Function
 
 
Tu peux la mettre dans une requête de mise à jour (attention à faire les tests sur une copie).

Starec
Cette fonction marche très bien et me permets bien d'avoir un chemin d'accès reconstitué.


Néanmoins j'ai essayé comme me l'a suggéré Starec de faire une requête de mise à jour afin de n'avoir dans mes champs liens que les noms de fichier.
Or je n'arrive pas à concilier la fonction Split avec la requête Update. J'ai essayé avec le Qbe mais il ne connait pas la fonction Split.

Code :
 
oDb.Execute "UPDATE Articles SET Articles.Lien1 = Split(Articles.Lien1,'\')(UBound(Split(Articles.Lien1, ' \ '))) "
 
Il me manque manifestement une notion élémentaire.

D'avance Merci
GAYOT est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 29/09/2008, 15h47   #7 (permalink)
Membre régulier
 
Date d'inscription: novembre 2004
Localisation: Lorraine
Âge: 53
Messages: 135
Par défaut

Citation:
Envoyé par GAYOT Voir le message

Code :
 
oDb.Execute "UPDATE Articles SET Articles.Lien1 = Split(Articles.Lien1,'\')(UBound(Split(Articles.Lien1, ' \ '))) "
 
Il me manque manifestement une notion élémentaire.

D'avance Merci
J'ai trouvé il suffisait tout simplement de faire ceci:
Code :
 
 
Public Function MajTable()
DoCmd.RunSQL "UPDATE Articles SET Articles.Liens = RechFichier([Articles]![Liens]);"
End Function
 
GAYOT est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 29/09/2008, 15h50   #8 (permalink)
Responsable PowerPoint
 
Avatar de Philippe JOCHMANS
 
Date d'inscription: mai 2005
Localisation: Loir et Cher et Touraine
Âge: 40
Messages: 10 361
Envoyer un message via MSN à Philippe JOCHMANS
Par défaut

Bonjour

Trop tard, tu as trouvé , si maintenant tout est bon, un petit clique sur le bouton

Starec
__________________
En cas de questions techniques par MP ou message visiteur
Office : :Les Cours, Les FAQs
VB : Les Cours, Les FAQs
Mes articles : ici
Me connaitre
Philippe JOCHMANS est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 29/09/2008, 16h16   #9 (permalink)
Membre régulier
 
Date d'inscription: novembre 2004
Localisation: Lorraine
Âge: 53
Messages: 135
Par défaut

C'est presque bon.
IL faut y rajouter un critère pour les champs vides.
Sinon message d'erreur...
GAYOT est déconnecté   Envoyer un message privé Réponse avec citation
NEWS ACCESSF.A.Q AccessF.A.Q VBATutorielsSourcesOutilsLivresAccess TVAccess 2007

Réponse

Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Microsoft Office > Access > Conception



Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non
Navigation rapide