

![]() | 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: |
6 messages in org.openoffice.fr.progRe: [prog] Re: Un essai infructueux ...| From | Sent On | Attachments |
|---|---|---|
| Jean Sympa | Aug 8, 2007 7:05 am | |
| aladdin | Aug 9, 2007 5:41 am | |
| Jean Sympa | Aug 10, 2007 3:08 am | |
| Francois Gatto | Aug 10, 2007 10:19 am | |
| jean...@centraliens.net | Aug 11, 2007 6:06 am | |
| aladdin | Aug 12, 2007 3:40 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] Re: Un essai infructueux de Macro | Actions... |
|---|---|---|
| From: | jean...@centraliens.net (jean...@centraliens.net) | |
| Date: | Aug 11, 2007 6:06:58 am | |
| List: | org.openoffice.fr.prog | |
Quelques petites observations qui peuvent servir. Je les ai mises dans le code de la base de données.
Cordialement Jean-Marc
Le vendredi 10 Août 2007 12:08, jsy...@free.fr a écrit :
Merci aladdin,
J'étudie ton code.
Cordialement
Papy
aladdin wrote:
Bonjour,
Un essai infructueux de Macro
Par exemple si vous une base de donnée qui s'appelle test avec une table DVD et comme champs :
id (int) Genre (varchar) TitreFilm (varchar) PrixAchat (int)
Vous pouvez parcourir votre table en utilisant cet exemple : Sub maConnexionBase Dim monServiceDB As Object, maSource as Object, maConnection as Object, monStatement As Object, monResultSet as Object
Dim dbName as String
Dim maRequeteSQL As String, monTexte As String, Login As String, MotDePasse As String Dim i As Integer
'Nom de la base de donnée 'Affichage > Source de données ou en appuyant sur F4
dbName = "test"
'Paramètres de connexion Login = "" MotDePasse = ""
'Vote requête SQL maRequeteSQL = "select * from DVD"
maRequeteSQL = "Select * FROM ""DVD"" ;"
il me semble que les noms de tables doivent être protégés dans la formulation du SQL OOo. Et les requêtes se terminent par ";" C'est du moins ainsi qu'elles fonctionnent chez moi.
'Connexion à la base monServiceDB = createUnoService("com.sun.star.sdb.DatabaseContext") maSource = monServiceDB.getByName(dbName) maConnection = maSource.GetConnection(Login,MotDePasse)
'SQL monStatement = maConnection.createStatement() monResultSet = monStatement.executeQuery(maRequeteSQL)
'Affichage des résultats 'getString ou getInt en fonction du type de la variable 'avec en paramètre le numéro de la colonne 'ici la 3 ème colonne => TitreFilm 'et la 4 ème => PrixAchat
i = 0 Déjà c'est mieux quand un indice est explicitement initialisé. (0 ou autre selon le traitement envisagé). Mais c'est encore mieux lorsqu'il sert ! A quoi sert-il ici ?
While monResultSet.next
MsgBox "Le DVD " + monResultSet.getString(3) + " est à " + monResultSet.getInt(4) + " €"
Il me semble qu'en lecture avec des getInt() ou autres la numérotation des colonnes débute à 0, alors que avec des updateInt() elle commence à 1. Donc essayez plutôt, (je préfère les "&" aux "+" et "&_" supose un passage à la ligne. "_" est le caractère de continuation) : MsgBox "Le DVD " + monResultSet.getString(2) & " est à " &_ monResultSet.getInt(3) & " €"
ou mieux MsgBox "Le DVD " + monResultSet.getByName("TitreFilm").String & " est à " &_ monResultSet.getByName("PrixAchat").Int & " €"
i = i + 1
Très bien pour i mais même remarque. A quoi sert-il ?
Wend
'Fermeture de la connexion monResultSet.Dispose monResultSet.close() maConnection.close() End Sub
Cordialement,







