Bonjour à tous

Je suis sous Ubuntu 7.04 et 7.10 et je tente d'exploiter les données du carnet d'adresse de Gnome Evolution afin de centraliser mes données sur un seul carnet.

Chez moi en natif la source EvolutionLocale est disponible en lecture seule sous OOo. Le problème que je rencontre c'est que je n'arrive pas à trier mes données par colonne en aphabétique.
Une requête SQL avec Order By me renvoie un résultat non ordonné, pourquoi ?
J'arrive à contourner le problème en traitant le résultat le résultat avec la macro trishell j'utilise ce genre de code(fourni ci dessous) mais je vois pas comment je pourai utiliser le résultat dans des formulaires connecter à la bbd

1 - N'y a t'il pas une manière simple d'ordonner mes données
2 - Dans ma macro, après le tri les minuscules et majuscules son classées séparément ABC...abc mais est je voudrai classer selon l'ordre AaBbCc.... est possible? comment ? 3- Dans sa dernière version Evolution dispose d'une api pour permettre de lire ou d'ajouter des données dans sa bbd Contact certaines applis s'en serve comme Ekiga, auriez vous connaissance de solutions qui serai exploitable depuis OOo ?


Code:

ConnecterSource ' sub de connection à la source EvolutionLocal SQL = "SELECT file_as FROM Personnel AS Personnel ORDER BY file_as ASC"
   LaRequete=MaConnexion.createStatement()
   LaRequete.QueryTimeout=50
   LeResultSet=laRequete.executeQuery(SQL)    '

   While LeResultSet.next
       TabResult(n)=  LeResultSet.getColumns.getbyindex(0).string
n= n+1 wend redim preserve TabResult(n) DeconnecterSource
   TriShell(TabResult())

Sub TriShell(Atrier())
Dim k1 As Integer, k2 As Integer, taille As Integer
Dim x1 As Integer, enOrdre As Boolean
Dim echange

taille = UBound(Atrier()) +1 -LBound(Atrier())
k1 = Fix(taille /2)
do while k1 > 0
 k2 = UBound(Atrier()) - k1
 enOrdre = true
 for x1 = LBound(Atrier()) to k2
   if Atrier(x1) > Atrier(x1 +k1) then
     echange = Atrier(x1)
     Atrier(x1) = Atrier(x1 +k1)
     Atrier(x1 +k1) = echange
     enOrdre = false
   end if
 next
 if enOrdre then
   k1 = Fix(k1 /2)
 end if
loop
End Sub

Bye

Jean-luc

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Répondre à