IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Access Discussion :

membre de méthode ou données introuvable


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    172
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 172
    Par défaut membre de méthode ou données introuvable
    Bonjour à tous,

    J'utilise l'article de Starec pour la mise en forme conditionnelle illimitée des données. Je travaille sur Access 2007, j'ai donc téléchargé OWC 10 pour pouvoir appliquer l'exemple. Dans les références je coche donc Microsoft Office XP components.

    Lors de l'exécution du code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     ' ===== déclaration =====
        Dim wks As OWC10.Spreadsheet
     
        ' ===== affectation =====
        Set wks = Me.SpreadMFC.Object
    Et l'erreur apparait à la dernière ligne l'erreur est la suivante:

    Erreur de compilation:
    Membre de méthode ou données introuvable
    Pourtant si je tape le code à la main, j'ai bien la possibilité de le taper.

    Je suppose que c'est un problème de référence mais je ne trouve pas la référence à cocher. Si vous avez une idée de l'origine du problème je suis toute ouïe!

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Tu n'as pas de référence à cocher, lorsque tu mets le contrôle sur ton formulaire, la référence ce met automatiquement.

    Je n'ai fait les tests que sur Access 2002, pour Access 2007 (que je n'ai pas , il faut utiliser le 11 et non le 10. Prend le même composant que pour Access 2003.

    Mais le nouveau composant sur ton formulaire (enlève l'autre) et remplace OWC10 par OWC11.

    Starec

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    172
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 172
    Par défaut
    Bonjour,

    J'avais essayé cette solution mais j'ai exactement le même message d'erreur et lorsque je tape le code à la main je n'ai plus la possibilité d'accéder à SpreadMFC. D'où peut venir le problème?

  4. #4
    Invité
    Invité(e)
    Par défaut
    Re

    Dans cette partie
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set wks = Me.SpreadMFC.Object
    SpreadMFC et le nom que j'ai donné au contrôle, est-ce le même que tu as donné au tien ?

    Clic droit sur le contrôle en mode création, sélectionne propriété en bas du menu contextuel, et dans la propriété Nom regarde ce que tu as. Soit tu changes ce nom, soit tu changes dans le code, il faut que les deux correspondent.

    Cependant tu as Access 2007, regardes dans l'aide sur la MFC, il me semble (pas sûr) que la limite a été repoussée ?

    Starec

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    172
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 172
    Par défaut
    Bonjour,

    Merci pour la réponse, le problème venait effectivement de là!...

    Par contre maintenant j'ai un autre soucis, j'ai modifié le code pour l'adapter à mon cas, il n'y a pas d'erreur dans le code, il s'exécute bien, la boucle fonctionne et affecte à chaque case le valeur (quand j'arrête la procédure et vérifie manuellement dans mon code).

    Cependant dans mon formulaire il n'y a d'affiché que la première colonne est-ce normal? (Je ne crois pas). Je me suis arrêtée à la procédure remplir feuille, est-ce que l'affichage se fait dans la deuxième partie avec la réalisation (je n'en ait pas l'impression)...

    Pour la MFC, il est possible de l'utiliser sur un formulaire en mode feuille de données, cependant il n'y a que 3 conditions possibles, et vu que j'ai plus de 3 conditions je ne peux pas l'utiliser.

    Merci pour votre aide.

  6. #6
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Sans code, ce n'est pas évident, il faut réfléchir à remplir comme une feuille Excel.

    Un petit copier coller avec des explications seraient nécessaires.
    As-tu programmé la largeur des colonnes ? Attention, dans ce composant ce sont des points et non des twips.

    Si tu veux d'autres exemples pour mieux comprendre, un deuxième article vient de sortir aujourd'hui http://starec.developpez.com/tuto/listesowc/ sur le même sujet, mais avec d'autres exemples (des zones de listes et des listes déroulantes avec MFC illimitée).

    Starec

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    172
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 172
    Par défaut
    Voici mon code modifié:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    ' ===== déclaration =====
        Dim wks As OWC11.Spreadsheet
        Dim rst As DAO.Recordset
        Dim strSql As String
        Dim i As Integer
     
        ' ===== affectation =====
        Set wks = Me.SpreadMFC.Object
        strSql = "SELECT Code_Station, Rivière, Periode, alteration, Classe, [Indice SEQ]FROM qualite WHERE (((Periode)='2001'))"
     
     
        Set rst = CurrentDb.OpenRecordset(strSql)
     
        ' ===== on vide la feuille =====
        wks.Cells.Delete
        wks.Windows(1).FreezePanes = False
     
        ' ===== mettre les entêtes de colonnes =====
        With wks
            .Range("A1").Value = "Code_station"
            .Range("B1").Value = "Rivière"
            .Range("C1").Value = "Periode"
            .Range("D1").Value = "alteration"
            .Range("E1").Value = "Classe"
            .Range("F1").Value = "Indice SEQ"
        End With
     
        ' ===== formatage de l'entête =====
        wks.Range("A1:F1").Interior.Color = RGB(220, 200, 250)
     
        ' ===== on fige les volets pour avoir l'entête fixe =====
        wks.Range("A2").Select
        wks.Windows(1).FreezePanes = True
     
        ' ===== on remplit maintenant la feuille =====
        i = 2
        While Not rst.EOF
            With wks
                .Range("A" & i).Value = rst("Code_station")
                .Range("B" & i).Value = rst("Periode")
                .Range("C" & i).Value = rst("Rivière")
                .Range("D" & i).Value = rst("alteration")
                .Range("E" & i).Value = rst("Classe")
                .Range("F" & i).Value = rst("Indice SEQ")
                .Range("F" & i).NumberFormat = "# ##0.00 $"
            End With
            i = i + 1
            rst.MoveNext
        Wend
     
        ' ===== formatage de la feuille =====
        With wks.Range("A1:F" & wks.Range("A1").End(xlDown).Row)
            .Columns.AutoFit
            .Borders.LineStyle = xlContinuous
        End With
     
        ' ===== libération =====
        rst.Close
        Set rst = Nothing
        Set wks = Nothing
    End Sub
    Ma requete concerne une table qualité et le sous-formulaire doit posséder 6 colonnes, la colonne dont la valeur va servir à la mise en forme est la colonne Indice SEQ. ET je n'ai pas réglé la largeur des colonnes. Je vais lire l'article qui vient de sortir pour voir si je comprend mieux le fonctionnement du code.

    Merci

  8. #8
    Invité
    Invité(e)
    Par défaut
    Re

    La largeur des colonnes est réglée par AutoFit, mets cette ligne en commentaire, et élargi au maximum ton contrôle pour voir.

    Ton code a l'air au premier coup d'oeil cohérent.

    Essayes en mettans une MsgBox entre chaque
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    .Range("B" & i).Value = rst("Periode")
    .Range("C" & i).Value = rst("Rivière")
    Avec la valeur de la ligne précédente pour voir si tes données sont bonnes, par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    .Range("B" & i).Value = rst("Periode")
    msgbox rst("Periode")
    .Range("C" & i).Value = rst("Rivière")
    et ainsi de suite.

    Starec

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    172
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 172
    Par défaut
    J'ai mis Autofit à oui dans les propriétés et j'ai aussi mis les MsgBox et comme je l'avais vérifié auparavant mes données sont bonnes...

    D'où pourrait venir le problème, j'ai bien vérifié, toutes mes données sont du texte excepté Indice SEQ qui est spécifié.

    Je viens d'essayer l'exemple qui pouvait être téléchargé avec l'explication, en remplaçant OWC 10 par OWC 11 et en réinsérant un spreadsheet, j'ai le même problème, je n'ai qu'une colonne qui s'affiche, il s'agit peut être d'un problème de valeur par défaut lors de l'insertion du spreadsheet...

  10. #10
    Invité
    Invité(e)
    Par défaut
    Re

    Justement j'allais te proposer de prendre l'exemple en téléchargement.

    Je regarderais ce soir, car je ne comprends pas ton problème, dans tous les tests que j'ai fait, même dés les premiers, tout passait sans problème , je n'ai à aucun moment eut ce genre de soucis.

    Edit Je viens de tester avant de quitter le TAF sous Access 2003 avec OWC, je n'ai aucun soucis. Je ne vois pas d'où peut provenir ton problème.
    Mets carrément les lignes Autofit en commentaires et non à Oui.

    Starec
    Dernière modification par Invité ; 11/03/2008 à 05h20.

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    172
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 172
    Par défaut
    Le fait de mettre la ligne à autofit ne change rien, j'ai toujours qu'une seule colonne qui s'affiche. la seule chose qui change ets la largeur de la colonne, à la place de visualiser Code_station, on ne peux lire que Code_stati cette ligne effectue donc une action.

Discussions similaires

  1. [XL-2003] Membre de méthode ou données introuvables
    Par hankmarvin dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 19/06/2011, 10h39
  2. Membre de méthode ou données introuvable
    Par planete.gonz dans le forum VBA Access
    Réponses: 3
    Dernier message: 06/01/2009, 15h47
  3. Membre ou méthode de données introuvable
    Par mouaa dans le forum VBA Access
    Réponses: 2
    Dernier message: 26/02/2008, 10h12
  4. [VBA] erreur : Membre de méthode ou donnée introuvable
    Par dalmasma dans le forum VBA Access
    Réponses: 7
    Dernier message: 20/07/2007, 12h46
  5. [VB6] erreur de compilation:Méthode ou membre de données introuvable
    Par fouf_01 dans le forum VB 6 et antérieur
    Réponses: 22
    Dernier message: 07/06/2006, 17h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo