Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > VBA Access
VBA Access Le forum pour les questions relatives au code VBA sous Access, et à son environnement de développement VBE.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 03/12/2010, 19h56   #1
Nouveau Membre du Club
 
Femme Sophie Pomerleau
Analyse système
Inscription : mai 2010
Messages : 123
Détails du profil
Informations personnelles :
Nom : Femme Sophie Pomerleau
Localisation : Canada

Informations professionnelles :
Activité : Analyse système
Secteur : Finance

Informations forums :
Inscription : mai 2010
Messages : 123
Points : 25
Points : 25
Par défaut lire le contenu d'un .txt

Bonjour à vous...

J'aimerais ouvrir un fichier .txt sur le disque dur et mettre le contenu de la première ligne dans une variable. Le but est de mettre le chemin de la BD, pour ensuite m'en servir comme attribut OpenDatabase.

Merci beaucoup.
Gorj
gorjette est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/12/2010, 20h36   #2
Rédacteur
 
Avatar de LedZeppII
 
Homme
Maintenance données produits
Inscription : décembre 2005
Messages : 3 939
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Maintenance données produits
Secteur : Distribution

Informations forums :
Inscription : décembre 2005
Messages : 3 939
Points : 6 278
Points : 6 278
Bonsoir,

un petit exemple :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
Dim hFile As Integer
Dim strLine  As String, strFile As String
 
strFile = "D:\Documents\FichierTexte.txt"
hFile = FreeFile()
' Ouverture fichier texte
Open strFile For Input As hFile
' Lecture première ligne
Line Input #hFile, strLine
' Fermeture fichier
Close hFile
 
Debug.Print strLine
A+
LedZeppII est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/12/2010, 21h07   #3
Nouveau Membre du Club
 
Femme Sophie Pomerleau
Analyse système
Inscription : mai 2010
Messages : 123
Détails du profil
Informations personnelles :
Nom : Femme Sophie Pomerleau
Localisation : Canada

Informations professionnelles :
Activité : Analyse système
Secteur : Finance

Informations forums :
Inscription : mai 2010
Messages : 123
Points : 25
Points : 25
Premièrement merci ....

Tu pourrais m'expliquer à quoi sert l'Integer dans le code?

Merci bien.
Gorj
gorjette est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/12/2010, 21h21   #4
Nouveau Membre du Club
 
Femme Sophie Pomerleau
Analyse système
Inscription : mai 2010
Messages : 123
Détails du profil
Informations personnelles :
Nom : Femme Sophie Pomerleau
Localisation : Canada

Informations professionnelles :
Activité : Analyse système
Secteur : Finance

Informations forums :
Inscription : mai 2010
Messages : 123
Points : 25
Points : 25
Je dois passer la string comme path à ma BD...
Code :
1
2
3
4
5
6
7
8
9
10
11
 
Dim Dbs As Database, hFile As Integer
Dim strLine, strFile As String
strFile = "C:\Documents and Settings\Administrator\Desktop\tryer\CCM_cher_be.mdb"
hFile = FreeFile()
Open strFile For Input As hFile
Line Input #hFile, strLine
Close hFile
Debug.Print strLine
............................ Ici "could not find file 'strLine'"
Set Dbs = DBEngine.OpenDatabase("strLine")
aussi, est-ce que debug print est une méthode qui fonctionne en VBA?
gorjette est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/12/2010, 21h38   #5
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 311
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

Informations professionnelles :
Activité : Contrôleur d'industrie
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 17 311
Points : 29 201
Points : 29 201
Salut,

Je vais te donner un lien vers un tuto que devrait apporter quelques réponses.

http://warin.developpez.com/access/fichiers/
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Débutez en VBA

Mes articles


Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/12/2010, 11h02   #6
Membre expérimenté
 
Inscription : juillet 2005
Messages : 555
Détails du profil
Informations personnelles :
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : juillet 2005
Messages : 555
Points : 578
Points : 578
Par défaut le chemin

bonjour,

si t'as juste besoin du chemin de la base courante

Code :
1
2
3
4
 
 
Dim ouestelle As String
ouestelle = CurrentProject.Path
a+
naphta est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/12/2010, 15h12   #7
Rédacteur
 
Avatar de LedZeppII
 
Homme
Maintenance données produits
Inscription : décembre 2005
Messages : 3 939
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Maintenance données produits
Secteur : Distribution

Informations forums :
Inscription : décembre 2005
Messages : 3 939
Points : 6 278
Points : 6 278
Bonjour,

Citation:
Tu pourrais m'expliquer à quoi sert l'Integer dans le code?
Il sert à stocker et utiliser la valeur renvoyée par la fonction FreeFile().
Cette dernière renvoie le premier numéro de fichier libre.
En faisant ...
Code :
1
2
3
4
hFile = FreeFile()
Open strFile For Input As hFile
Line Input #hFile, strLine
Close hFile
... plutôt que ...
Code :
1
2
3
Open strFile For Input As #1
Line Input #1, strLine
Close #1
... on a l'assurance de ne pas tomber sur un numéro de fichier déjà utilisé.
Dans le deuxième extrait de code, rien ne me garantie que le numéro de fichier 1 n'est pas en cours d'utilisation.

