Executer requête SQL en VBA

Résolu/Fermé
SatanicGeek Messages postés 17 Date d'inscription mercredi 10 avril 2013 Statut Membre Dernière intervention 7 août 2015 - Modifié par SatanicGeek le 3/03/2015 à 17:05
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 - 4 mars 2015 à 10:35
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 :-)
A voir également:

1 réponse

f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
4 mars 2015 à 10:00
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
SatanicGeek Messages postés 17 Date d'inscription mercredi 10 avril 2013 Statut Membre Dernière intervention 7 août 2015 1
4 mars 2015 à 10:06
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.
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701 > SatanicGeek Messages postés 17 Date d'inscription mercredi 10 avril 2013 Statut Membre Dernière intervention 7 août 2015
4 mars 2015 à 10:25
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
0
SatanicGeek Messages postés 17 Date d'inscription mercredi 10 avril 2013 Statut Membre Dernière intervention 7 août 2015 1
4 mars 2015 à 10:30
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 !
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701 > SatanicGeek Messages postés 17 Date d'inscription mercredi 10 avril 2013 Statut Membre Dernière intervention 7 août 2015
4 mars 2015 à 10:35
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
0