

![]() | Start a set with this search |
![]() | Include this search in one of my sets |
![]() | Exclude this search from one of my sets |
![]() | Permalink to these results Paste this link in email or IM: |
| Atom feed for tracking future search results Paste this URL into your reader: |
4 messages in org.openoffice.fr.progRe: [prog] OOo1.1.3: Remplir une list...| From | Sent On | Attachments |
|---|---|---|
| Ludovic CHEVALIER | Dec 21, 2004 5:19 am | |
| LE LOUARNE Serge | Dec 21, 2004 7:44 am | |
| Agnès Simonet | Dec 21, 2004 8:24 am | |
| Ludovic CHEVALIER | Dec 22, 2004 3:49 am |

![]() | Permalink for this message Paste this link in email or IM: |
![]() | Permalink for this thread Paste this link in email or IM: |
| Atom feed for this thread Paste this URL into your reader: |
| Subject: | Re: [prog] OOo1.1.3: Remplir une listbox de boîte de dialogue avec une requête sql | Actions... |
|---|---|---|
| From: | Agnès Simonet (agne...@laposte.net) | |
| Date: | Dec 21, 2004 8:24:12 am | |
| List: | org.openoffice.fr.prog | |
Bonjour Ludovic,
Ludovic CHEVALIER a écrit :
Bonjour,
Je travaille sur une BDD SQLite.
J'ai créé une boîte de dialogue avec une listBox dont je souhaiterai que le
contenu soit
les données d'un de mes champs.
On m'a donné une base sur laquelle réfléchir, mais je ne m'en sort pas tout
seul.
On peut dire que tu t'attaques à du costaud pour débuter ! Mais je te comprends : il est des personnes, et j'en suis, pour qui c'est le besoin qui pousse à apprendre. Mais il faut quand même que tu sois patient. Il est rare que des portions de macros soient directement réutilisables telles quelles et pour les réutiliser, il faut les comprendre. Sur ce point je rejoins Bernard : ça prend du temps et c'est indispensable. Le livre de Bernard et Laurent te rendrait grandement service pour ça, tout y est expliqué progressivement. (pub gratuite, je ne touche rien là-dessus et les auteurs non plus d'ailleurs).
Venons -en à la macro. sMySQLString est une variable de type string que tu aurais pû appeler autrement. C'est dans cette variable qu'est placé un des résultats de la requête sql et on place ensuite son contenu dans la listbox. Bref, c'est le porteur de bidon. Le problème du statement vient sans doute du fait qu'il faut d'abord que ta base soit connectée, ce qui n'est pas inclu dans la macro.
Je mets ci-dessous une macro qui fonctionne (si si !). Je l'ai abondamment détaillée et commentée pour que tu puisses la comprendre. C'est pourquoi elle est très longue. Elle est configurée pour mon contexte personnel : une base de donnée appelée essais_db avec une table appelée Clients contenant un champ Ville. La boite de dialogue appartient à la bibiothèque Standard du document, s'appelle Dialog1 (nom de l'onglet) et contient une listbox qui s'appelle ListBox1 (j'ai conservé les noms par défaut pour que tu t'y retrouves). Tu n'as qu'à modifier les parties 'données perso et normalement ça doit fonctionner. Attention les navigateurs coupent souvent les lignes en rajoutant un signe = en fin de ligne. Avant de la recopier, traque les signes = rajoutés (ex : la ligne oContext = createUnoService("com.sun.star.sdb.DatabaseContext") risque bien de se retrouvée sous la forme oContext = = createUnoService("com.sun.star.sdb.DatabaseContext") )
Agnès S.
-------------------- REM ***** BASIC ***** Option Explicit
'rendre le dialogue accessible de n'importe quelle sous-routine Private oDialog as Object 'éventuellement rendre la bdd accessible de n'importe quelle macro 'Public oConnexion as object
Sub RemplirListBox
'pour la bdd
dim oSource as object dim oContext as object dim oConnexion as object dim NomSource as string dim NomTable as string dim NomChamp as string dim SQL as string dim oStatement as object dim LesResultats as object dim UnResultat as string 'pour la boite de dialogue dim NomDeLaBibli as string dim NomDuModuleDeDialogue as string dim NomDeLaListBox as string dim oBibli as object dim oMonDialogue as object dim oListBox as object
'données perso NomDeLaBibli = "Standard" NomDuModuleDeDialogue = "Dialog1" NomDeLaListBox = "ListBox1"
'Accède au dialogue oBibli = DialogLibraries.GetByName (NomDeLaBibli) oMonDialogue = oBibli.GetByName (NomDuModuleDeDialogue) oDialog = createUnoDialog(oMonDialogue) oDialog.execute()
'accède à la listbox oListBox = oDialog.getControl(NomDeLaListBox) 'et la remplit 'en se connectant à la base de données 'valeurs perso NomSource = "essais_db"
oContext = createUnoService("com.sun.star.sdb.DatabaseContext") oSource=oContext.GetByName(Nomsource) oConnexion = oSource.getConnection("","") 'ni login, ni mdp If IsNull (oConnexion) then Msgbox ("Connexion impossible", 16) Stop End If 'en faisant une requète sql et en récupérant les résultats 'valeurs perso NomTable = "Clients" NomChamp = "Ville"
SQL = "SELECT " & NomChamp & " FROM " & NomTable oStatement = oConnexion.createStatement() LesResultats = oStatement.executeQuery(SQL)
'en plaçant les résultats uns par un dans la listebox If Not IsNull(LesResultats) Then 'pour chaque valeur du champ récupérée While (LesResultats.next) Dim i as integer For i = 1 To 1 'place la valeur dans UnResultat UnResultat = LesResultats.getString(i)
'ajoute la valeur dans la listbox oListBox.addItem( UnResultat, 1 ) Next i Wend End If 'libère les ressources oDialog.execute() End Sub







