IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB 6 et antérieur Discussion :

[VB6]acceder à une base OOo


Sujet :

VB 6 et antérieur

  1. #1
    Membre éprouvé
    Avatar de NiamorH
    Inscrit en
    Juin 2002
    Messages
    1 309
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 1 309
    Points : 1 051
    Points
    1 051
    Par défaut [VB6]acceder à une base OOo
    Bonjour,
    savez vous comment se connecter à une base Open office.org 2 Base avec vb6 ou vb.net ?
    merci d'avance

  2. #2
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Points : 20 144
    Points
    20 144
    Par défaut
    bonsoir

    as tu essayé ce type de synthaxe ?


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    Sub requeteBase_ODB()
    'MichelXld le 17.11.2005
    '
    Dim oDB As Object, oBase As Object
    Dim oStatement As Object
    Dim rSQL As String, Fichier As String
    Dim oRequete As Object
    Dim oServiceManager As Object, CreateUnoService As Object
     
    Fichier = "file:///C:/Documents and Settings/michel/maBase.odb"
     
    Set oServiceManager = CreateObject("com.sun.star.ServiceManager")
    Set CreateUnoService = oServiceManager.createInstance("com.sun.star.sdb.DatabaseContext")
     
    Set oDB = CreateUnoService.getByName(Fichier)
    Set oBase = oDB.getConnection("", "")
    Set oStatement = oBase.createStatement
     
    rSQL = "SELECT * FROM maTable"
    Set oRequete = oStatement.ExecuteQuery(rSQL)
    '
    '...etc...
    '
    End Sub

    j'ai aussi vu ta question sur le OOoForum , mais je prefere te répondre ici ...;o)


    bonne soiree
    michel

  3. #3
    Membre éprouvé
    Avatar de NiamorH
    Inscrit en
    Juin 2002
    Messages
    1 309
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 1 309
    Points : 1 051
    Points
    1 051
    Par défaut
    salut, ça à l'air une tres bonne piste merci!
    j'ai essayé sous vb6 et j'ai cette erreur :

    com.sun.star.sdbc.SQLException: No storage property was set.

    sur la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Set oBase = oDB.getConnection("", "")
    une idée ??

    sinon sur le forum OOo c'est un autre problème : à partir de Calc et en travaillant sur une Base OOo2 je n'arrive pas à exécuter de requêtes. Il ne reconnait pas les noms des tables. mais lorsque je fais F4 je vois pourtant ma table (Je n'ai qu'une seule table pour le moment).

  4. #4
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Points : 20 144
    Points
    20 144
    Par défaut
    bonjour


    la synthaxe complete est

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set oBase = oDB.getConnection("nomUtilisateur", "motDepasse")

    en ce qui concerne les noms de Tables depuis Calc , si cela peut te rassurer , j'ai le meme probleme depuis que j'a changé de version . j'ai essayé tous les cas de figure mais le nom de table n'est toujours pas reconnu...;o(


    par conséquence pour le pilotage depuis VB , tu risques aussi d'etre bloqué sur la partie

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    rSQL = "SELECT * FROM maTable" 
    Set oRequete = oStatement.ExecuteQuery(rSQL)

    si je trouve quelque chose je te passe l'info ( j'ai vu que la meme question a été posée sur la mailing liste française hier soir )


    bonne journée
    michel

  5. #5
    Membre éprouvé
    Avatar de NiamorH
    Inscrit en
    Juin 2002
    Messages
    1 309
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 1 309
    Points : 1 051
    Points
    1 051
    Par défaut
    ma base ne contient pas de mot de passe ni d'utilisateur...
    en ce qui concerne les noms de Tables depuis Calc , si cela peut te rassurer , j'ai le meme probleme depuis que j'a changé de version . j'ai essayé tous les cas de figure mais le nom de table n'est toujours pas reconnu...;o(
    C'est bizare, est ce que ça fais pareil à tout le monde ?
    Personne n'utilise de base de données openoffice avec calc alors ?
    Ou alors as-tu des sources qui marchent et que tu pourrais partager ?

  6. #6
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Points : 20 144
    Points
    20 144
    Par défaut
    bonsoir

    apres quelques essais il semblerait que c'est notre méhode de création des bases qui est erronée ou incompléte


    en effet je viens de faire un essai en utilisant la base démo fournie par OOo , nommée "Biblio"

    si je fais cet essai depuis Calc ( OOo 2.0.1) , cela fonctionne parfaitement


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    Sub Main
    dim oDBContext as object 
    dim oDB as object, oBase as object 
    dim oStatement As object 
     
    oDBContext = CreateUnoService("com.sun.star.sdb.DatabaseContext") 
    oDB=oDBContext.getbyName("Bibliography") 
    oBase=oDB.getConnection("","") 
    oStatement = oBase.createStatement() 
     
    rSQL = "SELECT Identifier FROM biblio WHERE Author='Böhm, Franz'"
    oRequete = oStatement.executeQuery( rSQL ) 
     
    If Not IsNull(oRequete) Then
    While oRequete.next
    MsgBox oRequete.getString(1)
    Wend
    End If
     
    oRequete.Close
    oStatement.Close
    End Sub

    ce qui donne en VBA Excel ( exemple que tu pourras facilement adapter en VB6)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    Sub requeteBase_ODB_V02()
    'MichelXld le 08.02.2006
    '
    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
     
    Set oServiceManager = CreateObject("com.sun.star.ServiceManager")
    Set CreateUnoService = oServiceManager.createInstance("com.sun.star.sdb.DatabaseContext")
     
    Set oDB = CreateUnoService.getByName("Bibliography")
    Set oBase = oDB.getConnection("", "")
    Set oStatement = oBase.createStatement
     
    rSQL = "SELECT Identifier FROM biblio WHERE Author='Böhm, Franz'"
    Set oRequete = oStatement.ExecuteQuery(rSQL)
     
    If Not IsNull(oRequete) Then
    While oRequete.Next
    i = i + 1
    Cells(i, 1) = oRequete.getString(1)
    Wend
    End If
     
    oRequete.Close
    oStatement.Close
    End Sub

    ...maintenant reste à trouver comment faire reconnaitre nos propres bases .odb ...;o)



    bonne soiree
    michel

  7. #7
    Membre éprouvé
    Avatar de NiamorH
    Inscrit en
    Juin 2002
    Messages
    1 309
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 1 309
    Points : 1 051
    Points
    1 051
    Par défaut
    il n'existe aucune source de Calc tournant avec une base OOo sur le net ?
    J'ai beau googler ..

Discussions similaires

  1. Acceder à une base access via visual C++
    Par faceo75 dans le forum MFC
    Réponses: 4
    Dernier message: 07/02/2007, 16h17
  2. [VB6]connexion à une base de données distant via ADO
    Par alaminabil1 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 03/02/2006, 12h11
  3. [VB6]empaquetter une base de données
    Par meoliver dans le forum VB 6 et antérieur
    Réponses: 10
    Dernier message: 02/02/2006, 12h36
  4. Comment acceder à une base de donnée F1.db_ ?
    Par diado dans le forum Autres SGBD
    Réponses: 8
    Dernier message: 26/12/2003, 08h09
  5. [VB6]Créer une Base de données
    Par ThierryAIM dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 07/04/2003, 17h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo