chemin du DataBaseName dans propriétés

Le
Pascal
bonjour

j'essaie de renseigner mon controle DATA (DataBaseName )dans les propriétés
de cette manière :
"app.path" & "Ctt.mdb"
visiblement pas la bonne méthode
car si je mets le chemin en dur et que j'excécute sur autre pc, le chemin
n'existe pas et me donne une erreur Disque

merci de m'aider

Pascal
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Pascal
Le #15385731
Bon en cherchant......un peu j'ai trouvé ceci
Ctt.mdb suffit apparement
SORRY mais cela servira...peut-être à d'autres!

je promets de réfléchir avant de poster

pascal

"Pascal"
bonjour

j'essaie de renseigner mon controle DATA (DataBaseName )dans les
propriétés
de cette manière :
"app.path" & "Ctt.mdb"
visiblement pas la bonne méthode
car si je mets le chemin en dur et que j'excécute sur autre pc, le chemin
n'existe pas et me donne une erreur Disque

merci de m'aider

Pascal


jean-marc
Le #15385661
"Pascal" news:
bonjour

j'essaie de renseigner mon controle DATA (DataBaseName )dans les
propriétés
de cette manière :
"app.path" & "Ctt.mdb"
visiblement pas la bonne méthode



Non, effectivement pas :-)

La chaine de caractère "app.path" est égale
à "app.path", et ce toujours et partout.

On voit d'ailleurs mal comment une chaine
de caractères pourrait se transformer en
autre chose qu'elle même ...

En revanche, App.path sans les guillemets
sera évalué à l'exécution.

Et donc, pour faire propre on fait comme ceci:

Private Const DB_NAME As String = "Ctt.mdb"
'
Private Sub Command1_Click()

Dim dbLocation As String

dbLocation = App.Path & "" & DB_NAME
End Sub

Avec le nom de la base dans une constante nommée
et pas hard-codée au milieu des fonctions.

Note que rien ne garantit à priori que l'utilisateur
qui lance l'application possède les privilèges requis
pour lire/écrire dans App.path.

Il y a des endroits prévus pour cela. Voir à ce sujet:
http://faq.vb.free.fr/index.php?question3



Cordialement,

--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
FAQ VB: http://faq.vb.free.fr/
mailto: remove '_no_spam_' ;
Pascal
Le #15385641
hello Jean-marc,
ce n'est pas par programmation que je cherchais à faire cela!
je renseignait seulement la propriété du controle Data
en renseignant simplement le nom de la base (CTT.mdb) (et pas son chemin),
il est pris apparement par défaut dans le app.path

La chaine de caractère "app.path" est égale
à "app.path", et ce toujours et partout.



oui cela me parait élémentaire aussi!
je parlais de propriété du DATA CONTROLE
d'ailleurs essaies de mettre ceci dedans tu auras une erreur
app.path & "" & Ctt.mdb, OU app.path & "Ctt.mdb"
je pensais donc naturellement que l'ensemble était pris en tant que chaine

Note que rien ne garantit à priori que l'utilisateur
qui lance l'application possède les privilèges requis
pour lire/écrire dans App.path.



dans mon cas d'application tout est fait dans ce sens

Merci pour ton intervention, bien à toi
Pascal

"jean-marc" 4744271c$0$22313$

"Pascal" news:
bonjour

j'essaie de renseigner mon controle DATA (DataBaseName )dans les
propriétés
de cette manière :
"app.path" & "Ctt.mdb"
visiblement pas la bonne méthode



Non, effectivement pas :-)

La chaine de caractère "app.path" est égale
à "app.path", et ce toujours et partout.

On voit d'ailleurs mal comment une chaine
de caractères pourrait se transformer en
autre chose qu'elle même ...

En revanche, App.path sans les guillemets
sera évalué à l'exécution.

Et donc, pour faire propre on fait comme ceci:

Private Const DB_NAME As String = "Ctt.mdb"
'
Private Sub Command1_Click()

Dim dbLocation As String

dbLocation = App.Path & "" & DB_NAME
End Sub

Avec le nom de la base dans une constante nommée
et pas hard-codée au milieu des fonctions.

Note que rien ne garantit à priori que l'utilisateur
qui lance l'application possède les privilèges requis
pour lire/écrire dans App.path.

Il y a des endroits prévus pour cela. Voir à ce sujet:
http://faq.vb.free.fr/index.php?question3



Cordialement,

--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
FAQ VB: http://faq.vb.free.fr/
mailto: remove '_no_spam_' ;









jean-marc
Le #15385621
"Pascal" news:
hello Jean-marc,
ce n'est pas par programmation que je cherchais à faire cela!
je renseignait seulement la propriété du controle Data
en renseignant simplement le nom de la base (CTT.mdb) (et pas son chemin),
il est pris apparement par défaut dans le app.path



Oups, j'ai lu trop vite :-)

Et effectivement, si tu ne spécifies pas
de chemin, il va prendre le fichier dans
le répertoire courant.

C'est parfois un peu piégeant, car si on lance
ton programme avec un .bat qui va chercher l'exe
dans un autre répertoire, le chemin courant sera
celui du bat, et alors il ne trouvera pas la
base :-(

C'est pourquoi en général, dans l'IDE et pour le temps
du développement, on écrit une valeur en dur dans la
propriété, puis ensuite, dnas la version finale,
on écrit explicitement la propriété depuis le code,
par exemple dans une procédure d'init appellée
depuis le form_load.

La dite procédure d'init habituellement va lire un
fichier de configuration qui contient le chemin de
la base. On le lit puis on affecte la propriété.

Voila :-)

Cordialement,


--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
FAQ VB: http://faq.vb.free.fr/
mailto: remove '_no_spam_' ;
Pascal
Le #15385561
hello,
je vais suivre tes conseils, cela me parait bien plus propre
merci
Pascal

"jean-marc" 47445a53$0$22321$
"Pascal" news:
hello Jean-marc,
ce n'est pas par programmation que je cherchais à faire cela!
je renseignait seulement la propriété du controle Data
en renseignant simplement le nom de la base (CTT.mdb) (et pas son
chemin), il est pris apparement par défaut dans le app.path



Oups, j'ai lu trop vite :-)

Et effectivement, si tu ne spécifies pas
de chemin, il va prendre le fichier dans
le répertoire courant.

C'est parfois un peu piégeant, car si on lance
ton programme avec un .bat qui va chercher l'exe
dans un autre répertoire, le chemin courant sera
celui du bat, et alors il ne trouvera pas la
base :-(

C'est pourquoi en général, dans l'IDE et pour le temps
du développement, on écrit une valeur en dur dans la
propriété, puis ensuite, dnas la version finale,
on écrit explicitement la propriété depuis le code,
par exemple dans une procédure d'init appellée
depuis le form_load.

La dite procédure d'init habituellement va lire un
fichier de configuration qui contient le chemin de
la base. On le lit puis on affecte la propriété.

Voila :-)

Cordialement,


--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
FAQ VB: http://faq.vb.free.fr/
mailto: remove '_no_spam_' ;




Publicité
Poster une réponse
Anonyme