michelxld
Messages postés402Date d'inscriptionvendredi 6 août 2004StatutMembreDernière intervention12 octobre 200832 17 oct. 2007 à 09:18
bonjour
Un exemple pour effectuer une requête dans la base de données "Bibliography" (Base démo fournie dans le pack d'installation Open Office). C'est un exemple VBA Excel qui pilote OOo mais tu pourras facilement l'adapter en VB
Sub requeteBase_ODB()
Dim oDB AsObject, oBase AsObjectDim oStatement AsObjectDim rSQL AsStringDim oRequete AsObjectDim oServiceManager AsObject, CreateUnoService AsObjectDim i AsInteger'Création instance Open officeSet oServiceManager = CreateObject("com.sun.star.ServiceManager")
Set CreateUnoService = _
oServiceManager.createInstance("com.sun.star.sdb.DatabaseContext")
'Indique le nom de la baseSet oDB = CreateUnoService.getByName("Bibliography")
'ConnectionSet oBase = oDB.getConnection("", "")
Set oStatement = oBase.createStatement
'Affichage du résultat de la requête dans les cellules ExcelIfNot IsNull(oRequete) ThenWhile oRequete.Next
i = i + 1
Cells(i, 1) = oRequete.getString(1)
Cells(i, 2) = oRequete.getString(2)
Cells(i, 3) = oRequete.getString(3)
WendEndIf
michelxld
Messages postés402Date d'inscriptionvendredi 6 août 2004StatutMembreDernière intervention12 octobre 200832 17 oct. 2007 à 09:19
bon ça m'a fait un truc bizaarre dans le message précédent...
je recommence:
Sub requeteBase_ODB()
Dim oDB As Object, oBase As Object
Dim oStatement As Object
Dim rSQL As String
Dim oRequete As Object
Dim oServiceManager As Object, CreateUnoService As Object
Dim i As Integer
'Création instance Open office
Set oServiceManager = CreateObject("com.sun.star.ServiceManager")
Set CreateUnoService = _
oServiceManager.createInstance("com.sun.star.sdb.DatabaseContext")
'Indique le nom de la base
Set oDB = CreateUnoService.getByName("Bibliography")
'Connection
Set oBase = oDB.getConnection("", "")
Set oStatement = oBase.createStatement
'Création requète
rSQL = "SELECT ""Identifier"",""Publisher"",""ISBN"" FROM ""biblio"" " & _
"WHERE ""Author""='Böhm, Franz'"
Set oRequete = oStatement.ExecuteQuery(rSQL)
'Affichage du résultat de la requête dans les cellules Excel
If Not IsNull(oRequete) Then
While oRequete.Next
i = i + 1
Cells(i, 1) = oRequete.getString(1)
Cells(i, 2) = oRequete.getString(2)
Cells(i, 3) = oRequete.getString(3)
Wend
End If