> Tous les forums > Forum Bureautique
 Access 2003 - Etat sur requete analyse croisée+VBA
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
USAC
  Posté le 19/08/2010 @ 14:41 
Aller en bas de la page 
Nouvel astucien

Bonjour au forum,

Mon problème est le suivant : je souhaite sur une appli Access 2003 générer 1 état sur une requête analyse croisée dont le nombre de champs varie en fonction du résultat retourné par la requête (5 à 31). J’ai trouvé un code qui répond parfaitement à une partie de mon besoin et qui illustre le 1er état (ci-dessous) ; le code est listé après la 2ème copie écran.

Je souhaite ajouté ajouter des niveaux de regroupement afin d’effectuer 1 sous-total pour chaque valeur »Objet » et cumul pour chaque valeur « Type_Erreur ». J’ai donc déplacé le code de la section Détail dans la partie Entête_Groupe1 (Objet) et copié le code du pied d’état dans la partie pied de groupe0. Le résultat est correct pour la partie entête de groupe1 puisque c’est identique à la partie détail mais dans les sous-totaux j’ai les valeurs du pied d’état. Y-a t-il une solution pour ajouter du code qui intègre un sous-total dans 1 pied de groupe ?

Merci de votre aide…

USAC

code/

Option Compare Database

' ***** déclaration des variables ***** '

Const Nombre_colonnes = 31 ' Nombre maximum d'étiquettes sur l'état (par rapport à l'exemple) & _

on peut en afficher plus et donc modifier cette variable

Dim dbBase As DAO.Database

Dim rstEnregistrement As DAO.Recordset

Dim NbColonnes As Integer

Dim Total_colonnes(1 To Nombre_colonnes) As Long

Dim Total_etat As Long

Private Sub Report_Open(Annuler As Integer)

Dim rstRequete As DAO.QueryDef

Set dbBase = CurrentDb

Set rstRequete = dbBase.QueryDefs("R_Tempo_Unite")

Set rstEnregistrement = rstRequete.OpenRecordset()

'Définit le nombre de colonnes de la requête

NbColonnes = rstRequete.Fields.Count

End Sub

Private Sub Initvar()

Dim entX As Integer

Total_etat = 0

For entX = 1 To NbColonnes

Total_colonnes(entX) = 0

Next entX

End Sub

Private Sub EntêteÉtat_Format(Annuler As Integer, FormatCount As Integer)

rstEnregistrement.MoveFirst

Initvar

End Sub

Private Sub ZoneEntêtePage_Format(Cancel As Integer, FormatCount As Integer)

Dim entX As Integer

' Met les entêtes de colonnes

' dans des zones de texte dans la section Entête.

'For entX = 1 To NbColonnes

For entX = 2 To NbColonnes

Me("Entete" + Format(entX)) = rstEnregistrement(entX - 1).Name

Next entX

' Crée l'entête Totaux de la prochaine zone de liste disponible.

Me("Entete" + Format(NbColonnes + 1)) = "Totaux"

' Cache les zones de texte inutilisées dans la section Entête.

For entX = (NbColonnes + 2) To Nombre_colonnes

Me("Entete" + Format(entX)).Visible = False

Next entX

End Sub

Private Sub Detail_Format(Cancel As Integer, FormatCount As Integer)

Dim entX As Integer

If Not rstEnregistrement.EOF Then

If Me.FormatCount = 1 Then

For entX = 1 To NbColonnes

Me("Detail" + Format(entX)) = Nz(rstEnregistrement(entX - 1), 0)

Next entX

For entX = NbColonnes + 2 To Nombre_colonnes

Me("Detail" + Format(entX)).Visible = False

Next entX

rstEnregistrement.MoveNext

End If

End If

Private Sub Détail_Print(Cancel As Integer, PrintCount As Integer)

Dim entX As Integer

Dim Nblignes As Long

'

If Me.PrintCount = 1 Then

Nblignes = 0

For entX = 4 To NbColonnes

Nblignes = Nblignes + Me("Detail" & entX)

Total_colonnes(entX) = Total_colonnes(entX) + Me("Detail" + Format(entX))

Next entX

Me("Detail" + Format(NbColonnes + 1)) = Nblignes

Total_etat = Total_etat + Nblignes

End If

''utiliser Détail_Print, PAS Détail_Format qui est appelé PLUSIEURS fois

If ([NoLigne] Mod 2) = 0 Then

Section(0).BackColor = vbWhite

Else

Section(0).BackColor = 13434879

‘ 'jaune pâle : joli et discret

' End If

End Sub

Private Sub Détail_Retreat()

' rstEnregistrement.MovePrevious

End Sub

Publicité
Page : [1] 
Page 1 sur 1

Vous devez être connecté pour participer à la discussion.
Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !
Recevoir PC Astuces par e-mail


La Lettre quotidienne +226 000 inscrits
Avec l'actu, des logiciels, des applis, des astuces, des bons plans, ...

Les bonnes affaires
Une fois par semaine, un récap des meilleurs offres.

Les fonds d'écran
De jolies photos pour personnaliser votre bureau. Une fois par semaine.

Les nouveaux Bons Plans
Des notifications pour ne pas rater les bons plans publiés sur le site.

Les bons plans du moment PC Astuces

Tous les Bons Plans
Portable 15.6 pouces Acemagic LX15 Pro (Ryzen 7 5700U, 16 Go, 512 Go SSD, Vega 8, Windows 11)
374,99 € 499,99 € -25%
@Amazon
Mini PC NiPoGi E3B (AMD Ryzen 5 7430U, 16 Go DDR4, SSD 512 Go, Windows 11 Pro)
299,72 € 399 € -25%
@Amazon
Multiprise Parafoudre Belkin 4 prises, cordon de 2 mètres
15,99 € 19,99 € -20%
@Amazon
Ecran 32 pouces incurvé KTC H32S17C (FHD, 180 Hz, 1 ms)
149 € 220 € -32%
@Geekbuying
Souris Logitech MX Master 3S (bluetooth, capteur laser 8K, clics silencieux)
60,99 € 115 € -47%
@AliExpress
Les promotions pour l'anniversaire Geekbuying
-1 -47%
@Geekbuying

Sujets relatifs
État sous access 2003
Créer une requête, un état.....avec Access
Requête analyse croisée avec critère
Access 2003 : tri dans un état
PB à l'ouverture d'un état sur analyse croisée
Analyse croisée Access
Access Etat et Requete (Résolu)
[ACCESS+Etat sélection de l'affichage du mode par bouton]
Format de base de données non reconnu (access 2003)
Convertir Bases de données Access 2003 en LibreOffice Base
Plus de sujets relatifs à Access 2003 - Etat sur requete analyse croisée+VBA
 > Tous les forums > Forum Bureautique