Vous êtes sur la page 1sur 21

Excel et les bases de donnes

Pourquoi travailler avec des bases de donnes


Si l'on se place du point de vue informatique, le travail des comptables nationaux prsente deux caractristiques essentielles :

il porte sur des donnes nombreuses ; les comptes se prsentent sous la forme de tableaux.

Pour travailler sur des donnes nombreuses, les bases de donnes sont l'outil idal, pour travailler sur des tableaux il est difficile d'imaginer mieux qu'un tableur. Un logiciel qui permettrait de combiner ces deux outils serait donc particulirement bien adapt au travail du comptable national. Or, il se trouve qu'Excel, qui est fondamentalement un tableur, permet galement de travailler en relation avec des bases de donnes. Si l'on ajoute cette proprit remarquable la capacit de programmation on obtient un outil qui peut s'avrer extrmement puissant entre les mains d'un comptable national expriment. Excel peut donc travailler avec de nombreuses bases de donnes. Notons, cependant, que l'un des inconvnients des bases de donnes actuelles est l'inexistence d'un format de fichier universel, si bien qu'il est parfois difficile d'utiliser les rsultats produits par un gestionnaire de base de donnes avec un autre gestionnaire de bases de donnes. Ceci peut s'avrer un inconvnient non ngligeable pour les comptables nationaux amens travailler dans diffrents pays. Aussi, l'une des solutions possibles est l'utilisation de fichiers textes de format CSV. Les fichiers CSV sont des fichiers texte contenant des donnes spares par un point-virgule. Il s'agit ici du format europen car le format amricain utilise la virgule comme sparateur (d'o le nom Comma Separator Values). Les fichiers CSV permettent de stocker des donnes qui pourront tre utilises aussi bien par Excel que par n'importe quel gestionnaire de bases de donnes. Utiliser des fichiers CSV dans Excel prsente quatre grands avantages :

il est possible de travailler avec des fichiers de plus de 65536 lignes, limite des feuilles de calcul Excel. il est possible d'appliquer des requtes SQL ces fichiers, ce qui permet d'utiliser Excel comme un gestionnaire de bases de donnes. ces fichiers sont, comparativement d'autres formats, trs compacts. C'est particulirement vrai pour les fichiers organiss en hypercubes qui contiennent essentiellement des codes, c'est--dire des textes. les fichiers permettent d'changer facilement des donnes avec d'autres programmes car le format CSV est universel.

Les fichiers CSV n'ont cependant pas que des avantages. Ainsi, on ne peut pas les modifier aussi facilement avec des requtes SQL que des fichiers utilisant d'autres formats. En effet, les enregistrements tant de longueur variable et crits les uns la suite des autres, il n'est pas possible, par exemple, de remplacer un enregistrement par un autre plus long sans modifier totalement le fichier. Aussi, la mthode normale pour corriger un enregistrement dans un fichier CSV est-elle d'annuler l'ancien enregistrement par un enregistrement de signe contraire avant de passer le nouvel enregistrement. Cette contrainte n'est pas ncessairement un inconvnient en comptabilit nationale

www.comptanat.fr

Francis Malherbe

car elle oblige conserver la trace des corrections, comme c'est le cas en comptabilit d'entreprise. L'autre inconvnient est l'existence de deux formats de fichiers CSV, le format d'origine avec la virgule comme sparateur de donnes et le point pour sparer la partie dcimale des nombres, le format europen qui utilise le point-virgule comme sparateur de donnes et la virgule pour les dcimales. Aussi, pour limiter les risques d'erreur, est-il prfrable de ne travailler qu'avec des entiers.

Crer des fichiers CSV


Nous ne traiterons ici que des fichiers CSV structurs en hypercubes. Le moyen le plus simple de crer un petit fichier CSV est de l'crire dans une feuille Excel et de le sauvegarder au format CSV. La premire ligne doit contenir les noms des variables et les suivantes les enregistrements. Par exemple, le fichier peut tre constitu de la manire suivante :

Il peut tre sauvegard au format CSV avec le menu Enregistrer sous en slectionnant l'option CSV (sparateur point-virgule).

www.comptanat.fr

Francis Malherbe

Mais, le plus souvent, on dispose d'un tableau Excel que l'on souhaite transformer en fichier CSV structur en hypercube. Supposons, par exemple, que nous souhaitions transformer le tableau cidessous en fichier CSV.

On pourra gnrer dans le rpertoire c:\User\Essais un fichier CSV nomm Fichier.csv, structur en hypercube, l'aide de la macro suivante :

Dans cette macro, l'instruction Open "c:/user/Essais/Fichier.csv" For Output As #1 ouvre dans le rpertoire C:\User\Essais un fichier texte de nom Fichier.csv. La clause Output indique que l'on va crire dans ce fichier texte, si un fichier du mme nom existait dj il serait cras. La clause As #1 indique que le fichier sera repr dans toute la macro par son numro qui est ici 1. Nous aurions pu choisir pour numro tout entier compris entre 1 et 511. L'instruction Print #1, "DA;OP;AE;VAL" sert crire dans le fichier dont le numro est 1, c'est-dire dans le fichier Fichier.csv, le texte DA;OP;AE;VAL. Ce texte est plac dans la premire ligne du fichier et il permet de dterminer le nom des champs de donnes. On va ensuite crer des variables correspondant chacun des champs. Ainsi, on affecte la variable op la valeur OPB1 qui est commune tous les enregistrements. On cre ensuite la variable objet f reprsentant la feuille Essai dans laquelle est plac le tableau, puis on lit, grce deux boucles imbriques, les valeurs des variables ae, da, va reprsentant les diffrents champs. Remarquons que nous utilisons ici la variable va et non val car val est un mot rserv qui ne peut tre utilis comme nom de variable.

www.comptanat.fr

Francis Malherbe

On va ensuite constituer le texte qui sera envoy dans le fichier et qui correspond une ligne de donnes. Les diffrentes variables sont concatnes grce l'oprateur &. Des points-virgules correspondant aux sparateurs de donnes sont insrs entre les variables. On a introduit la condition If va <> 0 car il est inutile de saisir des enregistrements avec des valeurs nulles. A la fin, il est obligatoire de fermer le fichier par l'instruction Close #1 pour pouvoir l'utiliser par la suite.

Regrouper des fichiers CSV


Il est souvent intressant, lorsqu'on travaille avec des donnes issues de plusieurs sources, de pouvoir regrouper en un seul plusieurs fichiers CSV. Cela est particulirement facile lorsque les fichiers ont la mme structure. Supposons, par exemple, que nous cherchions regrouper le fichier fichier.csv avec les fichiers fich1.csv et fich2.csv prsents ci-dessous :

Le programme ci-dessous permet de crer un fichier fichtout.csv qui regroupe les trois fichiers.

www.comptanat.fr

Francis Malherbe

Remarquons, dans ce programme, comment est gre la premire ligne qui correspond aux intituls des variables. Elle est, en effet, envoye tout d'abord dans le fichier de sortie, puis, dans chaque fichier de lecture, la premire ligne est lue par l'instruction Line input mais n'est pas crite. Dans le cas contraire, on se retrouverait avec plusieurs lignes d'intituls parmi les donnes. Nous trouvons le fichier fichtout.csv suivant :

www.comptanat.fr

Francis Malherbe

Lire des fichiers CSV avec des tableaux croiss dynamiques


Le moyen le plus simple pour lire un petit fichier CSV est de l'ouvrir avec Excel, dans ce cas il apparatra avec les champs placs dans des colonnes distinctes. Mais les programmes du passage aux comptes utilisent des fichiers CSV de plus de 65536 lignes qui ne peuvent tre lus de cette manire, il faut donc utiliser d'autres mthodes et parmi elles l'utilisation d'un tableau crois dynamique apparat comme l'une des plus simples. Pour le montrer, nous allons donc lire notre fichier Fichier.csv avec un tableau crois dynamique. Plaons-nous donc dans une feuille Excel et dans le menu Donnes choisissons l'option Rapport de tableau crois dynamique. Cochons alors Source de donnes externe comme ci-dessous :

Cliquons sur Suivant puis sur Lire les donnes. Apparat alors le cadre suivant qui peut prsenter une liste plus ou moins longue de noms.

Chaque nom de la liste correspond une source de donnes caractrise par le rpertoire dans lequel se trouvent les donnes et leur type, par exemple Access, Dbase, dans notre cas il s'agira de base de donnes de type fichier texte CSV. La premire fois, il faut dfinir un nom correspondant la source que nous voulons utiliser. Puisque nous ne travaillons ici qu'avec des fichiers de type CSV, il est judicieux que le nom choisi fasse rfrence au rpertoire sur lequel se trouvent les donnes.

www.comptanat.fr

Francis Malherbe

Par exemple, puisque le fichier Fichier.csv se trouve dans le rpertoire C:\User\Essais nous choisirons le nom UserEssais pour nous connecter. Slectionnons donc Nouvelle source de donnes et cliquons sur OK. Le cadre suivant apparat :

Entrons le nom retenu dans la premire ligne puis slectionnons l'option MicroSoft Text Driver (*.txt,*.csv) comme suit :

Cliquons sur le bouton Connexion puis dcochons Utilisation du rpertoire en cours Cliquons sur le bouton Slectionner le rpertoire, nous pouvons alors choisir d'abord le lecteur puis le rpertoire.

www.comptanat.fr

Francis Malherbe

Cliquons sur OK puis nouveau sur OK deux fois, nous voyons apparatre le cadre suivant :

Dans notre exemple le fichier Fichier.csv est le seul disponible mais ce n'est pas ncessairement le cas et il faut alors slectionner le fichier que nous voulons lire. Cliquons sur la flche droite et nous voyons apparatre dans le cadre droit les champs du fichier CSV. Cliquons alors sur Suivant nous voyons alors apparatre un cadre qui nous permet de filtrer les donnes. Si nous dsirons conserver toutes les donnes nous cliquons sur Suivant puis nouveau sur Suivant car trier pralablement les donnes n'a aucun intrt dans un tableau crois dynamique. On clique enfin sur Terminer puis sur Suivant. On arrive alors sur le cadre suivant :

www.comptanat.fr

Francis Malherbe

Pour travailler efficacement avec les fichiers CSV nous allons d'abord aller dans Options. Nous voyons apparatre le cadre suivant :

Quand on travaille avec de gros fichiers CSV il est intressant de dcocher l'option Enregistrer les donnes et la mise en forme. En effet, lorsque cette option est slectionne les donnes sont enregistres avec le classeur Excel, ce qui peut donner un classeur occupant une mmoire importante. Dcocher cette option permet de rendre le classeur Excel indpendant des donnes du fichier CSV comme un lecteur de CD-ROM est indpendant du CD-ROM qu'il lit. On peut galement choisir les autres options en fonction du tableau que l'on souhaite obtenir. Cliquons sur OK et passons Disposition. Nous obtenons le tableau ci-dessous :

www.comptanat.fr

Francis Malherbe

Dans la partie droite on voit les diffrents champs du fichier CSV. On va faire glisser ces champs dans les parties correspondantes du tableau de gauche. Le champ VAL qui est le seul champ numrique doit ncessairement tre plac dans la partie DONNEES du tableau. On peut, par exemple, mettre le champ OP dans la partie PAGE, DA dans COLONNE et AE dans LIGNE comme ci-dessous :

En cliquant sur OK puis Terminer on obtient dans la feuille Excel le tableau suivant :

www.comptanat.fr

Francis Malherbe

10

Comme le total des annes n'est pas pertinent on peut aller sur la cellule Total de la dernire colonne, cliquer avec le bouton droit de la souris et, dans le menu contextuel, choisir l'option Masquer. La colonne Total disparat alors. On peut galement aller dans la liste droulante de OP et slectionner OPB1. Le tableau devient :

On peut, de cette manire lire des fichiers de plus de 65536 lignes en rpartissant les donnes sur plusieurs colonnes. On peut aussi filtrer les donnes pour ne slectionner que celles qui nous intressent. La seule contrainte relle de taille est celle impose par la mmoire vive de l'ordinateur. En effet, pour pouvoir refaire tous les calculs trs rapidement chaque modification du tableau, Excel stocke l'ensemble des donnes slectionnes dans la mmoire vive de l'ordinateur.

Travailler avec des requtes SQL dans un tableau crois dynamique


L'un des grands intrts de l'utilisation des fichiers CSV avec les tableaux croiss dynamiques est d'ouvrir l'accs aux requtes SQL et donc au monde des bases de donnes relationnelles. Supposons, par exemple, que nous cherchions regrouper les activits en utilisant la table de passage ci-dessous qui montre comment passer du niveau G de la nomenclature au niveau F :

www.comptanat.fr

Francis Malherbe

11

Enregistrons cette table au format CSV dans le rpertoire Essais puis fermons le classeur Excel. Ouvrons un nouveau classeur Excel, puis dans le menu Donnes choisissons Tableau crois dynamique puis Source de donnes Excel, cliquons sur Suivant puis Lire les donnes, nous voyons apparatre dans la liste des bases de donnes UserEssais que nous slectionnons. Si nous cliquons sur OK nous voyons apparatre le cadre suivant :

En slectionnant successivement les deux fichiers et en utilisant la flche vers la droite on fait apparatre dans la partie droite la liste des champs des deux fichiers. En cliquant sur Suivant on s'afficher un message indiquant que l'assistant requte ne peut joindre les tables de votre requte. Cliquons sur OK et nous parvenons dans Microsoft Query.

www.comptanat.fr

Francis Malherbe

12

Nous allons tablir un lien entre le champ AE du fichier Fichier et le champ AEG du fichier TablePas car ces deux champs se correspondent. Pour cela, nous slectionnons le champ AEG et nous le faisons glisser sur AE de manire faire apparatre un lien entre les deux. Si nous cliquons sur l'icne SQL, nous accdons la requte SQL que nous sommes en train de crer et que nous pouvons ventuellement modifier.

En cliquant sur OK puis, dans le menu Fichier en slectionnant Renvoyer les donnes vers Microsoft Excel puis Suivant nous retombons sur les menus des tableaux croiss dynamiques. Nous pouvons, par exemple, retenir la disposition suivante :

Nous obtenons le tableau ci-dessous qui nous donne une agrgation au niveau F de la nomenclature.

www.comptanat.fr

Francis Malherbe

13

Nous pouvons maintenant travailler avec ce tableau dynamique en slectionnant, par exemple, une anne.

Travailler avec des requtes SQL dans Visual Basic


Il est possible de travailler sur des fichiers CSV sans passer par les tableaux croiss dynamiques. Pour cela, on peut utiliser les possibilits d'interrogation des bases de donnes que donne Visual Basic. Avant toute chose il convient de paramtrer Visual Basic. Supposons que nous voulions crer la macro Lire pour lire le fichier Fichier.csv. Allons-donc dans le menu Outils puis Macros et Macro. Tapons Lire dans Nom de la macro du cadre ci-dessous :

Cliquons sur Crer et nous arrivons dans l'diteur Visual Basic qui se prsente ainsi :

www.comptanat.fr

Francis Malherbe

14

Allons dans le menu Outils et choisissons l'option Rfrences, le cadre ci-dessous s'ouvre alors :

Nous devons slectionner dans la liste les lments suivants :


Microsoft ActiveX Data Objects 2.8 Library Microsoft ActiveX Data Objects Recordsets 2.8 Library Microsoft ADO Ext. for DDL and Security

Cliquons sur OK, nous pouvons vrifier que les options ont bien t enregistres en retournant dans le menu Outils puis dans Rfrences, le cadre doit se prsenter ainsi :

www.comptanat.fr

Francis Malherbe

15

Dans notre macro, nous devons dfinir la connexion notre source de donnes et un objet Recordset, objet qui est destin recevoir les enregistrements gnrs par notre requte SQL. Nous allons donc dfinir deux variables, l'une destine dfinir la connexion et que nous appellerons, par exemple, Connex, et l'autre pour dfinir le recordset et que nous appellerons Record. Pour cela nous utiliserons les instructions suivantes : Dim Connex As ADODB.Connection Dim Record As ADODB.Recordset Set Connex = New ADODB.Connection Set Record = New ADODB.Recordset Puisqu'une connexion se dfinit par le nom du rpertoire o se trouvent les donnes, il est pratique de placer le nom de ce rpertoire dans une variable que nous appellerons RepertNom. La connexion sera dfinie de la manire suivante : Repertnom = "C:\User\Essais\" Connex.ConnectionString = _ "ODBC;DBQ=" & Repertnom & ";DefaultDir=C:\; " & _ "Driver={Microsoft Text Driver (*.txt; *.csv)}; " & _ "DriverId=27;Extensions=txt,csv,tab,asc;FIL=text;MaxBufferS" Connex.Open Le signe " _" (espace puis espace soulign) est utilis pour prsenter sur plusieurs lignes une instruction trop longue pour tenir sur une seule, son utilisation est facultative et ne sert qu' amliorer la lisibilit du programme. On utilise ConnectionString pour dfinir le rpertoire et le type de base de donnes utilis, ici des bases CSV. L'instruction Open permet d'ouvrir la base de donnes afin de permettre son utilisation. Il nous faut maintenant crire la requte SQL qui nous permettra de lire le fichier CSV. Pour des raisons de lisibilit nous allons dcomposer la requte en ses diffrentes composantes que nous allons placer dans des variables. Nous allons ensuite la lancer de la manire suivante :

www.comptanat.fr

Francis Malherbe

16

sel = " SELECT f.DA,f.AE,f.OP,f.VAL " fro = " FROM fichier.csv f " Record.Open sel & fro, Connex L'instruction Record.Open ouvre le recordset Record et excute la requte place dans la chane de caractres dfinie par la concatnation des variables sel et fro, la base de donnes utilise tant celle dfinie par la connexion Connex. Remarquons que nous avons laiss des espaces la fin des variables sel et fro afin que la concatnation n'agrge pas des instructions. Le rsultat de la requte, c'est--dire les enregistrements recherchs, a t plac dans l'objet recordset Record que nous devons lire. Supposons que nous cherchions afficher le rsultat dans la feuille Donnes, nous lirons le recordset de la manire suivante : Set f = Sheets("Donnes") Record.MoveFirst i=1 Do While Not Record.EOF f.Cells(i, 1) = Record("DA") f.Cells(i, 2) = Record("AE") f.Cells(i, 3) = Record("OP") f.Cells(i, 4) = Record("VAL") i=i+1 Record.MoveNext Loop Record.Close Connex.Close Pour lire le recorset on se place d'abord sur le premier enregistrement en utilisant l'instruction MoveFirst puis on fait une boucle qui va lire les enregistrements suivants jusqu' la fin qui est signale par Record.EOF (EOF voulant dire End of file). Record("DA") renvoie la valeur du champ DA, Record.MoveNext permet de passer l'enregistrement suivant, Loop marque la fin de la boucle, Record.Close ferme le recordset et Connex.Close ferme la connexion. Si on lance ce programme on obtient sur la feuille Donnes les enregistrements de Fichier.csv. Notons que les intituls des champs n'apparaissent pas car ils ne font pas partie des enregistrements.

Le programme complet est le suivant : Sub Lire() Dim Connex As ADODB.Connection Dim Record As ADODB.Recordset Set Connex = New ADODB.Connection Set Record = New ADODB.Recordset

www.comptanat.fr

Francis Malherbe

17

Repertnom = "C:\User\Essais\" Connex.ConnectionString = _ "ODBC;DBQ=" & Repertnom & ";DefaultDir=C:\; " & _ "Driver={Microsoft Text Driver (*.txt; *.csv)}; " & _ "DriverId=27;Extensions=txt,csv,tab,asc;FIL=text;MaxBufferS" Connex.Open sel = " SELECT f.DA,f.AE,f.OP,f.VAL " fro = " FROM fichier.csv f " Record.Open sel & fro, Connex Set f = Sheets("Donnes") Record.MoveFirst i=1 Do While Not Record.EOF f.Cells(i, 1) = Record("DA") f.Cells(i, 2) = Record("AE") f.Cells(i, 3) = Record("OP") f.Cells(i, 4) = Record("VAL") i=i+1 Record.MoveNext Loop Record.Close Connex.Close End Sub

Gnrer un fichier CSV partir d'une requte SQL


Il n'est pas possible de gnrer directement un fichier CSV partir d'une requte SQL car, si les fichiers textes ont la qualit d'tre compacts, ils sont aussi difficiles modifier par un logiciel gestionnaire de base de donnes. On combinera donc deux techniques pour gnrer un fichier CSV comme rsultat d'une requte SQL, la premire est celle que nous venons d'exposer et qui consiste placer le rsultat de la requte dans un recordset, la seconde qui consiste crer le fichier CSV en lisant le recorset. Supposons que nous cherchions crer partir du fichier Fichier.csv un fichier CSV qui ne contienne que les valeurs agrges au niveau F. Le programme se prsentera alors de la manire suivante : Sub Lire() Dim Connex As ADODB.Connection Dim Record As ADODB.Recordset Set Connex = New ADODB.Connection Set Record = New ADODB.Recordset Repertnom = "C:\User\Essais\" Connex.ConnectionString = _ "ODBC;DBQ=" & Repertnom & ";DefaultDir=C:\; " & _ "Driver={Microsoft Text Driver (*.txt; *.csv)}; " & _ "DriverId=27;Extensions=txt,csv,tab,asc;FIL=text;MaxBufferS"

www.comptanat.fr

Francis Malherbe

18

Connex.Open sel = " SELECT f.DA,t.AEF,f.OP,sum(f.VAL) as VAL " fro = " FROM fichier.csv f, TablePas.csv t " whe = " WHERE f.AE=t.AEG " gro = " GROUP BY f.DA,t.AEF,f.OP " Record.Open sel & fro & whe & gro, Connex Open "C:\User\Essais\Agreg.csv" For Output As #1 Print #1, "DA;AE;OP;VAL" Set f = Sheets("Donnes") Record.MoveFirst Do While Not Record.EOF da = Record("DA") aef = Record("AEF") op = Record("OP") va = Record("VAL") enr = da & ";" & aef & ";" & op & ";" & va If va <> 0 Then Print #1, enr Record.MoveNext Loop Record.Close Connex.Close Close #1 End Sub Nous obtenons alors le fichier suivant :

Travailler avec des bases Access


Il est galement possible de travailler avec de vritables bases de donnes, par exemple de type Access. Pour cela, le mieux est certainement de crer la base de donnes et ses tables en utilisant le logiciel Access puis de travailler avec elles partir d'Excel. La manire de travailler sera, toutefois, lgrement diffrente de celle que nous avons prsente pour les fichiers CSV. L'exemple cidessous correspond au chargement d'une table Access structure en hypercube partir d'un tableau Excel. Sub SaisieQuest() 'Suppose avoir slectionn dans Tools/References : 'Microsoft ActiveX Data Objects 2.8 Library 'Microsoft ActiveX Data Object Recordsets 2.8 Library 'Microsoft Ado Ext for DDL and Security

www.comptanat.fr

Francis Malherbe

19

Dim Ctexte As String * 300 Dim cnnConn As ADODB.Connection Dim rstRecordset As ADODB.Recordset Dim cmdCommand As ADODB.Command Rep = "H:\MyDocuments\QuestGNI\" ' Nom du rpertoire o se trouve la base de donnes NomBase = "questGNI.mdb" ' Nom de la base de donnes ' Ouvre la connexion. Set cnnConn = New ADODB.Connection With cnnConn .ConnectionString = _ "Provider=Microsoft.Jet.OLEDB.4.0" .Open Rep & NomBase End With Set cmdCommand = New ADODB.Command Set cmdCommand.ActiveConnection = cnnConn Set rstRecordset = New ADODB.Recordset '----------------------------------------------------------------------------------anq = Sheets("Saisie").Cells(3, 2) ' Anne du questionnaire RepD = "O:\CN\GNP-GNI questionnaire " & anq & "\received\" ' Nom du rpertoire de donnes For Each pays In Array("Pays1", "Pays2", "Pays3") ' Liste des pays For k = 8 To 38 fic = RepD & "q" & anq & pays & ".xls" ' Nom du fichier du questionnaire Workbooks.Open Filename:=fic ' Ouvre le questionnaire '------------------------------------------------------------------------------------' Commence par vider la table QDATA avant d'ajouter les nouveaux enregistrements ' La table est vide pour le pays et l'anne saisies With cmdCommand .CommandText = "delete from QDATA where PAYS='" & pays & "' and ANQ='" & anq & "'" .CommandType = adCmdText .Execute End With Set f = Sheets("Quest" & anq & " (" & pays & ")") ' Feuille des donnes de l'anne du questionnaire For i = 7 To 44 coli = f.Cells(i, 1) If coli <> 0 Then coesa = f.Cells(i, 3) For j = 4 To 9 anda = Mid(f.Cells(4, j), 1, 4) 'Saisie des annes de la srie avec limitation de l'anne 4 caractres va = Val(" " & f.Cells(i, j)) 'Saisie des valeurs avec limination des espaces entrs comme des 0 Ctexte = "insert into QDATA values('" & pays & "','" & anq & "','" & "','" & anda & "','" & coli & "','" & coesa & "'," & va & ")" If va <> 0 Then With cmdCommand .CommandText = Ctexte .CommandType = adCmdText .Execute

www.comptanat.fr

Francis Malherbe

20

End With End If Next j End If Next i ActiveWindow.Close ' Ferme le questionnaire 'Next pays ' Ferme la connexion et vide les variables cnnConn.Close Set cmdCommand = Nothing Set rstRecordset = Nothing Set cnnConn = Nothing End Sub

Ce texte n'engage que son auteur : Francis Malherbe

www.comptanat.fr

Francis Malherbe

21