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

Macros et VBA Excel Discussion :

Importer des données d'une base de données Oracles dans un fichier Excel via une macro


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Octobre 2012
    Messages : 33
    Points : 29
    Points
    29
    Par défaut Importer des données d'une base de données Oracles dans un fichier Excel via une macro
    Bonjour à tous,

    Vous l'aurez deviné, je suis bloqué et j'ai besoin de vous pour me dépatouiller...

    Alors voilà, je voudrais exporter des données qui sont dans une base de données Oracle pour les importer dans ma feuille Excel en fonction des informations qui se trouvent dans les cellules de ma feuille. Au stade actuel, les 3 premières colonnes sont remplies de ces infos, et grâce au données venant de la base de données je voudrais remplir la 4ème colonne.

    Voilà ce que j'ai fait pour le moment sous VBA :

    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
    Sub Find_testID()
    
    Dim rnCell As Range
    Dim rnArea As Range
    Dim rsResult As Recordset
    Dim strCon As String
    Dim objCon As New Connection
    Dim sSQL As String
    Dim strAliq As String
    Dim strTest As String
    Dim strResult As String
    Dim strTestID As String
    Dim intRow As Integer
    
    
    strCon = "Provider=MSDAORA;Data Source=xxxxx;User ID=xxxxx;Password=xxxxx"
    
    objCon.Open strCon
    
    Set rnArea = Worksheets(1).Range("info")
    
    For Each rnCell In rnArea
        strAliq = Cells(rnCell.Row, 1).Value
        strTest = Cells(rnCell.Row, 2).Value
        strResult = Cells(rnCell.Row, 3).Value
        strTestID = Cells(rnCell.Row, 4).Value
    If intRow <> rnCell.Row Then
         intRow = rnCell.Row
    
    sSQL = "SELECT aliquot.name ALIQUOT, test.name TEST, result.formatted_result RESULT, test.test_id ID"
    sSQL = sSQL + "  FROM AA,"
    sSQL = sSQL + "       BB,"
    sSQL = sSQL + "       aliquot,"
    sSQL = sSQL + "       test,"
    sSQL = sSQL + "       result"
    sSQL = sSQL + " WHERE AA.AA_id = BB.AA_id"
    sSQL = sSQL + "   AND BB.BB_id = aliquot.BB_id"
    sSQL = sSQL + "   AND aliquot.aliquot_id = test.aliquot_id"
    sSQL = sSQL + "   AND test.test_id = result.test_id"
    sSQL = sSQL + ""
    sSQL = sSQL + "   AND aliquot.name = '" & strAliq & "' "
    sSQL = sSQL + "   AND test.name = '" & strTest & "' "
    sSQL = sSQL + "   AND formatted_result = '" & strResult & "' "
    
                Set rsResult = objCon.Execute(sSQL)
                
                
                rsResult.Close
                rsResult.CursorType = adOpenStatic
                rsResult.Open
                rsResult.MoveFirst
          Else: rsResult.MoveFirst
    End If
    
    Next
    
    objCon.Close
    
    End Sub

    La query SQL est ok parce si je l'a fait tournée en entrant une vraie valeur (plutôt que " & strAliq & " etc.) et il n'y a aucun souci, je trouve ce que je cherche à mettre dans la 4ème colonne.
    Mais comme il y a pour le moment 4392 lignes, j'attends un soutien d'Excel pour le faire pour moi.
    Si je poste ici c'est parce que la macro échoue et me renvoie : "Run-time error '3021': Either BOF or EOF is true, or the current record has been deleted. Requested operation requires a current record."

    En débug la flèche jaune m'inque la ligne 51 que j'ai mise en gras ici.

    Quelqu'un peut m'aider à décortiquer ce qui se passe mal svp ?

    Ce que je souhaite, c'est que la macro lise les données reprises dans les 3 colonnes, remplacent ces données dans la query pour finalement mettre dans la 4ème colonne l'ID qui leur correspond et ainsi de suite pour chaque ligne.

    Je vous remercie, j'espère que ce n'est trop obscur comme explication.

  2. #2
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut
    Bonjour,

    Pourquoi fais-tu un close de ton RecordSet?
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

Discussions similaires

  1. Importation des fichiers Excel vers une base de données
    Par JonasYounes dans le forum Développement de jobs
    Réponses: 3
    Dernier message: 08/08/2014, 18h40
  2. importation des fichiers excel vers une base de donnés
    Par salmia22 dans le forum ASP.NET MVC
    Réponses: 1
    Dernier message: 24/08/2013, 16h30
  3. Réponses: 4
    Dernier message: 08/01/2009, 15h01
  4. Réponses: 2
    Dernier message: 21/09/2007, 18h47
  5. [Excel] Génération de fichier excel depuis une base de donnée MySQL
    Par wiama dans le forum Bibliothèques et frameworks
    Réponses: 11
    Dernier message: 26/05/2007, 01h06

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