Bonjour,
Je tourne en rond stupidement sur une demande élémentaire (selon moi).
Je dispose d'une table comprenant dans une cinquantaine de champs, les totalisations d'opérations comptables mensuelles (12*4 champs par mois plus nom et solde de départ)
Chaque mois comprend 4 champs, à savoir (par exemple pour le mois de février 02, pour mars 03, pour décembre 12)
- la situation financière au 1er du mois (champs calculé sur base de la valeur disponible au dernier jour du mois précédent) : nom = OPS_02_IN
- le total des recettes du mois (champ numérique classique) : nom = RECETTES_02
- le total des dépenses du mois (champ numérique classique) : nom = DEPENSES_02
- la situation financière au dernier jour du mois (champ calculé par situation au 1er du mois + recettes du mois - dépenses du mois) : nom = OPS_02_OUT
Cette table permet d'avoir aisément un suivi de l'activité financière par mois, trimestre, semestre ou année sans avoir à intervenir sur la table comprenant les opérations quotidiennes
Il me faut en fait régulièrement imprimer les situations récapitulatives périodiques (le plus souvent par mois).
Pour ce faire, pour ne pas avoir à créer une requête par période (mois, trimestre, semestre, années), j'ai créé une requête SELECTION dont j'ai récupéré le code SQL pour l'introduire en VBA afin de pouvoir varier aisément le nom des mois nécessaires en modifiant le chiffre du mois.
1er problème : en vba, j'ai un refus systématique car la commande docmd.runsql ne peut s'appliquer qu'à une requête action et pas sélection
2ème problème : si je transforme ma requête sélection en une requête de création de table (insert into), il me rejette mon code car elle comprend des champs calculés (ops_99_IN/OUT)
A titre informatif, voici le code sql généré par l'éditeur de requête et modifié pour devenir le code dans la procédure vba pour le mois de janvier de l'exercice en cours:
Si j'ai besoin du mois de mars, par exemple, je remplace dans la ligne sql2 les valeurs "_01" par "_03" et exécute la requête avec l'erreur de champs calculé (ne peut être copié dans la nouvelle table) = 3959, les colonnes calculées ne sont pas autorisées dans les instructions SELECT INTO
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 Dim newTable As String newTable = "[TableTest]" Dim sql As String, sql1 As String, sql2 As String, sql3 As String, sql4 As String, sql5 As String sql1 = "SELECT tblc_02_Banques_soldes.Solde_31décembre, tblc_02_Banques_soldes.Solde_depart, " sql2 = "tblc_02_Banques_soldes.Recettes_01, tblc_02_Banques_soldes.Depenses_01, [ops_01_out] AS Sortie, [ops_01_in] AS Entree " sql3 = "INTO " & newTable & " " sql4 = "FROM tblc_02_Banques_soldes " sql5 = "WHERE (((tblc_02_Banques_soldes.CompteBanque)<'ZZ'));" sql = sql1 & sql2 & sql3 & sql4 & sql5 CurrentDb.Execute sql
Help please.
Guy
Partager