Inclure source DATAGRIDVIEW dans le projet.

[Résolu]
Signaler
Messages postés
51
Date d'inscription
mercredi 6 janvier 2021
Statut
Membre
Dernière intervention
9 août 2021
-
Messages postés
51
Date d'inscription
mercredi 6 janvier 2021
Statut
Membre
Dernière intervention
9 août 2021
-
Bonjour le Forum,


Je souhaiterais inclure le fichier source ACCESS ".accdb" du DATAGRIDVIEW dans mon projet afin que lorsque j'installe l'application sur un autre PC il n'y ait pas de le message d'erreur ci dessous.

Ou si cela n'est pas possible dans C:\Users.

Pour info, lors de la création du DATAGRIDVIEW il nous est demandé si l'on souhaite créer le fichier dans le base de l'application, mais même si on dit oui, le fichier est toujours manquant lorsque j'installe mon application sur un autre PC.

Par contre, si je copie la base sous le chemin de l'erreur la base de donnée devient accessible au DATAGRID, mais je ne peux pas faire cela pour tout les postes.

Merci pour votre aide.

4 réponses

Messages postés
7532
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
17 septembre 2021
127
Bonjour,

sers toi du chemin de ton exe avec la propriété Application.StartupPath

https://docs.microsoft.com/fr-fr/dotnet/api/system.windows.forms.application.startuppath?view=net-5.0

cela nécessite que ton fichier access soit dans le même dossier que ton executable comme ceci:

Chemin = Application.StartupPath & "\monfichier.accdb"

Messages postés
51
Date d'inscription
mercredi 6 janvier 2021
Statut
Membre
Dernière intervention
9 août 2021

Bonjour cs_Le Pivert,

Merci, j'ai réussi avec le code ci dessous à copier la base dans le même dossier que l'exécutable, mais le DATAGRID reste vide, apparemment cela ne suffit pas.

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
 Dim Chemin = Application.StartupPath & "\essai.accdb"

        If System.IO.File.Exists(Chemin) Then

        Else

            IO.File.Copy("C:\essai.accdb", Chemin)

        End If
End sub
Messages postés
7532
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
17 septembre 2021
127
Il faut voir dans le code de remplissage de ta DATAGRIDVIEW que le chemin:
Application.StartupPath & "\essai.accdb" soit bien renseigné!
Messages postés
51
Date d'inscription
mercredi 6 janvier 2021
Statut
Membre
Dernière intervention
9 août 2021

Voici le code:
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
 Dim Chemin = Application.StartupPath & "\essai.accdb"

        If System.IO.File.Exists(Chemin) Then
        Else
            IO.File.Copy("C:\essai.accdb", Chemin)
        End If
End sub


  conn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\essai.accdb"
        conn.Open()
 Private Sub DatagridShow1()
        Dim Ds As New DataSet
        Dim Dt As New DataTable
        Ds.Tables.Add(Dt)
        Dim Da As New OleDbDataAdapter

        Da = New OleDbDataAdapter("select * From nom_de_la_base", conn)
        Da.Fill(Dt)
        DataGridView1.DataSource = Dt.DefaultView

        conn.Close()
Messages postés
7532
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
17 septembre 2021
127
a mettre la variable chemin ici:

Dim Chemin As String
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Chemin = Application.StartupPath & "\essai.accdb"


rectifier ceci:

conn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & Chemin


Le code que tu montres est incorrect.

Voir ici de nombreux exemples pour remplir une DataGridview:

https://codes-sources.commentcamarche.net/source/list/visual-basic-vb-net-1/17-base-de-donnees/last

Voilà
Messages postés
51
Date d'inscription
mercredi 6 janvier 2021
Statut
Membre
Dernière intervention
9 août 2021

J'ai enfin trouvé, il fallait remplacer "Chemin = Application.StartupPath" par
  Dim chemin = Application.LocalUserAppDataPath &


Merci à vous pour votre aide, les exemples mon aider à corriger le code.