[VBA-SQL] Rechercher dans la base de données

Bonjour,

Je dois communiquer entre Excel et Access pour traiter une base de données.

J'ai besoin de rechercher un total de stock et donc trouver la somme total d'objet dans ce stock.

Il faudrait donc rechercher dans la page stock combien j'ai de fois la clé du stock associé et additionner pour chaque objet leur nombre de stock

J'ai dans la table dans la 1ère colonne l'ID de l'objet, dans la 2e colonne l'ID du stock et la 3e la quantité de cet objet, il faut juste additionner tout les nombres de colonne 3 qui ont la colonne 2 = à l'ID voulu

Je ne sais pas comment faire de recherche au sein d'accès en VBA,

Merci beaucoup.

Bonsoir,

Tu veux à partir d'excel exécuter une requête sur une base de données Access ?

Ou tu veux à partir d'Access faire une requête sur un onglet EXCEL ?

ou encore mettre en relation des données d'une table Access et le données d'un onglet EXCEL ?

notes que tous les cas sont possibles !

Je veux faire ca directement sur Excel,

j'ai dans un UserForm ma listbox avec tous mes stock différents qui apparaissent en Userform_Initialize, lorsque je clique sur un stock, j'ai un textbox dans lequel doit apparaitre le nombre total d'objet dans ce stock.

J'ai aussi un textbox avec la valorisation totale mais c'est le même principe (nombre de chaque objet * son prix).

Merci.

Bonjour à tous,

En Sql pour excel la requête s'écrit du genre :

* pour un id unique :

Req= "SELECT SUM(`Quantite`) FROM [Table_Access] WHERE `Id_Objet`=" & Id_recherché

* pour l'ensemble des Id_objet :

Req= "SELECT `Id_Objet`, SUM(`Quantite`) FROM [Table_Access] GROUP BY `Id_Objet`" 

(bien sûr en adaptant le nom des champs et le nom de la table)

Ca pourrait donner un code du genre :

Sub Lire_Access()
Dim Chemin As String, NDF As String, Req As String, T As Variant

    Chemin = "c:\blablabla\"
    NDF = Chemin & "Base__Access.accdb"
    Req = "SELECT `Id_Objet`, SUM(`Quantite`) FROM [Table_Access] GROUP BY `Id_Objet`"
    Connect_Access NDF
    T = Select_Db(Req, 1)
    ActiveSheet.Range("A1").Resize(UBound(T, 1), UBound(T, 2)) = T
    Close_Cnx
End Sub

Pierre

Et en PJ une proposition de code (à adapter) avec requêteur complet pour Excel/Access (32 bits)

38module-access.txt (2.04 Ko)
Rechercher des sujets similaires à "vba sql rechercher base donnees"