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

Requêtes et SQL. Discussion :

[SQL]Extraction d'Oracle dans Access avec recuperations des donnees par SQL


Sujet :

Requêtes et SQL.

  1. #1
    Nouveau membre du Club
    Inscrit en
    Avril 2006
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 27
    Points : 29
    Points
    29
    Par défaut [SQL]Extraction d'Oracle dans Access avec recuperations des donnees par SQL
    Bonjour.

    Actuellement, j'utilise un module VBA qui fonctionne bien sous Windows 2000 pour extraire les donnees d'Oracle. La procedure est la suivante : je me connecte a Oracle, je recupere les donnees grace a une requete SQL puis je les charge dans Access.

    Le programme est le suivant :

    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
     
    Private Sub Polecenie0_Click() 'clic sur bouton
        RemplirDeuxiemePagefou
    End Sub
     
    Public Function CreationRequeteOraclefou() As String
        Dim Requete As String
        Dim SelPays As String
     
     
         'Extract d'Oracle
            Requete = "select ........"
     
        CreationRequeteOraclefou = Requete
     
    End Function
     
    Public Sub MiseEnPageRequeteOraclefou(Enr As Recordset) 'rajout des donnees dans une table access    
            DoCmd.OpenQuery "Supp Donnees Oracle"
            Set Tb = CurrentDb.OpenRecordset("Donnees Oracle", dbOpenDynaset)
            While Not (Enr.EOF)
                Tb.AddNew
                Tb![Nom entete] = Enr("a")
                Tb![Nr four ligne] = Enr("b")
                Tb![Nom four ligne] = Enr("c")
                Tb![Date fin] = Enr("d")
                Tb![Nr_id four] = Enr("e")
                Tb![Vendor site id] = Enr("f")
                Tb![Nr entete] = Enr("g")
                Tb.Update
                Enr.MoveNext
            Wend
            Tb.Close
    End Sub
     
    Sub RemplirDeuxiemePagefou()
        'Rapatriement des données
        Dim rs As New ADODB.Recordset
        Dim Requete As String
        Dim Retour As Boolean
        Dim SelPays As String
     
     
        SelPays = "xxxxxx"
     
     
        DataSourceO = "xxxx" 'nom de la base Oracle
        UserO = "xxxx" 'nom du user
        PasswordO = "xxxx" ' mot de passe
     
        'Ouverture de la connection
        Retour = OuvrirConnectionOraclefou(DataSourceO, UserO, PasswordO)
     
        If (Retour = True) Then
            'Construction de la requete
            Requete = CreationRequeteOraclefou
     
            'Ouverture du curseur
            rs.Open Requete, DBOra, adOpenStatic
     
     
            'Fermeture du curseur
            rs.Close
     
            'Fermeture de la connection Oracle
            DBOra.Close
        'Else
            'MsgBox "Impossible de se connecter a Oracle"
        End If
    End Sub
     
    Public Function OuvrirConnectionOraclefou(DataSource As String, User As String, Password As String) As Boolean
        Dim StrConn As String
        On Error GoTo ErrConn
     
        Set DBOra = New ADODB.Connection
        DBOra.ConnectionString = "UID=" & User & ";PWD=" & Password & ";DRIVER={Microsoft ODBC dla Oracle};SERVER=" & DataSource & ";"
     
        'Ouverture de la base
        DBOra.Open
     
        OuvrirConnectionOraclefou = True
        Exit Function
     
    ErrConn:
        Dim Message As String
        Message = "Erreur lors de la connection ŕ la source de données " & DataSource & Chr(10) & _
                Err.Description
        MsgBox Message
        OuvrirConnectionOraclefou = False
    End Function
    Ca fonctionne parfaitement sous Windows 2000 et Office 2000 lorsque ADI est installe (ADI est un petit programme qui permet de charger des donnees d'Oracle a partir d'un fichier excel).
    Par contre, sous Windows XP et quelque soit la version Office (2000 ou 2007) ca ne fonctionne plus. Precision : sous windows XP, ADI pour Windows 2000 ne fonctionne pas mais j'extrais des donnees Oracle par Toad (programme d'extraction de donnees d'Oracle par requetes SQL).

    Access me repond qu'il y a un probleme lors de la connection a Oracle par ODBC :

    "...[Microsoft][.....ODBC] on ne peut pas trouver le nom de la source de donnees...." (le reste est en polonais car je travaille sur une version polonaise mais le message est precis.

    Quelqu'un peut il me dire ce qu'il faut modifier dans le module concernant la connection par ODBC pour que ca marche ?

    Merci.
    Cdlt.
    Jeannot2.

  2. #2
    Nouveau membre du Club
    Inscrit en
    Avril 2006
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 27
    Points : 29
    Points
    29
    Par défaut
    Bonjour.

    Pour ceux que ca interesse de faire de l'extraction de donnees Oracle par VBA directement en requetes SQL voila comment j'ai resolu :

    J'ai utilise l'echange "Liaison Access Oracle" dans lequel LedZeppII indiquait la solution pour se connecter.

    J'ai donc remplace dans mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    DBOra.ConnectionString = "UID=" & User & ";PWD=" & Password & ";DRIVER={Microsoft ODBC dla Oracle};SERVER=" & DataSource & ";"
    par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    DBOra.ConnectionString = "PROVIDER=MSDAORA;Data Source=" & DataSource & ";User ID=" & User & ";Password=" & Password & ";"
    Ca fonctionne sous toutes les version de Windows ou d'Office.

    Jeannot2.

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Août 2006
    Messages
    568
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 568
    Points : 167
    Points
    167
    Par défaut
    Bonjour,
    je souhaite faire la même chose que vous et pouvoir accèder au serveur oracle via Access installé sur ma machine.
    j'utilise windows XP, Access 2000, j'ai le .NET Framwork 2 et dans le serveur distant il y'a oracle 10

    j'ai installé le odbc_net mais quand j'essaye ceci:
    Panneau de configuration --> Outils d'administration --> Sources de données (ODBC) --> Source de données systemes --> Ajouter --> "Microsoft ODBC for Oracle" --> terminer, j'obtiens l'erreur suivante:

    le client et les composants réseau oracle (tm) n'ont pas été trouvés. Ces composants sont fournis par Oracle Corporation et font partie de l'installation logicielle client Oracle Version 7.3 (ou ultérieure).
    vous ne pourrez pas utiliser ce pilote tant que ces composants n'auront pas été installés.

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

Discussions similaires

  1. Dans Access 2007, lier des tables de SQL Server en VBA
    Par milou_puce dans le forum VBA Access
    Réponses: 1
    Dernier message: 21/04/2013, 09h08
  2. Réponses: 2
    Dernier message: 28/03/2009, 16h15
  3. Equivalent du 'DECODE' d'Oracle dans Access ?
    Par leMi_ dans le forum Access
    Réponses: 4
    Dernier message: 06/06/2006, 20h53
  4. [VB6]Recherche dans Access avec un recordset (DAO)
    Par xdiethank dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 20/05/2006, 11h28
  5. Réponses: 4
    Dernier message: 28/04/2006, 23h21

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