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 :

Recuperer des données d'une base ACCESS avec Excel VBA


Sujet :

Requêtes et SQL.

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2012
    Messages
    345
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2012
    Messages : 345
    Par défaut Recuperer des données d'une base ACCESS avec Excel VBA
    Bonjour,

    J'essaie de créer un outil qui permet de remplir une base de données access à partir de Excel sur VBA. J'ai pu gérer cette première étape.

    J'essaie maintenant de faire en sorte que lorsque l'utilisateur rentre un champ dans une cellule Excel et en appuie sur le bouton MATH, le fichier excel propose dans la colonne H les différentes valeurs possibles qu'il aura importé du champ REF HEADER de la table HEADER de la base de données ACCESS (Dico).

    Mon problème se trouve au niveau de l'affichage je pense, je ne sais pas trop comment afficher les valeurs trouvées. Pourrais-je avoir des indications svp ?

    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
     
     
    Public Sub matchREFs()
     
    Dim refsource As String
     
    refsource = "" & Sheets(1).Range("F6").Value
     
    MsgBox (refsource)
     
    'sql = "INSERT INTO REF_HEADERS ( HEADER ) VALUES (" & refsource & ");"
     
     
    Dim SQLstring As String
     
    Dim db As DataBase
    Set db = New DataBase
     
    Dim isOpen As Boolean
    Dim filePath As String
     
    filePath = ActiveWorkbook.Path & "\Dictionary.accdb"
     
    db.Fichier = filePath
    If db.openConnection(DBType.ACCESS_2012) = False Then
        Exit Sub
    End If
     
    Dim sql As String
    Dim rs As Recordset
     
    sql = "SELECT HEADER FROM REF_HEADERS WHERE HEADER Like (" & refsource & ");"
     
     
    Set rs = db.OpenRecordSet(sql)
    If rs Is Nothing Then
        Exit Sub
    End If
    Dim ResSQL As String
    Do While rs.EOF = False
    For i = 0 To rs.Fields.Count - 1
        ResSQL = ResSQL & rs.Fields.Item(i).Name & ";" & rs.Fields.Item(i).Value & Chr(13) & Chr(10)
    Next
    rs.MoveNext
    Loop
     
     
    MsgBox ResSQL
     
    If db.executeSQL(sql) = False Then
        db.closeConnection
        Exit Sub
    End If
     
    db.closeConnection
     
    End Sub
    Merci par avance.

    Cordialement

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 410
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 410
    Par défaut
    Bonjour.

    C'est plus une question Excel que Access puisque ton interface est en Excel.

    Personnellement j'utiliserai les paramètres de validation par liste basée sur un objet ListObject de Excel.
    Tu alimentes le ListObject qui lui-même alimente ta liste.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  3. #3
    Expert confirmé Avatar de nico84
    Homme Profil pro
    Consultant/développeur ERP
    Inscrit en
    Mai 2008
    Messages
    3 127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant/développeur ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 3 127
    Par défaut
    Bonjour,

    Honnêtement il y a tellement de fautes que j'ai du mal à saisir ce que tu veux faire...

    Si HEADER est une string il faut mettre sa valeur entre ' dans le select
    Le select n'a qu'une colonne, la boucle FOR ne sert donc à rien
    Le select retourne le champ de sa condition, il ne sert donc à rien
    Si ressql n'a pas été initialisé, il y a de bonnes chances pour que ressql=ressql & ... plante (mais access l'accepte peut-être ?)

Discussions similaires

  1. [SQL] Réorganisation des données d'une base access à firebird
    Par gorgoroth dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 27/03/2008, 09h58
  2. [ Récuperation des données d'une base access ]
    Par Arkoze dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 27/05/2007, 19h55
  3. Réponses: 2
    Dernier message: 20/11/2006, 21h42
  4. [Access 2002] Exporter des données vers une base Access 2.0
    Par SamLeChiseuji dans le forum Access
    Réponses: 27
    Dernier message: 01/06/2006, 11h41
  5. [Excel] Récupérer des données d'une base Access
    Par FoxDeltaSierra dans le forum Excel
    Réponses: 8
    Dernier message: 03/09/2005, 10h22

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