Écrire en dur dans un CommonDialog

cs_petchy Messages postés 710 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 19 mai 2015 - 3 mars 2014 à 18:06
cs_petchy Messages postés 710 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 19 mai 2015 - 8 mars 2014 à 10:34
bonjour,
j'utilise un CommonDialog pour sauvegarder ma base.
est il possible d'écrire en dur dans filename pour ne pas changer le nom de la base ?
voila le code
Private Sub Label17_Click()
CommonDialog.filename = "Base1"
CommonDialog.CancelError = True
On Error GoTo erreur

CommonDialog.ShowSave

FileCopy App.Path & "\Base1.mdb", CommonDialog.filename & ".mdb"
MsgBox "La base a été sauvegardée avec succès", vbInformation, "NPT"

erreur:
End Sub

merci
@ plus
petchy

7 réponses

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
Modifié par ucfoutu le 3/03/2014 à 20:03
Bonjour,
Je n'ai pas bien compris ta question.
1) Quelle méthode (showopen, Showsave , ...) utilises-tu pour ce contrôle ?
2) qu'entends-tu exactement par "écrire en dur dans filename" ?
Au bout du compte et plus simplement : quels sont les tenants et aboutissants précis de ce que tu cherches à faire ?
0
cs_petchy Messages postés 710 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 19 mai 2015 4
4 mars 2014 à 06:57
bonjour,

1) j'utilise la méthode : CommonDialog.ShowSave


2) en fait je voudrais que les personnes ne puisse pas changer le nom de la base lors de sa sauvegarde
CommonDialog.filename = "Base1"
merci
@ +
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
4 mars 2014 à 07:04
Je comprends alors de moins en moins ta démarche; qui consisterait à ouvrir une boîte de dialogue permettant un choix alors que tu ne veux pas laisser le choix !
Si tu ne veux pas laisser le choix, n'utilise alors pas de boîte de dialogue et "oblige" par code en dur !
A moins, bien sûr, que tu ne te sois pas expliqué complètement ... et que ce que tu cherches à faire au bout du compte est de permettre à l'utilisateur de choisir uniquement un dossier où faire la copie (et ce n'est alors pas cette boîte de dialogue là qu'il faut ouvrir).
0
cs_petchy Messages postés 710 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 19 mai 2015 4
4 mars 2014 à 07:29
je voudrais laisser le choix a l'utilisateur l'emplacement de la sauvegarde,mais qu'il ne puisse pas changer le nom de la copie.
sinon c'est quelle boite de dialogue qu'il faut ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
4 mars 2014 à 07:45
Tu peux alors utiliser tout bêtement un simple contrôle DirListbox.
Et si (et uniquement si) tu veux en plus permettre de choisir sur un autre lecteur, l'associer à un contrôle DriveListbox.
regarde ce que ferait par exemple ceci :
Private Sub Form_Initialize()
Drive1.Drive = CurDir
End Sub

Private Sub Dir1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 2 Then MsgBox "tu as choisi le dossier " & Dir1.List(Dir1.ListIndex)
End Sub

Private Sub Drive1_Change()
Dir1.Path = Drive1.Drive
End Sub

Et prends-y ce dont tu as besoin uniquement (pas besoin du drivelistbox si tu ne dois pas changer de lecteur, par exemple)
Pour choisir un dossier : clic droit .
Voilà ! On peut faire aussi autrement (avec une fonction de l'Api de Windows), mais il me semble que le plus simple à tes débuts est encore ceci.

PS : il est assez rare (et souvent maladroit) de laisser à un utilisateur le choix de l'emplacement d'un fichier à utiliser. Il est bien plus astucieux de le mettre dans un dossier relatif à celui de l'appli elle-même !




0
neob Messages postés 10 Date d'inscription jeudi 6 mars 2014 Statut Membre Dernière intervention 15 octobre 2015
6 mars 2014 à 17:14
Bonjour,

L'utilisation de la boîte de dialogue "ShowSave" n'est pas vraiment adaptée dans ce cas précis puisque l'utilisateur n'a pas le droit de modifier le nom du fichier. Tu pourrais cependant ne retenir que le chemin (en analysant le propriété 'FileName') et forcer le nom du fichier mais ce n'est pas très élégant.

Le mieux dans ton cas est d'utiliser un "BrowseForFolder" en appelant l'API SHBrowseForFolder. Cela affiche une boîte de dialogue ne permettant que de sélectionner un répertoire.

Vois ci-dessous un lien qui t'aidera :

Display the Browse for Folder Dialog
http://www.freevbcode.com/ShowCode.asp?ID=3064
0
cs_petchy Messages postés 710 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 19 mai 2015 4
8 mars 2014 à 10:34
super,merci à vous
0
Rejoignez-nous