[VB]Afficher contenu table dans datagridview

Discussions et questions sur tout ce qui concerne la programmation tous langages et tous modules confondus.

Modérateur : Vilains modOOs

Règles du forum
:alerte: Balisage obligatoire dans cette section !
Aidez-nous à vous aider au mieux en balisant correctement votre question : reportez-vous sur les règles de cette section avant de poster !
saorpatrol
Fraîchement OOthentifié
Messages : 7
Inscription : 06 oct. 2014 08:31

[VB]Afficher contenu table dans datagridview

Message par saorpatrol »

Bonjour,

J'ai créé une petite application permettant d'enregistrer des informations dans une base de données libre office.

J'arrive à écrire dans ma base de données, à modifier et à supprimer des informations sans problème.

Mon seul soucis et de pouvoir afficher les informations de la base de données dans un dataset (datagridview).

J'avais déja réalisé ce travail avec une base de données sqlserver mais je ne trouve pas sur le net les informations suffisantes sur les bases libreOffice.

J'essaye dans un premier temps de lire une donnée dans un msgbox et je bloque déja sur ce point, ensuite la finalité serait la visualisation des données dans le datagridview !

Voici le code complet :

Code : Tout sélectionner

Imports System.IO
Imports System.Data.OleDb
Imports System.Data.SqlClient
Imports System.Xml

Public Class Form3



    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click

        Dim ChoixEnqueteur As String
        ChoixEnqueteur = ComboBox1.Text
        Try

            Dim oDB As Object, oBase As Object
            Dim oStatement As Object
            Dim strSQL As String, Fichier As String
            Dim oRequete As Object
            Dim oServiceManager As Object, CreateUnoService As Object

            Fichier = "file:///C:/Users/FAB/Desktop/Base/ACTION.odb"

            oServiceManager = CreateObject("com.sun.star.ServiceManager")
            CreateUnoService = oServiceManager.CreateInstance("com.sun.star.sdb.DatabaseContext")

            oDB = CreateUnoService.getByName(Fichier)
            oBase = oDB.getConnection("", "")
            oStatement = oBase.createStatement()

            strSQL = "SELECT ""COMMENTAIRES"" FROM ""ACT"" "
            oRequete = oStatement.executeQuery(strSQL)
            oRequete.next()

            MsgBox(oRequete.Columns.getByName("COMMENTAIRES").getString(0))

            Dim Commande As New SqlCommand(oRequete)
            Dim Adaptateur As New SqlDataAdapter(Commande)
            Dim MonDataSet As New DataSet

            Try
                Adaptateur.Fill(MonDataSet, "ACT")
                DataGridView1.DataSource = MonDataSet.Tables("ACT")

            Catch ex As Exception
                MsgBox(ex.Message)

            End Try

            oRequete.Close()
            oStatement.Close()
            oBase.Close()
            oBase.Dispose()


        Catch ex As Exception
            MsgBox(ex.Message)
        End Try
    End Sub
End Class
Si quelqu'un peut m'aiguiller, je galère depuis plusieurs jours ...
Libre Office 4.1 sous Windows 7
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25175
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [VB]Afficher contenu table dans datagridview

Message par Dude »

Salut,

Commence déjà par utiliser les instructions du Basic à bon escient :

Code : Tout sélectionner

CreateUnoService = oServiceManager.CreateInstance("com.sun.star.sdb.DatabaseContext")
CreateUnoService n'est pas fait pour réceptionner des données.
Voir l'aide F1 à ce sujet.
saorpatrol
Fraîchement OOthentifié
Messages : 7
Inscription : 06 oct. 2014 08:31

Re: [VB]Afficher contenu table dans datagridview

Message par saorpatrol »

Bonjour Dude et merci pour ton intervention,

Effectivement, c'est une instruction que j'ai utilisé lors de l'écriture, la modification et la suppression de données dans ma BDD.

Pourrais tu m'orienter vers l'instruction qui me permettrait de réceptionner des données afin de les stocker dans un dataset ?

