1. #1
    Membre régulier
    Homme Profil pro
    retraité
    Inscrit en
    février 2011
    Messages
    240
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : février 2011
    Messages : 240
    Points : 92
    Points
    92

    Par défaut Adaptation procédures à nouvelle configuration base

    Bonjour,

    J'ai une base gérant une association.

    J'ai un formulaire qui me permet de récapituler les cotisations des adhérents (voir PJ)

    Ce formulaire est alimenté par une procédure qui m'a été proposée par un contributeur il y a 2 ou 3 ans.
    Cette procédure fonctionne parfaitement bien avec ma structure actuelle de ma base (1 table T Adhérents avec les données personnelles et le suivi des cotisations Du11 Du12 Du13... Du17 correspondant aux cotisations 2011 à 2017).
    Je suis en train de restructurer ma base de manière plus fonctionnelle avec la T Adhérents ne comportant que les données personnelles et une table T Cotisations dues comportant tout ce qui est cotisations (Du11 Du12 Du13...Du17). Les 2 tables sont liées par N°Adhérent (clé primaire).

    J'ai fait plusieurs essais pour modifier ma procédure et l'adapter à la nouvelle configuration. Echec

    Si l'un d'entre vous pouvait adapter ma procédure, cela m'arrangerait.


    Ceci est associé à la zone de texte [Année de départ] du formulaire :

    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
    Private Sub txtNbreDepart_AfterUpdate()
      Dim iNumDepart As Integer
      Dim Ctl As Control
      'Vérifier que le contrôle n'est pas null
      If IsNull(Me.txtNbreDepart) Then Exit Sub
      iNumDepart = Me.txtNbreDepart
      'Amenéger les contrôles
      For Each Ctl In Me.Controls
        If Ctl.Name Like "txtDU#" Then Ctl.ControlSource = "DU" & Format((iNumDepart + Right(Ctl.Name, 1)), "00"): GoTo ctlSuivant
        If Ctl.Name Like "et#" Then Ctl.Caption = (iNumDepart + Right(Ctl.Name, 1))
        If Ctl.Name Like "txtAJour#" Then
           Ctl.ControlSource = "=DCount(""*"",""R Cotis_DuesCR"",""DU" & Format((iNumDepart + Right(Ctl.Name, 1)), "00") & "=0"")"
           GoTo ctlSuivant
        End If
        If Ctl.Name Like "txtRetard#" Then
           Ctl.ControlSource = "=DCount(""*"",""R Cotis_DuesCR"",""DU" & Format((iNumDepart + Right(Ctl.Name, 1)), "00") & "<>0"")"
           GoTo ctlSuivant
        End If
     
        If Ctl.Name Like "txtTlDu#" Then
           Ctl.ControlSource = "=DSum(""DU" & Format((iNumDepart + Right(Ctl.Name, 1)), "00") & """,""R Cotis_DuesCR"")"
           GoTo ctlSuivant
        End If
    ctlSuivant:
      Next Ctl
     'Créer la requête source rCotiDues
      Call Cotis_DuesCR(iNumDepart)
      'L'affecter comme source
      Me.RecordSource = "R Cotis_DuesCR"
      Me.txtNbreDepart = iNumDepart
    End Sub
    avec

    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
    Public Sub Cotis_DuesCR(NumDebut As Integer)
      Dim sSql As String
      Dim q As QueryDef
      sSql = "SELECT N°Adherent,Titre, Nom, Prenom, " _
              & "DateAdhesion, Adresse, IIf(Mid(CP,3,1)='-', Mid(CP , InStr(CP,'-')+1), CP) AS CP1, Ville, Pays, " _
              & "[Du" & Format(NumDebut, "00") & "]+[Du" & Format(NumDebut + 1, "00") & "]" _
              & "+[Du" & Format(NumDebut + 2, "00") & "]+[Du" & Format(NumDebut + 3, "00") & "]" _
              & "+[Du" & Format(NumDebut + 4, "00") & "]" _
              & " AS [Total dû], " _
                   & "Du" & Format(NumDebut, "00") & "," _
                   & "Du" & Format(NumDebut + 1, "00") & "," _
                   & "Du" & Format(NumDebut + 2, "00") & "," _
                   & "Du" & Format(NumDebut + 3, "00") & "," _
                   & "Du" & Format(NumDebut + 4, "00") & "," _
                   & "(select count(*) from [T Adhérents] x where Adherent and x.Nom<a.Nom or (x.Nom=a.Nom and x.Prenom<=a.Prenom)) as numligne" _
                   & " FROM [T Adhérents] a " _
              & " WHERE Adherent ORDER BY Nom, Prenom;"
      Set q = CurrentDb.QueryDefs("R Cotis_DuesCR")
      q.SQL = sSql
     
    End Sub
    Merci de votre aide.

    A+

    C15
    Images attachées Images attachées

  2. #2
    Membre éprouvé

    Homme Profil pro
    Ingénieur retraité
    Inscrit en
    novembre 2007
    Messages
    902
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur retraité

    Informations forums :
    Inscription : novembre 2007
    Messages : 902
    Points : 1 268
    Points
    1 268

    Par défaut

    Bonjour

    En première approche, il me semble que le plus simple (et le plus accessible) serait de créer un Etat pour la récap, dont les Données proviendraient d'une requête basée sur les deux tables.

    Titi95
    Un problème bien posé est à moitié résolu

  3. #3
    Membre régulier
    Homme Profil pro
    retraité
    Inscrit en
    février 2011
    Messages
    240
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : février 2011
    Messages : 240
    Points : 92
    Points
    92

    Par défaut

    Bonjour,

    Merci de cette réponse.
    Le problème c'est que je veux que cela soit dynamique pour visualiser le point des cotis des 5 dernières années.
    Ainsi pour cette année, si je saisis 14 dans le contrôle [Année de départ], je veux que Du14 Du15 Du16 Du17 Du18 s'affichent.

    Merci de ton aide.

    C15

  4. #4
    Membre éprouvé

    Homme Profil pro
    Ingénieur retraité
    Inscrit en
    novembre 2007
    Messages
    902
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur retraité

    Informations forums :
    Inscription : novembre 2007
    Messages : 902
    Points : 1 268
    Points
    1 268

    Par défaut

    Pourquoi tu ne bases pas l'état et sa requête sur les critères choisis ?
    Un problème bien posé est à moitié résolu

  5. #5
    Expert confirmé
    Avatar de tee_grandbois
    Homme Profil pro
    retraité mais encore activé
    Inscrit en
    novembre 2004
    Messages
    2 552
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité mais encore activé

    Informations forums :
    Inscription : novembre 2004
    Messages : 2 552
    Points : 4 433
    Points
    4 433

    Par défaut

    Bonjour,
    Je suis en train de restructurer ma base de manière plus fonctionnelle avec la T Adhérents ne comportant que les données personnelles et une table T Cotisations dues comportant tout ce qui est cotisations (Du11 Du12 Du13...Du17). Les 2 tables sont liées par N°Adhérent (clé primaire).
    le plus simple serait de poster la base avec des données de test ...

Discussions similaires

  1. [Conseil] Nouvelle configuration.
    Par L.nico dans le forum Ordinateurs
    Réponses: 14
    Dernier message: 14/08/2007, 23h18
  2. Création d'une procédure dans une base externe par code
    Par AndréPe dans le forum VBA Access
    Réponses: 1
    Dernier message: 22/07/2007, 10h19
  3. Nouvelle bdd basée sur des tables existantes
    Par alyphe dans le forum Juridique
    Réponses: 6
    Dernier message: 04/07/2007, 11h12
  4. [avis] Nouvelle configuration, quelques questions
    Par Ministar dans le forum Ordinateurs
    Réponses: 5
    Dernier message: 12/06/2007, 20h22
  5. probleme nouvelle configuration
    Par breizh007 dans le forum Ordinateurs
    Réponses: 10
    Dernier message: 28/02/2007, 18h03

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