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

OpenOffice & LibreOffice Discussion :

Accès à une base ACCESS via VB [OpenOffice][Base de données]


Sujet :

OpenOffice & LibreOffice

  1. #1
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2015
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Accès à une base ACCESS via VB
    Bonjour à toutes et à tous,

    Je cherche de l'aide pour résoudre le problème suivant:

    J'ai un fichier .odb qui pointe à l'ouverture sur une base ACCESS, avec des formulaires et des macros liées à ces formulaires. Tout fonctionne bien.

    J'ai créé un formulaire avec un bouton qui permet de lire un fichier .txt formaté. La lecture du fichier se fait sans problème.

    Je voudrais maintenant intégrer les informations du fichier dans une table à l'aide d'une instruction SQL.

    L'écriture de la requête SQL ne me pose pas de problème, mais je bloque sur l'instruction que je dois utiliser, en amont, pour faire référence à ma base.

    En farfouillant sur le forum j'ai trouvé ce genre de chose:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Fichier = ConvertToURL("C:\Documents and Settings\mimi\OOoBase.odb") 
     
    oDBContext = CreateUnoService("com.sun.star.sdb.DatabaseContext") 
    oDB = oDBContext.getbyName(Fichier) 
     
    oBase = oDB.getConnection("","") 
    oStatement = oBase.createStatement() 
    ...etc.
    Est-ce que je dois utiliser ce type de procédure (ce que je ne suis pas arrivé à faire !), ou bien est-ce qu'il y a plus simple dans la mesure ou mon .odb est ouvert et pointe déjà sur la base ?

    Je vous remercie par avance pour vos réponses.

    Kenzo

  2. #2
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 429
    Points : 58 222
    Points
    58 222
    Billets dans le blog
    11
    Par défaut
    Salut,

    Quelque chose comme cela :
    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
    sub ConnecterBase()
     
        cheminBdd = ConvertFromURL( ThisComponent.getURL ) 
        oDBContext = CreateUnoService("com.sun.star.sdb.DatabaseContext")
        oDB = oDBContext.getByName(cheminBdd)
        oBase = oDB.getConnection("","") 
        oStatement = oBase.createStatement() 
        strSQL = "SELECT ID, Valeur FROM T_TABLE1"
        oRequete = oStatement.executeQuery( strSQL )
        If Not IsNull(oRequete) Then
          While oRequete.next
            MsgBox oRequete.getString(1) & " / " & _
              oRequete.getString(2) 
          Wend
        End If
        oRequete.Close
        oStatement.Close
        oBase.Close
        oBase.Dispose
     
    end sub
    N'oubliez pas le Tag afin de faciliter la recherche, et en votant cela permet de mieux la cibler.

    Je ne réponds pas aux messages privés s'ils sont liés à une question technique

  3. #3
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2015
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par zoom61 Voir le message
    Salut,

    Quelque chose comme cela :
    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
    sub ConnecterBase()
     
        cheminBdd = ConvertFromURL( ThisComponent.getURL ) 
        oDBContext = CreateUnoService("com.sun.star.sdb.DatabaseContext")
        oDB = oDBContext.getByName(cheminBdd)
        oBase = oDB.getConnection("","") 
        oStatement = oBase.createStatement() 
        strSQL = "SELECT ID, Valeur FROM T_TABLE1"
        oRequete = oStatement.executeQuery( strSQL )
        If Not IsNull(oRequete) Then
          While oRequete.next
            MsgBox oRequete.getString(1) & " / " & _
              oRequete.getString(2) 
          Wend
        End If
        oRequete.Close
        oStatement.Close
        oBase.Close
        oBase.Dispose
     
    end sub
    Bonjour,

    Je viens d'implémenter le code que tu m'as fourni: ça marche impeccable!

    Merci beaucoup pour ton aide.

    kenzo

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Interroger une base access via le web
    Par pascale86 dans le forum Access
    Réponses: 1
    Dernier message: 15/03/2007, 15h33
  2. Acceder à une base access via visual C++
    Par faceo75 dans le forum MFC
    Réponses: 4
    Dernier message: 07/02/2007, 16h17
  3. Réponses: 7
    Dernier message: 12/04/2006, 23h19
  4. [MFC] Accès à une base access sur le net
    Par LapinGarou dans le forum MFC
    Réponses: 4
    Dernier message: 21/03/2006, 12h11
  5. [VBA] [ACCESS] Accès à une requete Access via VBA
    Par Yanmeunier dans le forum Access
    Réponses: 3
    Dernier message: 16/03/2006, 11h48

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