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 :

Adaptation procédures à nouvelle configuration base


Sujet :

VBA Access

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué Avatar de C15nantes
    Homme Profil pro
    retraité
    Inscrit en
    Février 2011
    Messages
    379
    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 : 379
    Points : 137
    Points
    137
    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

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