IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

[VB.NET] Mon appli ne fonctionne pas autre part que dans mes documents


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Par défaut [VB.NET] Mon appli ne fonctionne pas autre part que dans mes documents
    Bonjour le forum,

    J'ai un big problem.

    J'ai créé une application VB.NET qui permet de copier / coller une db d'un serveur vers mon disque dur.

    ça fonctionne très bien.

    L'éxécutable de mon programme se trouve dans

    M:\Mes Documents\Visual Studio Projects\WindowsApplication1\WindowsApplication1\bin

    Quand je copie / colle l'éxécutable sur le bureau, il arrive toujours à prendre la base de données distante sur le serveur mais quand je veux utiliser la base de données qui est en local (après copie / collage du serveur vers le disque dur locale) il me donne ce message d'erreur :



    Le problème doit venir d'ici mais comment le résoudre pour que l'application (l'exe) fonctionne sur n'importe quel PC

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     'ouverture de la connection(à partir du répertoire de l'application)sur la même ligne
            cnxstr = "provider = microsoft.jet.oledb.4.0 ; data source = " & Application.StartupPath & "\delibes.mdb;"
            cnn = New OleDbConnection
    C'est quand même le but de Visual Basic, créer et mettre des programmes à la disposition des utilisateurs.

    Merci d'avance pour votre aide.

    bgs

  2. #2
    Membre éprouvé Avatar de Angath
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    140
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2004
    Messages : 140
    Par défaut
    Citation Envoyé par beegees
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     'ouverture de la connection(à partir du répertoire de l'application)sur la même ligne
            cnxstr = "provider = microsoft.jet.oledb.4.0 ; data source = " & Application.StartupPath & "\delibes.mdb;"
            cnn = New OleDbConnection
    bgs
    Avec cette chaine de connexion ton exe ira toujours chercher le fichier *.mdb dans le repertoire où se trouve ton exe (application.startuppath).

    Donc si le fichier est pas la normal que ca plante

    Soit tu met ta bdd au meme endroit que l'exe, soit tu met ton fichier à un endroit bien définit et tu met le chemin dans la chaine de connexion.

  3. #3
    Rédacteur
    Avatar de abelman
    Inscrit en
    Février 2003
    Messages
    1 106
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 1 106
    Par défaut
    Le fichier 'XXXX' est introuvable.
    Cela me semble on ne peut plus clair comme message pour trouver pourquoi cela ne fonctionne pas

  4. #4
    Membre expérimenté
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Par défaut
    Bonjour,

    Merci pour vos réponses.

    J'ai changé le chemin de destination de la base de données :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    File.Copy("\\164.15.112.38\db\delibes.mdb", "%programfiles%\delibes\delibes.mdb", True)
    Le problème est que le programme ne trouve pas l'emplacement et me donne ce message d'erreur :


    Une exception non gérée du type 'System.IO.DirectoryNotFoundException' s'est produite dans mscorlib.dll

    Informations supplémentaires : Impossible de trouver une partie du chemin d'accès "%programfiles%\delibes\delibes.mdb".
    Le plus bizare de tout c'est que quand je fais Windows+R (éxécuter) et que je tape

    %programfiles%\delibes\delibes.mdb
    Il lance la base de données sans problème.

    Est-ce que vous comprenez le problème ?

    Merci d'avance.

    bgs

  5. #5
    Membre Expert Avatar de guitoux1
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 011
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 011
    Par défaut
    Ca n'est pas parceque %program files% fonctionne avec Windows que ça fonctionne avec DotNet.
    Avec DotNet, pour récupérer le dossier Program Files, il faut faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles)
    Donc pour toi, ça donnes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    File.Copy("\\164.15.112.38\db\delibes.mdb", Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles) + "\delibes\delibes.mdb", True)

  6. #6
    Membre expérimenté
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Par défaut
    Bonjour guitoux1,

    Merci beaucoup pour ton aide, sans toi, je n'y serais jamais arrivé !

    Maintenant, la base de données se copie dans c:\programme files (si c: est le disque système bien sûr).

    J'ai dû changer la data source qui était :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     
     
    cnxstr = "provider = microsoft.jet.oledb.4.0 ; data source = " & Application.StartupPath & "\delibes.mdb;"
    par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    cnxstr = "provider = microsoft.jet.oledb.4.0 ; data source = " Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles) + "\delibes\delibes.mdb;"
    Mais à chaque fois il me dit :


    "Fin d'instruction attendue"
    vois-tu où est l'erreur ?

    Merci encore car c'est vraiment du bon boulot.

    bgs

Discussions similaires

  1. Intégrer une image HTML enregistrée autre part que dans un répertoire du projet
    Par bilbonec dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 20/11/2012, 16h11
  2. Réponses: 6
    Dernier message: 21/10/2007, 00h19
  3. la publication de mon appli ne fonctionne pas
    Par tchecko dans le forum Accès aux données
    Réponses: 4
    Dernier message: 07/10/2006, 11h59
  4. [VB.Net/DataReader] Pourquoi mon ExecuteReader ne fonctionne pas ?
    Par emeraudes dans le forum Accès aux données
    Réponses: 8
    Dernier message: 21/08/2006, 13h38
  5. [JFrame] Ouverture fenêtre autre part que dans coin haut gauche
    Par tooney dans le forum Agents de placement/Fenêtres
    Réponses: 5
    Dernier message: 28/05/2005, 20h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo