Access vers XML: fichier pour impots

Fermé
oxmo62 Messages postés 1 Date d'inscription mercredi 1 décembre 2010 Statut Membre Dernière intervention 2 décembre 2010 - 2 déc. 2010 à 16:05
 PipoWIL - 15 mai 2014 à 15:39
Bonjour,

Le gouvernement exige maintenant la transmission des relevés d'impôts des entreprises de plus de 50 employés par format xml. On nous fournit de la documentation et le contenu du fichier xml qui doit être produit est bien décrit. Le schema des différentes partie du fichier à produit est aussi fournit.

Je post un exemple de fichier compatible plus bas....

J'ai accès au informations nécessaires par un lien ODBC à partir de MS Access. Je ne suis pas programmeur mais j'aimerais produire ledit fichier xml à partir des informations que j'ai. Quitte à manipuler un peu le fichier XML par la suite. Ce sont surtout les informations redondantes (revenant pour chaque employé) que j'aimerais pouvoir produire (ayant 500 employés au sein de notre entreprise).

Existerait-t-il un moyen, à partir d'Acces ou d'Excel ou y a-t-il un logiciel que je pourrait utiliser pour produire ce fichu XML.

Merci énormément!


Oxmo62


<?xml version="1.0" encoding="UTF-8"?>
	<Transmission VersionSchema="2010.1" xmlns="http://www.mrq.gouv.qc.ca/T5">
		<P>
			<Annee>2010</Annee>
			<TypeEnvoi>1</TypeEnvoi>
			<Provenance>C</Provenance>
			<Preparateur>
				<No>NP001151</No>
				<Type>1</Type>
				<Nom1>MINISTERE</Nom1>
				<Nom2>REVENU</Nom2>
				<Adresse>
					<Ligne1>3800, rue de Marly</Ligne1>
					<Ligne2>Sainte-Foy</Ligne2>
					<Ville>Québec</Ville>
					<Province>Québec</Province>
					<CodePostal>G1X4A5</CodePostal>
				</Adresse>
			</Preparateur>
			<Informatique>
				<Nom>Informaticien</Nom>
				<IndRegional>418</IndRegional>
				<Tel>659-6299</Tel>
				<Langue>F</Langue>
			</Informatique>
			<Comptabilite>
				<Nom>Comptable</Nom>
				<IndRegional>418</IndRegional>
				<Tel>659-6299</Tel>
				<Langue>F</Langue>
			</Comptabilite>
			<NoCertification>RQ-10-01-010</NoCertification>
			<NomLogiciel>LOGICIEL</NomLogiciel>
			<VersionLogiciel>2010-01</VersionLogiciel>
			<CourrielResponsable>COURRIEL@SERVEUR.com</CourrielResponsable>
			<CourrielLangue>F</CourrielLangue>
		</P>
		<Groupe01>
			<R>
				<Annee>2010</Annee>
				<NoReleve>526220015</NoReleve>
				<Identification>
					<Employe>
						<NAS>999999998</NAS>
						<No>AWEN17097901</No>
						<NomFamille>REVENU</NomFamille>
						<Prenom>MARLY</Prenom>
					</Employe>
				</Identification>
				<Adresse>
					<Ligne1>13 RUE CUL-DE-SAC</Ligne1>
					<Ville>SHERBROOKE</Ville>
					<Province>QC</Province>
					<CodePostal>G2G6Y4</CodePostal>
				</Adresse>
				<Montants>
					<A_RevenuEmploi>12000,00</A_RevenuEmploi>
					<B_CotisationRRQ>250,00</B_CotisationRRQ>
					<O_AutreRevenu>
						<MontantCaseO>3000,00</MontantCaseO>
						<SourceCaseO>RB</SourceCaseO>
					</O_AutreRevenu>
				</Montants>
			</R>
			<R>
				<Annee>2010</Annee>
				<NoReleve>679200012</NoReleve>
				<Identification>
					<RaisonSociale>
						<AutreNoId>1234567897</AutreNoId>
						<Nom1>REVENU</Nom1>
						<Nom2>MARLY</Nom2>
					</RaisonSociale>
				</Identification>
				<Adresse>
					<Ligne1>3800 rue de Marly</Ligne1>
					<Ville>Ste-Foy</Ville>
					<Province>QC</Province>
					<CodePostal>G1X4A5</CodePostal>
				</Adresse>
				<Montants>
					<H_CotisationRQAP>7000,00</H_CotisationRQAP>
					<I_SalaireAdmisRQAP>0,00</I_SalaireAdmisRQAP>
				</Montants>
			</R>
			<T>
				<Annee>2010</Annee>
				<NbReleves>2</NbReleves>
				<Employeur>
					<NoId>1006149487</NoId>
					<TypeDossier>RS</TypeDossier>
					<NoDossier>0002</NoDossier>
					<Nom1>MEQ - DIRECTION</Nom1>
					<Nom2>AIDE FINANCIERE AUX ETUDIANTS</Nom2>
					<Adresse>
						<Ligne1>1035, RUE DE LA CHEVROTIERE</Ligne1>
						<Ligne2>EDIFICE MARIE-GUYART</Ligne2>
						<Ville>Laval</Ville>
						<Province>QUEBEC</Province>
						<CodePostal>G1R5A5</CodePostal>
					</Adresse>
				</Employeur>
			</T>
		</Groupe01>
	</Transmission>

	L'exemple suivant illustre une transmission de relevés 1 modifiés conforme à la version 2010.1 du schéma.

	<?xml version="1.0" encoding="UTF-8"?>
	<Transmission VersionSchema="2010.1" xmlns="http://www.mrq.gouv.qc.ca/T5">
		<P>
			<Annee>2010</Annee>
			<TypeEnvoi>4</TypeEnvoi>
			<Provenance>C</Provenance>
			<Preparateur>
				<No>NP001151</No>
				<Type>1</Type>
				<Nom1>MINISTERE</Nom1>
				<Nom2>REVENU</Nom2>
				<Adresse>
					<Ligne1>3800, rue de Marly</Ligne1>
					<Ligne2>Sainte-Foy</Ligne2>
					<Ville>Québec</Ville>
					<Province>Québec</Province>
					<CodePostal>G1X4A5</CodePostal>
				</Adresse>
			</Preparateur>
			<Informatique>
				<Nom>Informaticien</Nom>
				<IndRegional>418</IndRegional>
				<Tel>659-6299</Tel>
				<Langue>F</Langue>
			</Informatique>
			<Comptabilite>
				<Nom>Comptable</Nom>
				<IndRegional>418</IndRegional>
				<Tel>659-6299</Tel>
				<Langue>F</Langue>
			</Comptabilite>
			<NoCertification>RQ-10-01-010</NoCertification>
			<NomLogiciel>LOGICIEL</NomLogiciel>
			<VersionLogiciel>2010-01</VersionLogiciel>
			<CourrielResponsable>COURRIEL@SERVEUR.com</CourrielResponsable>
			<CourrielLangue>F</CourrielLangue>
		</P>
		<Groupe01>
			<A>
				<Annee>2010</Annee>
				<NoReleve>658211536</NoReleve>
				<Identification>
					<Employe>
						<NAS>999999998</NAS>
						<No>AWEN17097901</No>
						<NomFamille>REVENU</NomFamille>
						<Prenom>MARLY</Prenom>
					</Employe>
				</Identification>
				<Adresse>
					<Ligne1>13 RUE CUL-DE-SAC</Ligne1>
					<Ville>SHERBROOKE</Ville>
					<Province>QC</Province>
					<CodePostal>G2G6Y4</CodePostal>
				</Adresse>
				<Montants>
					<A_RevenuEmploi>12000,00</A_RevenuEmploi>
					<B_CotisationRRQ>250,00</B_CotisationRRQ>
					<O_AutreRevenu>
						<MontantCaseO>3000,00</MontantCaseO>
						<SourceCaseO>RB</SourceCaseO>
					</O_AutreRevenu>
				</Montants>
				<NoReleveDerniereTrans>526220015</NoReleveDerniereTrans>
			</A>
			<A>
				<Annee>2010</Annee>
				<NoReleve>658211606</NoReleve>
				<Identification>
					<RaisonSociale>
						<AutreNoId>1234567897</AutreNoId>
						<Nom1>REVENU</Nom1>
						<Nom2>MARLY</Nom2>
					</RaisonSociale>
				</Identification>
				<Adresse>
					<Ligne1>3800 rue de Marly</Ligne1>
					<Ville>Ste-Foy</Ville>
					<Province>QC</Province>
					<CodePostal>G1X4A5</CodePostal>
				</Adresse>
				<Montants>
					<H_CotisationRQAP>7000,00</H_CotisationRQAP>
					<I_SalaireAdmisRQAP>0,00</I_SalaireAdmisRQAP>
				</Montants>
				<NoReleveDerniereTrans>679200012</NoReleveDerniereTrans>
			</A>
			<T>
				<Annee>2010</Annee>
				<NbReleves>2</NbReleves>
				<Employeur>
					<NoId>1006149487</NoId>
					<TypeDossier>RS</TypeDossier>
					<NoDossier>0002</NoDossier>
					<Nom1>MEQ - DIRECTION</Nom1>
					<Nom2>AIDE FINANCIERE AUX ETUDIANTS</Nom2>
					<Adresse>
						<Ligne1>1035, RUE DE LA CHEVROTIERE</Ligne1>
						<Ligne2>EDIFICE MARIE-GUYART</Ligne2>
						<Ville>Laval</Ville>
						<Province>QUEBEC</Province>
						<CodePostal>G1R5A5</CodePostal>
					</Adresse>
				</Employeur>
			</T>
		</Groupe01>
	</Transmission>


	Finalement, l'exemple suivant illustre une transmission de relevés 1 annulés conforme à la version 2010.1 du schéma.

	<?xml version="1.0" encoding="UTF-8"?>
	<Transmission VersionSchema="2010.1" xmlns="http://www.mrq.gouv.qc.ca/T5">
		<P>
			<Annee>2010</Annee>
			<TypeEnvoi>6</TypeEnvoi>
			<Provenance>C</Provenance>
			<Preparateur>
				<No>NP001151</No>
				<Type>1</Type>
				<Nom1>MINISTERE</Nom1>
				<Nom2>REVENU</Nom2>
				<Adresse>
					<Ligne1>3800, rue de Marly</Ligne1>
					<Ligne2>Sainte-Foy</Ligne2>
					<Ville>Québec</Ville>
					<Province>Québec</Province>
					<CodePostal>G1X4A5</CodePostal>
				</Adresse>
			</Preparateur>
			<Informatique>
				<Nom>Informaticien</Nom>
				<IndRegional>418</IndRegional>
				<Tel>659-6299</Tel>
				<Langue>F</Langue>
			</Informatique>
			<Comptabilite>
				<Nom>Comptable</Nom>
				<IndRegional>418</IndRegional>
				<Tel>659-6299</Tel>
				<Langue>F</Langue>
			</Comptabilite>
			<NoCertification>RQ-10-01-010</NoCertification>
			<NomLogiciel>LOGICIEL</NomLogiciel>
			<VersionLogiciel>2010-01</VersionLogiciel>
			<CourrielResponsable>COURRIEL@SERVEUR.com</CourrielResponsable>
			<CourrielLangue>F</CourrielLangue>
		</P>
		<Groupe01>
			<D>
				<Annee>2010</Annee>
				<NoReleve>658211536</NoReleve>
				<Identification>
					<Employe>
						<NAS>999999998</NAS>
						<NomFamille>REVENU</NomFamille>
						<Prenom>MARLY</Prenom>
					</Employe>
				</Identification>
			</D>
			<D>
				<Annee>2010</Annee>
				<NoReleve>658211606</NoReleve>
				<Identification>
					<RaisonSociale>
						<AutreNoId>1234567897</AutreNoId>
						<Nom1>REVENU</Nom1>
						<Nom2>MARLY</Nom2>
					</RaisonSociale>
				</Identification>
			</D>
			<T>
				<Annee>2010</Annee>
				<NbReleves>2</NbReleves>
				<Employeur>
					<NoId>1006149487</NoId>
					<TypeDossier>RS</TypeDossier>
					<NoDossier>0002</NoDossier>
					<Nom1>MEQ - DIRECTION</Nom1>
					<Nom2>AIDE FINANCIERE AUX ETUDIANTS</Nom2>
					<Adresse>
						<Ligne1>1035, RUE DE LA CHEVROTIERE</Ligne1>
						<Ligne2>EDIFICE MARIE-GUYART</Ligne2>
						<Ville>Laval</Ville>
						<Province>QUEBEC</Province>
						<CodePostal>G1R5A5</CodePostal>
					</Adresse>
				</Employeur>
			</T>
		</Groupe01>
	</Transmission>
