Requêtes Access sous VBA EXCEL .

Fermé
telson - 23 juil. 2021 à 13:55
yg_be Messages postés 23306 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 1 novembre 2024 - 23 juil. 2021 à 16:45
Bonjour,

Ma question concerne les requêtes Access sous vba excel.

Je travaille actuellement sur un outil appelé le SEG connecté à une base de donnée externe . Chaque mois , il est question qu'on fasse la mise à jour de cet outil car de manière mensuelle une nouvelle base de donnée nommée BDSEG est crée comportant ainsi de nouveau enregistrement . Via le logiciel wps qui est un logiciel ayant (les mêmes caractéristiques que sas) , est exportée sous Access de manière mensuelle une nouvelle base de donnée appelé CAGPT-mmmm-aaaa avec mmmm pour le mois en cours et aaaa pour l'année . Donc mm=06 et aaaa=2021 pour ce mois sachant que ce fichier CAGPT comporte chaque mois de nouveaux enregistrements qui proviennent d'un fichier excel nommée base_groupement qui lui aussi chaque mois comporte de nouveaux enregistrements . Le soucis est que exclusivement ce mois , la mise à jour sur l'outil SEG ne fonctionne pas car le code permettant la fusion entre le fichier CAGPT et BDSEG de ce mois n'arrive pas à se fusionner . ça me renvoie l'erreure " le fichier CAGPT est endommagé " j'ai cherché , cherché mais hélas rien et mon niveau en sql access n'est pas tres bon si quelqu'un pourrait m'expliquer pourquoi la fusion entre ces deux bases ne fonctionne plus ça m'aiderais beaucoup .


Call .Execute("SELECT (SELECT IIf(MAX(IdSinistres) IS NULL, 0, MAX(IdSinistres)) FROM " & nomTableSinistres & ") AS IdExercice, * INTO " & nomBase & " FROM [MS Access;DATABASE=" & repBase & Replace(regExFicBase, regEx, s_aaaa & "_" & mm) & "].[" & nomBase & "];") .

Ici le bout de code faisant la fusion entre les deux bases qui ne fonctionnent pas .

Variables :

- nom base = table CAGPT

- nom table sinistre= table sinistre présent dans le BDSEG



Merci,
A voir également:

1 réponse

yg_be Messages postés 23306 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 1 novembre 2024 Ambassadeur 1 550
23 juil. 2021 à 16:45
bonjour,
quel est exactement le message d'erreur (le fichier CAGPT est endommagé)?
à la place de:
Call .Execute("SELECT (SELECT IIf(MAX(IdSinistres) IS NULL, 0, MAX(IdSinistres)) FROM " & nomTableSinistres & ") AS IdExercice, * INTO " & nomBase & " FROM [MS Access;DATABASE=" & repBase & Replace(regExFicBase, regEx, s_aaaa & "_" & mm) & "].[" & nomBase & "];")

je ferais
dim exsql as string
exsql="SELECT (SELECT IIf(MAX(IdSinistres) IS NULL, 0, MAX(IdSinistres)) FROM " & nomTableSinistres & ") AS IdExercice, * INTO " & nomBase & " FROM [MS Access;DATABASE=" & repBase & Replace(regExFicBase, regEx, s_aaaa & "_" & mm) & "].[" & nomBase & "];"
Call .Execute(exsql)

Cela te permettra d'examinet et de tester le contenu de exsql.
1