Bonsoir,
Je cherche comment insérer le résultat d’un Rowset.Filter dans Calc.
Avec une requête SQL je sais faire, mais je n’ai pas encore trouvé la
solution avec un Rowset.
Si jamais vous avec un exemple. Merci !
Bonsoir,
Je cherche comment insérer le résultat d’un Rowset.Filter dans Calc.
Avec une requête SQL je sais faire, mais je n’ai pas encore trouvé la
solution avec un Rowset.
Si jamais vous avec un exemple. Merci !
Bonjour
LibreStefan wrote
Je cherche comment insérer le résultat d’un Rowset.Filter dans Calc.
Avec une requête SQL je sais faire, mais je n’ai pas encore trouvé la
solution avec un Rowset.
Question un peu vague...
Je suppose que c'est par macro et en basic... Si oui, tu peux ouvrir le
classeur, boucler sur le rowset et simplement mettre à jour les lignes
correspondantes.
Une autre solution (?) pourrait être de créer une requête avec tes
paramètres de filtre (au lieu de créer un rowset). En effet les requêtes
peuvent servir de source pour des tables de pilote dans Calc, ou
être importées (doimport)...
Cordialement
Pierre-Yves
merci Pierre-Yves. oui effectivement c'est par macro !
je préfère passer par une requête pré-enregistrées car plus rapide pour le
traitement.
je suis entrain de voir l'exemple du livre de Marcelly.
Suite...
LibreStefan wrote
moi soucis et au niveau de resu je n'arrive pas à trouver comment le
passer dans la feuille et les cellules !
Puisque tu fais une boucle sur le jeu d'enregistrements tu peux faire comme
je disais précédemment : ouvrir le classeur, boucler sur le rowset et
simplement
mettre à jour les lignes correspondantes. Par exemple modifier ton code en
ajoutant :
dim oClasseur as object
dim oFeuille as object
dim i as long
oClasseur = stardesktop.loadcomponentFromUrl("private:factory/scalc",
"_blank", 0, array'))
oFeuille = oClasseur.sheets.getByIndex(0)
i = 0
Do While .next
' resu = resu & .Columns.getByName("NomProduit").String _
' & " : " & .Columns.getByName("PrixUnitaire").String & chr(13)
oFeuille.getCellByPosition(0, i).string =
.Columns.getByName("NomProduit").String
oFeuille.getCellByPosition(1, i).value =
.Columns.getByName("PrixUnitaire").Value
i = i + 1
Loop
Cordialement
Pierre-Yves
Merci pour ton aide 
Suite...
Ma réponse précédente reposait sur ton exemple de code mais tu peux
simplifier comme ceci :
Sub PysSQLDansCalc()
dim oClasseur as object
dim oFeuille as object
dim PropSQL(2) as new com.sun.star.beans.PropertyValue
dim oPlage as object
oClasseur = stardesktop.loadcomponentFromUrl("private:factory/scalc",
"_blank", 0, array())
oFeuille = oClasseur.sheets.getByIndex(0)
oPlage = oFeuille.getCellRangeByName("A1")
PropSQL(0).name="DatabaseName"
PropSQL(0).value="Commandes"
PropSQL(1).name="SourceType"
PropSQL(1).value=com.sun.star.sheet.DataImportMode.SQL
PropSQL(2).name="SourceObject"
PropSQL(2).value="SELECT NomProduit, PrixUnitaire FROM Produits where
PrixUnitaire > 10"
oPlage.doImport(PropSQL())
End Sub
Nota : aucun contrôle n'est fait dans ce code (vérification que la source
de données Commandes existe par exemple).
Cordialement
Pierre-Yves
Merci beaucoup pour ton aide...