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

Résolu
otakurom Messages postés 120 Date d'inscription jeudi 2 août 2007 Statut Membre Dernière intervention 11 juin 2010 - 23 déc. 2009 à 20:52
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 - 27 déc. 2009 à 22:54
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

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
23 déc. 2009 à 22:40
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
3
otakurom Messages postés 120 Date d'inscription jeudi 2 août 2007 Statut Membre Dernière intervention 11 juin 2010
27 déc. 2009 à 12:32
Désolé de ne pas avoir répondu plus tôt!
En tout cas ça fonctionne!!! Merci beaucoup!
0
otakurom Messages postés 120 Date d'inscription jeudi 2 août 2007 Statut Membre Dernière intervention 11 juin 2010
27 déc. 2009 à 14:38
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...
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
27 déc. 2009 à 22:54
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
0
Rejoignez-nous