Concernant la suite de ton code, après avoir lu la première ligne de ton fichier texte, cette ligne se trouve dans la variable strLine.
Cette première ligne étant le chemin complet vers une base de données, pour ouvrir cette dernière avec DAO la syntaxe est :
Code :
Set Dbs = DBEngine.OpenDatabase(strLine)
A+
LedZeppII est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/12/2010, 22h23   #8
Nouveau Membre du Club
 
Femme Sophie Pomerleau
Analyse système
Inscription : mai 2010
Messages : 123
Détails du profil
Informations personnelles :
Nom : Femme Sophie Pomerleau
Localisation : Canada

Informations professionnelles :
Activité : Analyse système
Secteur : Finance

Informations forums :
Inscription : mai 2010
Messages : 123
Points : 25
Points : 25
Par défaut Merci à tous

Voilà, le tout est réglé. J'avais des guillemets en trop.

Pour poursuivre la discussion. Je vais me servir de ce fichier "path.txt" pour tout les actions des postes clients. Ce qui implique que 6 postes de travail vont continuellement ouvrir ce fichier .txt pour trouver le chemin de la base de donnée (à chaque bouton, menu déroulant, enfin tout). Or, je me demande s'il je peux avoir des problèmes....

Dans le cas où vous croyez qu'il peut y avoir des problèmes... est-ce qu'une meilleure solution s'apparait nécessaire? Dans le genre créer une table qui reste local au client, et dans laquelle j'inscrit le path de la BD.

Merci bien à tous.
Gorj
gorjette est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/12/2010, 02h24   #9
Nouveau Membre du Club
 
Femme Sophie Pomerleau
Analyse système
Inscription : mai 2010
Messages : 123
Détails du profil
Informations personnelles :
Nom : Femme Sophie Pomerleau
Localisation : Canada

Informations professionnelles :
Activité : Analyse système
Secteur : Finance

Informations forums :
Inscription : mai 2010
Messages : 123
Points : 25
Points : 25
Par défaut Complètement dans le champ

Bonjour,

J'ai voulu "bypasser" le link manager en forçant le "path" par programmation...
L'affaire, c'est que ça marche juste si la base est lieé par le link manager... car la plupart des objets sont liés aux tables directement... Le link manager est donc un problème majeur pour mon projet actuel, puisque je ne peux pas changer les liens manuellement (et j'aimerais pouvoir déployer sans me déplacer chez le client)...

Je n'ai toujours pas trouvé le moyen de déployer un projet Access (client/serveur) à distance... Quelqu'un a une diée?

Merci bien.
Gorj
gorjette est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/12/2010, 22h10   #10
Rédacteur
 
Avatar de LedZeppII
 
Homme
Maintenance données produits
Inscription : décembre 2005
Messages : 3 939
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Maintenance données produits
Secteur : Distribution

Informations forums :
Inscription : décembre 2005
Messages : 3 939
Points : 6 278
Points : 6 278
Bonjour,

Est-ce que l'emplacement de la base dorsale est relatif à la base frontale ou pas ?
Si oui, on peut mettre en place un code exécuté à l'ouverture de la frontale, qui vérifie les tables liées et recrée les liens si besoin.

Dans le cas contraire, on peut utiliser un code qui vérifie les tables liées et demande à l'utilisateur de sélectionner la base dorsale afin de recréer les liens.

A+
LedZeppII est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/12/2010, 02h09   #11
Nouveau Membre du Club
 
Femme Sophie Pomerleau
Analyse système
Inscription : mai 2010
Messages : 123
Détails du profil
Informations personnelles :
Nom : Femme Sophie Pomerleau
Localisation : Canada

Informations professionnelles :
Activité : Analyse système
Secteur : Finance

Informations forums :
Inscription : mai 2010
Messages : 123
Points : 25
Points : 25
Merci bien.
1- qu'est ce que dorsal? J'utilise plusieurs clients qui sont liés par le "link manager" à une base centralisé sur une machine serveur.
2- est-ce que tu as un tuto, ou un exemple de code pour faire ça? Car je sais pas du-tout par où commencer...

Merci pour ton retour. Ça semble très intéressant.

Gorj
gorjette est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/12/2010, 20h16   #12
Rédacteur
 
Avatar de LedZeppII
 
Homme
Maintenance données produits
Inscription : décembre 2005
Messages : 3 939
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Maintenance données produits
Secteur : Distribution

Informations forums :
Inscription : décembre 2005
Messages : 3 939
Points : 6 278
Points : 6 278
Bonsoir,

La base dorsale est la base contenant les tables et les données.
Cela correspond à la base que tu mets sur le serveur.

La base frontale contient des tables liées à la dorsale, les requêtes, formulaires, états, macros, ... bref tout le reste.

Le tutoriel sur le sujet est Comment utiliser une application en mode multi-utilisateurs

Un lien sur une ancienne discussion : Rafraichir des tables liées

A+
LedZeppII est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/12/2010, 21h13   #13
Nouveau Membre du Club
 
Femme Sophie Pomerleau
Analyse système
Inscription : mai 2010
Messages : 123
Détails du profil
Informations personnelles :
Nom : Femme Sophie Pomerleau
Localisation : Canada

Informations professionnelles :
Activité : Analyse système
Secteur : Finance

Informations forums :
Inscription : mai 2010
Messages : 123
Points : 25
Points : 25
Par défaut Fantastic

Rien d'autre à ajouter que, ... Parfait! Et merci
gorjette est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h07.


 
 
 
 
Partenaires

Hébergement Web