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

Access Discussion :

[VBA] information sur une méthode


Sujet :

Access

  1. #1
    Membre actif Avatar de stolx_10
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2006
    Messages
    374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 374
    Points : 270
    Points
    270
    Par défaut [VBA] information sur une méthode
    Bonjour ,

    Je travaille actuellement sur une BD déjà créée et je dois ajouter des données à celle-ci. Cependant, après avoir modifié certains points qui fonctionnent où il faut, j'ai des soucis ( bugs ) lors de l'édition des Etats, et j'ai le mode débugage qui s'arrète sur cette ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    If Forms("FEdit").ChxPer.Value = 1 Then 
     MaDateDeb = Short2Long(Forms("FEdit").TxtDeb)
      MaDateFin = Short2Long(Forms("FEdit").TxtFin)
    Else
      MaDateDeb = Forms("FEdit").LabClotDeb.Caption
      MaDateFin = Forms("FEdit").LabClotFin.Caption
    End If
    Que veut elle dire ?
    je comprends que Forms("FEdit") c'est le formulaire du nom de FEdit mais ChxPer.value je ne sais pas ce que c'est !

    pouvez vous m'éclairer svp ? merci

  2. #2
    Membre régulier Avatar de léti07
    Inscrit en
    Février 2006
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 117
    Points : 100
    Points
    100
    Par défaut
    salut

    je dirai que chxper est une variable de l'état
    si c'est pas ca je vois pas ce que ca peut etre

  3. #3
    Membre actif Avatar de stolx_10
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2006
    Messages
    374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 374
    Points : 270
    Points
    270
    Par défaut
    chxper est une variable de l'état
    hummm .... ok Je vais pas être vieux jeu ou médisant mais je crois pas que ça m'aide énormément

    Que veux tu dire par variable de l'état ?? c'est qq chose de créer par le programmeur ou une variable déjà existante ?

  4. #4
    Membre régulier Avatar de léti07
    Inscrit en
    Février 2006
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 117
    Points : 100
    Points
    100
    Par défaut
    je veux dire une variable qui a été crée dans ton état par le programmeur

  5. #5
    Membre confirmé Avatar de milia
    Femme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Juillet 2006
    Messages
    481
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Juillet 2006
    Messages : 481
    Points : 532
    Points
    532
    Par défaut
    Bonjour, c'est peut-être le nom d'un contrôle, dans ce cas là ça serait:

    Forms(FEdit).Controls(ChxPer)
    essaye avec me, mais il faut que tu essaye de comprendre la logique de ton formulaire, quel champ lorsqu'il est égale à 1 prendre les dates du temps ...

    Je pense que sur ce coup là on peut pas trop d'aider, il faut que adapte une certaine logique propre à chacun.

  6. #6
    Membre actif Avatar de stolx_10
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2006
    Messages
    374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 374
    Points : 270
    Points
    270
    Par défaut
    quand je fais " me. .... " deja il ne me trouve pas FEdit
    alors que dans la liste de projets je le vois bien --> Form_FEdit

  7. #7
    Membre régulier Avatar de léti07
    Inscrit en
    Février 2006
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 117
    Points : 100
    Points
    100
    Par défaut
    ton code est dans le formulaire FEdit ou dans un autre??

  8. #8
    Membre actif Avatar de stolx_10
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2006
    Messages
    374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 374
    Points : 270
    Points
    270
    Par défaut
    Là où le bug apparait, il se trouve dans l'événement
    "Private Sub Report_Open(Cancel As Integer)" de l'Etat.

    Cet Etat apparait grâce à un bouton "ajouter" se trouvant sur le formulaire "FEdit". Et ce bug apparaît depuis que j'ai ajouté une colonne dans la BD, et j'ai bien modifié tous les paramètres dans le VBA concernant cette colonne en faisant bien attention aux noms que j'ai donné à des champs textes, à des valeurs calculées ainsi qu'aux champs dans les requêtes SQL.

    J'ai pourtant fait les modifs minutieusement en faisant gaffe aux paramètres etc, me je crois que je me perds au niveau de ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     DoCmd.RunSQL ("INSERT INTO DEFICIT VALUES (" & Cpt & ", '" & Appos(R1.Fields(0)) & "', '" _
                    & Appos(R1.Fields(1)) & "', '" & R1.Fields(2) & "', " & R1.Fields(3) & ", " _
                    & R1.Fields(4) & ", " & R1.Fields(5) & "," & R1.Fields(6) & ", " & (R1.Fields(4) - R1.Fields(5)) & ", '" _
                    & LaReq & "');")
        R1.MoveNext
    Les camps Fields me donnent mal au crâne mais apres avoir bien regardé, je ne vois pas la faille

  9. #9
    Membre régulier Avatar de léti07
    Inscrit en
    Février 2006
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 117
    Points : 100
    Points
    100
    Par défaut
    je pense pas que ca vienne de ton sql
    essaye ca


  10. #10
    Membre actif Avatar de stolx_10
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2006
    Messages
    374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 374
    Points : 270
    Points
    270
    Par défaut
    No c'est pir ^^

    Mais le truc, c'est que cette méthode est utilisé un bon nombre de fois, et il n'y a qu'a ce niveau que ça bug

  11. #11
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Localisation : Sénégal

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 229
    Points : 1 579
    Points
    1 579
    Par défaut
    Que veut elle dire ?
    je comprends que Forms("FEdit") c'est le formulaire du nom de FEdit mais ChxPer.value je ne sais pas ce que c'est !
    ChxPer doit forcément être un champ de ton formulaire. Regarde s'il est bien présent.

    Ensuite moi j'aurais fais tout simplement comme ca
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    If Forms!FEdit!ChxPer.Value = 1 Then
    et au lieu d'utiliser Report_Open pour le code, je le mettrais bien dans l'évenement Au formatage.

  12. #12
    Membre actif Avatar de stolx_10
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2006
    Messages
    374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 374
    Points : 270
    Points
    270
    Par défaut
    Ouais c'est bien un élément de mon formulaire ^^
    J'essaie ce que tu me dis et je te dis quoi !

  13. #13
    Membre actif Avatar de stolx_10
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2006
    Messages
    374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 374
    Points : 270
    Points
    270
    Par défaut
    Ca ne change rien :s mais au moins je sais ce qu'est ChxPer ^^

  14. #14
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    Un Debug.Print s'impose pour ton SQL ...

    Sinon, je ne suis pas trop d'accord avec léti07 ...
    ChxPer n'est pas une variable, c'est le nom d'un contrôle du formulaire.

    Assure toi que le formulaire est ouvert au moment où ce code est exécuté.

  15. #15
    Membre actif Avatar de stolx_10
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2006
    Messages
    374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 374
    Points : 270
    Points
    270
    Par défaut
    voila le bloc !

    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
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    Private Sub Report_Open(Cancel As Integer)
     
    Dim MaDateDeb As String
    Dim MaDateFin As String
    Dim R1 As Object
    Dim LaReq As String
    Dim Cpt As Integer
     
    If Forms!FEdit!ChxPer.Value = 1 Then
      MaDateDeb = Short2Long(Forms("FEdit").TxtDeb)
      MaDateFin = Short2Long(Forms("FEdit").TxtFin)
    Else
      MaDateDeb = Forms("FEdit").LabClotDeb.Caption
      MaDateFin = Forms("FEdit").LabClotFin.Caption
    End If
     
    '*************************************************************************************
    '************************ Création de la vue DEFICIT *********************************
    '*************************************************************************************
     
    'formate table DEFICIT
    DoCmd.SetWarnings False
    DoCmd.RunSQL ("DELETE FROM DEFICIT;")
     
    'SELECTionne les clients non groupés
    Set R1 = CurrentDb.OpenRecordset("" _
        & "SELECT CliAS400, NomClient, IDDep, SUM(EntréeBr) AS [SomEB], " _
        & "SUM(EntréeTr) AS [SomET], SUM(Sortie) AS [SomSor], SUM(A_broyer) AS [SomAbroyer]" _
        & "FROM RETOUR, CLIENT " _
        & "WHERE RETOUR.IDClient = CLIENT.IDClient " _
        & "AND CLIENT.IDGr = 0 " _
        & "AND DateRetour BETWEEN #" & CDat(MaDateDeb) & "# AND #" & CDat(MaDateFin) & "# " _
        & "GROUP BY CliAS400, NomClient, IDDep;")
     
     
    'INSERT ds vue
    If R1.EOF = False Then
      Cpt = 1
      Do While R1.EOF = False
        If R1.Fields(5) = 0 Then
          LaReq = "Ø"
        Else
          LaReq = CStr(CLng(-(R1.Fields(4) - R1.Fields(5)) / R1.Fields(5) * 100)) & "%"
        End If
        DoCmd.RunSQL ("INSERT INTO DEFICIT VALUES (" & Cpt & ", '" & Appos(R1.Fields(0)) & "', '" _
                    & Appos(R1.Fields(1)) & "', '" & R1.Fields(2) & "', " & R1.Fields(3) & ", " _
                    & R1.Fields(4) & ", " & R1.Fields(5) & "," & R1.Fields(6) & ", " & (R1.Fields(4) - R1.Fields(5)) & ", '" _
                    & LaReq & "');")
        R1.MoveNext
        Cpt = Cpt + 1
      Loop
      R1.Close
    End If
     
    'SELECTionne clients groupés
    Set R1 = CurrentDb.OpenRecordset("" _
        & "SELECT NomGr, SUM(EntréeBr) AS SomEB, SUM(EntréeTr) AS SomET, SUM(Sortie) AS SomSor, " _
        & "SUM(A_broyer) AS SomAbroyer" _
        & "FROM RETOUR, CLIENT, GROUPE " _
        & "WHERE RETOUR.IDClient = CLIENT.IDClient " _
        & "AND CLIENT.IDGr = GROUPE.IDGr " _
        & "AND CLIENT.IDGr <> 0 " _
        & "AND DateRetour BETWEEN #" & CDat(MaDateDeb) & "# AND #" & CDat(MaDateFin) & "# " _
        & "GROUP BY GROUPE.IDGr, NomGr;")
     
    'INSERT ds vue
    If R1.EOF = False Then
      Do While R1.EOF = False
        If R1.Fields(3) = 0 Then
          LaReq = "Ø"
        Else
          LaReq = CStr(CLng(-(R1.Fields(2) - R1.Fields(3)) / R1.Fields(3) * 100)) & "%"
        End If
        DoCmd.RunSQL ("INSERT INTO DEFICIT VALUES (" & Cpt & ", '', '" _
                    & Appos(R1.Fields(0)) & "', '', " & R1.Fields(1) & ", " _
                    & R1.Fields(2) & ", " & R1.Fields(3) & "," & R1.Fields(4) & "," _
                    & (R1.Fields(2) - R1.Fields(3)) & ", '" _
                    & LaReq & "');")
        R1.MoveNext
        Cpt = Cpt + 1
      Loop
      R1.Close
    End If
     
     
     
    End Sub
    Table DEFICIT 10 champs au total
    1 Num
    3 Text
    5 Num
    1 Text

  16. #16
    Membre régulier Avatar de léti07
    Inscrit en
    Février 2006
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 117
    Points : 100
    Points
    100
    Par défaut
    Citation Envoyé par cafeine
    Sinon, je ne suis pas trop d'accord avec léti07 ...
    ChxPer n'est pas une variable, c'est le nom d'un contrôle du formulaire.
    désolé maitre
    je merite d'etre pour ne pas avoir utiliser le bon terme

  17. #17
    Membre actif Avatar de stolx_10
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2006
    Messages
    374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 374
    Points : 270
    Points
    270
    Par défaut
    Ca va paraitre un peu stupide, mais je n'arrive pas a utiliser le Debug.Print

    Je suis a moitié débutant, je comprends le code, je sais manip de la BD mais je ne suis pas du tout habitué au VB et VBA qui se ressemblent

  18. #18
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    Hello,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Debug.Print "INSERT INTO DEFICIT VALUES (" & Cpt & ", '" & Appos(R1.Fields(0)) & "', '" _
                    & Appos(R1.Fields(1)) & "', '" & R1.Fields(2) & "', " & R1.Fields(3) & ", " _
                    & R1.Fields(4) & ", " & R1.Fields(5) & "," & R1.Fields(6) & ", " & (R1.Fields(4) - R1.Fields(5)) & ", '" _
                    & LaReq & "');"
    va afficher dans la fenetre exécution le code SQL, tu pourras le Copier/Coller dans une requete vierge pour voir s'il marche.

    Pour le déboguer, tu peux regarder mon tutoriel
    http://cafeine.developpez.com/access...el/debugprint/

  19. #19
    Membre actif Avatar de stolx_10
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2006
    Messages
    374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 374
    Points : 270
    Points
    270
    Par défaut
    Ok merci !!

    Apres je sais comment utiliser la console debug, c'est pas un probleme

    Sinon je pense donner suite demain car ma journée se termine, et bouffer du code tte la journée c'est un peu chiant ^^, je prefere avoir l'esprit tranquil le soir !
    C'est pour cela en géné ral que je m'énerve rapidement sur le forum, pgz en a déjà fait les frais

  20. #20
    Membre actif Avatar de stolx_10
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2006
    Messages
    374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 374
    Points : 270
    Points
    270
    Par défaut
    Ca me retourne :

    "INSERT INTO DEFICIT VALUES (1, '00147', 'SNV (ch gontier)', '53', 209, 209, 31,, 178, '-574%');"

    ^^ je remarque la virgule en trop

Discussions similaires

  1. demande d'information sur une méthode
    Par Le Lion dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 11/05/2007, 14h58
  2. [ActiveX] Retour de BSTR sur une méthode externe
    Par mr.saucisse dans le forum MFC
    Réponses: 28
    Dernier message: 11/01/2006, 15h47
  3. [VBA] pointer sur une feuille bien précise via inputbox
    Par beegees dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 02/01/2006, 19h37
  4. Comment avoir des information sur une BD?…
    Par kikimnet dans le forum Bases de données
    Réponses: 1
    Dernier message: 12/02/2005, 09h20
  5. Réponses: 3
    Dernier message: 16/04/2004, 16h51

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