Executer requête SQL en VBA [Résolu/Fermé]

Signaler
Messages postés
17
Date d'inscription
mercredi 10 avril 2013
Statut
Membre
Dernière intervention
7 août 2015
-
Messages postés
15356
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
30 septembre 2020
-
Bonjour,

J'ai un fichier sous Access avec un formulaire et je souhaite exécuter une requête au démarrage de l'application.

Ma question ou plutôt mes questions sont :
1. Comment me connecter à la base de données ouverte sous Access
2. Comment exécuter la requête
3. Comment récupérer les infos pour les afficher

Je nage depuis 1 semaine et je sais pas quoi faire. Ne me dites pas que je dois chercher sur Google parce que j'ai déjà écumé la moitié du web sans trouvé une solution qui fonctionne. Des réponses oui, mais pas de solutions.

Je suis sous Windows 8.1 x64 avec un Access 2013.

Voici mon code :
' Fonction de connexion à la base de données
Private Function f_dBConnect()

End Function

' Fonction qui exécute les requêtes SQL
Public Function f_ExecutReq()

End Function

' Fonction qui affiche les valeurs dans le formulaire
Public Function f_UpdateDate()

    ' Déclaration des variables
    Dim sReqEntreprise As String
    Dim sEntrepriseList As String
    
    ' Initialisation des variables
    sReqEntreprise = "SELECT DISTINCT artwork_supplier FROM Data WHERE import_date = (SELECT DISTINCT TOP 1 import_date FROM Data ORDER BY import_date DESC) ORDER BY artwork_supplier ASC"

    ' Se connecte à la base de donnée
    Call f_dBConnect
    
    ' Exécute la requête
    sEntrepriseList = f_ExecutReq(sReqEntreprise)

End Function


A savoir qu'il peut y avoir plusieurs valeurs à ma requête;

Valeur 1
Valeur 2
Valeur 3
etc ...


Et que je dois afficher ça sous forme de liste dans un formulaire.

Merci !

PS: La requête fonctionne niquel :-)

1 réponse

Messages postés
15356
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
30 septembre 2020
1 367
Bonjour,

j'ai déjà écumé la moitié du web Diantre, en une semaine !!!

base de données ouverte sous Access Cette base est exterieure au fichier du formulaire d'affichage ??
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 60769 internautes nous ont dit merci ce mois-ci

Messages postés
17
Date d'inscription
mercredi 10 avril 2013
Statut
Membre
Dernière intervention
7 août 2015
1
Oui. J'ai 2 fichiers.
Un avec les formulaires et les tables et un autre qu'il faut lier avec le gestionnaire de tables liées.
Messages postés
15356
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
30 septembre 2020
1 367 >
Messages postés
17
Date d'inscription
mercredi 10 avril 2013
Statut
Membre
Dernière intervention
7 août 2015

Re,
si vous voulez du VBA:
"connexion", voir CurrentDb pour acces a la base.
Pour l'execution de la requete, il y a plusieurs facons, une assz simple
ex:
Dim rs as Recordset
' Initialisation des variables
sReqEntreprise = "SELECT DISTINCT artwork_supplier FROM Data WHERE import_date = (SELECT DISTINCT TOP 1 import_date FROM Data ORDER BY import_date DESC) ORDER BY artwork_supplier ASC"

Set rst = CurrentDb.OpenRecordset(sReqEntreprise , dbOpenDynaset)

ensuite lecture du recordset ou autre, car je ne sais pas comment et dans quoi vous voulez afficher le resultat
Messages postés
17
Date d'inscription
mercredi 10 avril 2013
Statut
Membre
Dernière intervention
7 août 2015
1
Ah ok. J'ai fais qqch dans le genre. Une dernière petite question. Quelle type de variable utiliser pour reçevoir les valeurs ? Range, String ? Après ça, je dois juste retourner les valeurs et c'est bon.

Merci en tout cas !
Messages postés
15356
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
30 septembre 2020
1 367 >
Messages postés
17
Date d'inscription
mercredi 10 avril 2013
Statut
Membre
Dernière intervention
7 août 2015

Re,

Range, String Range, c'est pour Excel !!!!

Les valeurs du recordset sont du type du ou des champs lus dans la ou les tables