Trouver la donnée d'un champ voisin dans access

Résolu
Signaler
Messages postés
120
Date d'inscription
jeudi 2 août 2007
Statut
Membre
Dernière intervention
11 juin 2010
-
Messages postés
17288
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
-
Bonjour,
Je cherche désespérément la solution mais je ne trouve pas.
J'ai une liste dans excel de composés numérotes 1,2,3... dans la colonne A. Dans access j'ai une table avec un champ "composé" et un champ "composant".
Je souhaiterais que lorsque la valeur du champ "composé" est égale à la valeur dans la cellule(1, 1) par exemple, la valeur du composant s'affiche dans la cellule (1, 2). En fait le but est de faire une nomenclature avec un composé parent ayant plusieurs composants enfants qui eux mêmes ont des composants.
J'espère être clair...
Merci d'avance^^

4 réponses

Messages postés
17288
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
tu peux faire:

Alt+F11 => Editeur VBA
Ctrl+R => Explorateur de projet
Bouton Droit > Insertion > Module

Colles y ça ; code a adapter - base access, table, champs
Public Function Composant(ByVal Compose As Long) As Long
Dim oRS As Object
    With CreateObject("ADODB.Connection")
        .Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\mydatabase.mdb;"
            Set oRS = .Execute("SELECT `Composant` FROM `Table1` WHERE `Composé`=" & Compose)
            If Not oRS.EOF Then
                Composant = oRS.Fields(0).Value
            End If
            oRS.Close
        .Close
    End With
End Function


et dans ta feuille, tu pourras mettre :

=Composant(A1)

pour afficher le composant en fonction d'un composé



Renfield - Admin CodeS-SourceS - MVP Visual Basic
Messages postés
120
Date d'inscription
jeudi 2 août 2007
Statut
Membre
Dernière intervention
11 juin 2010

Désolé de ne pas avoir répondu plus tôt!
En tout cas ça fonctionne!!! Merci beaucoup!
Messages postés
120
Date d'inscription
jeudi 2 août 2007
Statut
Membre
Dernière intervention
11 juin 2010

A quoi sert cette ligne:
If Not oRS.EOF Then
Composant = oRS.Fields(0).Value
End If
Si on l'enlève la valeur est égale à 0...
Messages postés
17288
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
s'assure que l'on a bien trouvé un resultat, avant d'exploiter la premiere valeur renvoyée

Renfield - Admin CodeS-SourceS - MVP Visual Basic