J'avoue que je ne suis pas à l'aise avec la programmation en open office !ça fait plusieurs jours que je cherche, en vain, sur les forums des infos (au passage, c'est fou le nombre de discussions dans lesquelles je te vois intervenir) mais mes recherches n'aboutissent pas.

Ma première piste était de modifier ma chaîne de connexion mais je ne trouve pas d'exemple pour travailler sur des bases de données libre ou open office. Par contre il y en a concernant les bases SQL Server, ACCESS, Oracle, MySql, etc ... Dois-je me rapprocher de cette idée ou je fais complétement fausse route ?
Libre Office 4.1 sous Windows 7
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25175
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [VB]Afficher contenu table dans datagridview

Message par Dude »

saorpatrol a écrit :J'avoue que je ne suis pas à l'aise avec la programmation en open office
Il ne s'agit pas d'OpenOffice mais de programmation tout court.
La règle n° 1 est de ne pas se servir des mots-réservés d'un langage.
saorpatrol a écrit :Pourrais tu m'orienter vers l'instruction qui me permettrait de réceptionner des données afin de les stocker dans un dataset ?
Ce n'est pas une instruction mais une variable que tu dois utiliser.
Tu l'appelles Dude, Toto ou Tartempion selon ton choix ou ton humeur.
saorpatrol a écrit :mais je ne trouve pas d'exemple
Lire le suprême de code sur la construction de requêtes SQL

Maintenant, tu utilises un langage Microsoft pour attaquer du libre.
C'est pour moi un oxymore.

Merci d'ajouter [Résolu] au début du titre de ton 1er message sans oublier de cocher la case de l'icône de sujet (le V vert).
saorpatrol
Fraîchement OOthentifié
Messages : 7
Inscription : 06 oct. 2014 08:31

Re: [VB]Afficher contenu table dans datagridview

Message par saorpatrol »

Oxymore ou pas, cette association n'est pas un choix mais plutôt une contrainte.

De plus si je demande conseil sur ce forum, c'est pour progresser et (au passage) finir un projet professionnel important.

Les remarques que tu fais sur mon code ne me font gère progresser, le fait d'avoir utilisé un nom attribué à une instruction en lieu et place d'une variable, n'est certes pas "règlementaire" mais ne contribue pas à la résolution du problème.

J'avais déjà vu le suprême de code sur la construction de requête SQL, sans plus de succès.

Il faut croire que le soucis provient de l'interaction entre vb et open office.

Je ne peux pas croire que personne n'ai jamais réussi à travailler sur une base de données open office en programmant en vb.net sur visual studio !

La programmation n'est pas mon cœur de métier, je suis statisticien, je demande juste une aide ponctuelle sur un problème particulier.

Merci à ceux qui pourrait m'apporter cette aide.

PS : J’ajouterais "résolu" quand j'aurais résolu mon problème, si telle est la fonction de la balise "résolu".
Libre Office 4.1 sous Windows 7
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25175
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [VB]Afficher contenu table dans datagridview

Message par Dude »

saorpatrol a écrit :Il faut croire que le soucis provient de l'interaction entre vb et open office.
Sans doute puisque le script suivant fonctionne :
_no_problemo.png
Bien sûr, j'ai utilisé une variable pour créer une instance avant de charger l'ODB.
saorpatrol a écrit :Les remarques que tu fais sur mon code ne me font gère progresser
Ce sera donc la dernière.

Bon courage quand même
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
scoob79
Fraîchement OOthentifié
Messages : 1
Inscription : 04 sept. 2018 08:14

Re: [VB]Afficher contenu table dans datagridview

Message par scoob79 »

Salut essaye :

Code : Tout sélectionner

strSQL = "SELECT COMMENTAIRES FROM ACT"
@+
Pas d'open office / VS 2017
Avatar de l’utilisateur
micmac
RespOOnsable forum
RespOOnsable forum
Messages : 9252
Inscription : 28 août 2010 08:45

Re: [VB]Afficher contenu table dans datagridview

Message par micmac »

Bonjour,

Ce sujet date du 08 Sep 2015 !

Nous devons de verrouiller ce fil de discussion. Nous vous rappelons les règles de ce forum et notamment la règle n° 12 :
Ne postez pas à la suite d'un fil de discussion datant de plus d'un mois même si celui-ci n'est pas marqué [Résolu]. Vous ne faites qu'exhumer de vieux problèmes sur d'anciennes versions d'OOo qui n'ont plus cours.
Déterrage = verrouillage

Merci de votre collaboration.
Touche Ctrl de Windows = touche cmd⌘ sur Mac
Outils > Options sur Windows = OpenOffice > Préférences sur Mac