A voir également:

2 réponses

En principe les logiciels de compta proposent ce genre de modules en option, en fonction de l'évolution de la législation ...

Ce n'est pas prévu dans votre package ?
0
Bonjour,
....un peu plus tard....
Oui, les logiciels de comptablilité peuvent souvent faire ce genre de chose, mais tout le monde n'a pas ce genre de logiciel...

Access permet assez facilement d'exporter une table au format XML
Application.ExportXML acExportTable, "TBLProducts", "C:\Temp\test.xml", , , , acUTF8
Par contre, ce fichier XML risque fort de ne pas être conforme au résultat demandé.

Pour exporter d'un coup deux tables, on peut utiliser
Function Export_XML_2()
'Exporter la table1 et personality
'Met tout dans un fichier XML (et, évidement, pas dans l'ordre que je désire...)

Dim objPersonInfo As AdditionalData

Set objPersonInfo = Application.CreateAdditionalData

'Ajouter la table Table11 aux données exportées.
objPersonInfo.Add "Table11"

Application.ExportXML acExportTable, "table1", "C:\Temp\Table1_11.xml", , , , acUTF8, , , objPersonInfo

End Function
Access permet aussi de manipuler les fichiers XML avec des transformations XSLT. Cela permet alors d'obtenir le fichier final tant convoité mais nécessite de maitriser la syntaxe XSLT. XSLT devient indispensable.

Pour une transformation :
strPathFrom = "C:\Temp\table2.xml"
strPathTo = "C:\Temp\Famille_Transf.xml"
strPathXSLT = "C:\Temp\xml2xml1.xslt"

Application.TransformXML strPathFrom, strPathXSLT, strPathTo, False
0