Export données [Oracle vers Access]

rikou31 -  
 mathieu -
Bonjour,

Voila j'ai une base ORACLE avec plusieurs INSTANCES (1 dixaine).

Je voudrai extraire certaine données des tables sur chaque INSTANCES, afin de créer un fichier (txt ou autre) pour importer dans ACCESS et cela quotidienement. (Tache planifiée)

Quel serai la solution et existe t'il un tuto .

Merci d'avance pour votre aide

5 réponses

  1. Ricci
     
    Salut!

    Pour faire le programme, tu créer une application simple avec VB.NET (enfin c ce ke j'utilise).
    Ensuite, tu créer par exemple un bouton sur ta fenêtre, ou alors tu dois pouvoir le faire en application console.

    Enfin, soit sur le bouton, soit dans l'appli console, tu ajoute le code suivant :

    'On déclare 2 connections (une pour oracle et l'autre pour Access)
    Dim Conn As New System.Data.OleDb.OleDbConnection
    Dim Conn2 As New System.Data.OleDb.OleDbConnection
    'On déclare la requête
    Dim Req As String
    'On déclare les Objet nécessaire à son exécution
    Dim Cmd As New OleDb.OleDbCommand 'Objet commande pour l'exécution
    Dim Da As New OleDb.OleDbDataAdapter 'DataAdapter pour execution
    Dim Ds as New DataSet 'DataSet
    Dim Dt as DataTable 'DataTable
    Dim Test As Boolean

    'On commence ici en affectant la chaine de connection correspondante
    Conn2.ConnectionString = "Provider=""Microsoft.Jet.OLEDB.4.0"";" & _
    "Data Source=""123"";"
    'On a 123 qui est remplacé par le chemin vers la base de données Access
    'Pour Oracle il y a 2 connexion possible
    'La première
    Conn.ConnectionString = "Provider=""OraOLEDB.Oracle"";" & _
    "Data Source=""nom_base_données"";" & _
    "User ID=""nom_user"";" & _
    "Password=""password"";"
    'La seconde
    Conn.ConnectionString = "Provider=MSDAORA.1;User ID=nom_user;Data Source=nom_base;Password=mot_de_passe;Persist Security Info=True"

    'Je ne sais pas laquelle fonctionne, il faut essayer, mais je n'est pas Oracle installer sur mon ordi.

    'ensuite en admétant que les base Access et Oracle (schéma des bases) soient identique.
    'On exécute la requête
    Req = "Select liste des champs From Tables Where Conditions (s'il y en a)" 'Pour la base de donnée Oracle
    Conn.Open()
    cmd.Connection = Conn
    cmd.CommandText = Req
    Da.SelectCommand = cmd
    Nbl = Da.Fill(Ds, "liste")
    Conn.Close()
    Dt = Ds.Tables("Liste")

    'Ensuite on copie dans la base Access
    Cmd.Connection = Conn2
    Cmd.CommandText = Req
    Conn.Open()
    For i=1 To Nbl
    Req = "Insert Into TaTable Values (Liste des tes champs)
    Nbl = Cmd.ExecuteNonQuery
    Next i
    Conn.Close()
    test = True

    Voilà sa devrais marché. Si sa ne marche pas et que tu ne sais pas d'où sa vient contact moi.
    Pour qu'il s'exécute régulièrement utilise le planificateur de tâches de Windows.

    Voilà, voilà.

    ++
    Ricci
    2
    1. mathieu
       
      ça marche pas, quelqu'un peu m'aider ?
      0
  2. ricci
     
    Salut!

    Tu peux essayer de faire un petit program en vb ou c par exemple.
    Ce programme accède d'un côté à la base de données Oracle via ta requête, puis de l'autre à la base access.
    Pour qu'il soit planifier utilise le planificateur de tâche de Windows.
    Si tu ne sais pas comment faire le prog, dis moi le et je t'aiderais.

    ++
    Ricci
    0
    1. Mike
       
      Bonjour,

      J'ai le même besoin que rikkou31. Par contre, je ne sais pas comment faire le programme en VB.
      Pourrais-tu m'aider là dessus ?

      A+
      0
  3. ricci
     
    Salut!

    Pour faire le programme, tu créer une application simple avec VB.NET (enfin c ce ke j'utilise).
    Ensuite, tu créer par exemple un bouton sur ta fenêtre, ou alors tu dois pouvoir le faire en application console.

    Enfin, soit sur le bouton, soit dans l'appli console, tu ajoute le code suivant :

    'On déclare 2 connections (une pour oracle et l'autre pour Access)
    Dim Conn As New System.Data.OleDb.OleDbConnection
    Dim Conn2 As New System.Data.OleDb.OleDbConnection
    'On déclare la requête
    Dim Req As String
    'On déclare les Objet nécessaire à son exécution
    Dim Cmd As New OleDb.OleDbCommand 'Objet commande pour l'exécution
    Dim Da As New OleDb.OleDbDataAdapter 'DataAdapter pour execution
    Dim Ds as New DataSet 'DataSet
    Dim Dt as DataTable 'DataTable
    Dim Test As Boolean

    'On commence ici en affectant la chaine de connection correspondante
    Conn2.ConnectionString = "Provider=""Microsoft.Jet.OLEDB.4.0"";" & _
    "Data Source=""123"";"
    'On a 123 qui est remplacé par le chemin vers la base de données Access
    'Pour Oracle il y a 2 connexion possible
    'La première
    Conn.ConnectionString = "Provider=""OraOLEDB.Oracle"";" & _
    "Data Source=""nom_base_données"";" & _
    "User ID=""nom_user"";" & _
    "Password=""password"";"
    'La seconde
    Conn.ConnectionString = "Provider=MSDAORA.1;User ID=nom_user;Data Source=nom_base;Password=mot_de_passe;Persist Security Info=True"

    'Je ne sais pas laquelle fonctionne, il faut essayer, mais je n'est pas Oracle installer sur mon ordi.

    'ensuite en admétant que les base Access et Oracle (schéma des bases) soient identique.
    'On exécute la requête
    Req = "Select........." 'Pour la base de donnée Oracle
    Conn.Open()
    cmd.Connection = Conn
    cmd.CommandText = Req
    Da.SelectCommand = cmd
    Nbl = Da.Fill(Ds, "liste")
    Conn.Close()
    Dt = Ds.Tables("Liste")

    'Ensuite on copie dans la base Access

    Cmd.Connection = Conn2
    Cmd.CommandText = Req
    Conn.Open()
    Nbl = Cmd.ExecuteNonQuery
    Conn.Close()
    test = True
    If Nbl <> 1 Then
    test = False
    End If
    Return test
    0
  4. mathieu
     
    lorsque je retranscri le code dans vb de access et que je lexecute, il ne recupere pas les donnees malgres ma requete ajouter ; je ne sais meme pas si la connection a lieu pourtant j'ai parametrer les driver ODBC...quelqu'un peut-il m'aider ?
    MERCI
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question