ado.pdf

10
ADO et Visual Basic : Tutoriel Par Sébastien Curutchet Date de publication : 18 décembre 2002 Dernière mise à jour : 14 mars 2013 Droit de diffusion et d'utilisation: Tous les documents ou partie de document ainsi que le code sont libres d'accès, mais ne peuvent pas être diffusés sur d'autres sites HTTP, FTP ou autres, sans mon accord. L'ensemble de mon code mis à votre diposition est libre d'utilisation tant qu'il ne sert pas à la réalisation d'applications payantes. Je demande juste aux personnes incluant mon code dans leurs applications d'y laisser le commentaire mis en entête.

Upload: abdou

Post on 04-Oct-2015

216 views

Category:

Documents


1 download

TRANSCRIPT

  • ADO et Visual Basic : Tutoriel

    Par Sbastien Curutchet

    Date de publication : 18 dcembre 2002

    Dernire mise jour : 14 mars 2013

    Droit de diffusion et d'utilisation:

    Tous les documents ou partie de document ainsi que le code sont libres d'accs, mais nepeuvent pas tre diffuss sur d'autres sites HTTP, FTP ou autres, sans mon accord.

    L'ensemble de mon code mis votre diposition est libre d'utilisation tant qu'il ne sert pas la ralisation d'applications payantes. Je demande juste aux personnes incluant mon codedans leurs applications d'y laisser le commentaire mis en entte.

  • ADO et Visual Basic : Tutoriel par Sbastien Curutchet

    - 2 -Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation constitue une uvre intellectuelle protge parles droits d'auteur. Copyright 2002 Sbastien Curutchet. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc.sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette page est dpose la SACD.

    http://drq.developpez.com/vb/tutoriels/ADO/

    I - Avant Propos...........................................................................................................................................................3II - Un tour rapide d'ADO............................................................................................................................................ 3III - Etablir une connexion avec ADO et l'objet Connection:.......................................................................................3

    III-A - Connexion une base de donnes Access sans DSN.............................................................................. 4III-B - Connexion une base de donnes SQL Server sans DSN....................................................................... 4III-C - Connexion une base de donnes Oracle sans DSN............................................................................... 4III-D - Connexion une base de donnes avec un DSN......................................................................................4III-E - Quelques informations supplmentaires sur les pilotes.............................................................................. 5

    III-E-1 - Liste des pilotes ODBC sans DSN..................................................................................................... 5III-E-2 - Liste des pilotes OLEDB..................................................................................................................... 6

    IV - Raliser des requtes avec l'objet Recordset......................................................................................................7V - Raliser des requtes avec l'objet Command...................................................................................................... 9VI - Remarque........................................................................................................................................................... 10

  • ADO et Visual Basic : Tutoriel par Sbastien Curutchet

    - 3 -Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation constitue une uvre intellectuelle protge parles droits d'auteur. Copyright 2002 Sbastien Curutchet. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc.sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette page est dpose la SACD.

    http://drq.developpez.com/vb/tutoriels/ADO/

    I - Avant Propos

    L'ensemble du code et explications que vous trouverez dans ce document est bas sur ADO version 2.0 et VisualBasic 6.

    Vous trouverez ci-aprs des exemples de connexions aux bases de donnes Access, Oracle, SQL Server ainsi qu'uneexplication sur les objets les plus courrants d'ADO.

    II - Un tour rapide d'ADO

    ADO (ActiveX Data Object) est un composant ActiveX permettant d'accder aux bases de donnes de faonbeaucoup plus facile sans se soucier de tout ce qui est allocation des environnements de travail (cf. programmationavec la couche basse d'ODBC). ADO fournit des objets qui permettent de se connecter une base et de raliserdes requtes SQL sur cette base.

    Pour pouvoir utiliser ADO dans un projet Visual Basic vous avez deux solutions pour y parvenir :

    la premire est de crer un Projet de donnes ; la seconde est de rajouter dans le menu Projets - Rfrences, Microsoft AtiveX Data Objects 2.x Library ;

    ADO propose les objets suivants :

    Command : permet d'excuter des requtes ; Connection : connexion une source de donnes (aussi bien un fichier texte, qu'un fichier Excel, ou une base

    de donnes) ; Error : ensemble des erreurs retournes par le SGBD ; Parameter : permet de dfinir un paramtre d'une requte ; Recordset : jeu d'enregistrements retourns lors de l'excution d'un SELECT.

    III - Etablir une connexion avec ADO et l'objet Connection:

    Pour tablir une connexion une base de donnes avec ADO, on utilise l'objet Connection. Vous trouverez dans cechapitre un exemple de connexion une base de donnes Access, Oracle et SQL Server.

    Une connexion une base de donnes se dfinit par :

    l'hte sur lequel se trouve la base de donnes ; le nom de la base de donnes ; le nom de l'utilisateur ; le mot de passe.

    L'ensemble de ces champs est appel chane de connexion. Les champs hte et nom de la base de donnes peuvent soit tre dfinis dans le programme soit dans un DSN (Data Source Name). Un DSN se configure dans lepanneau de configuration avec l'outil Source de donnes (ODBC).

    Comment raliser une connexion ? Tout d'abord il faut dclarer la variable associe la connexion.

    Dim cnx As New ADODB.Connection

    Ou alors :

    Dim cnx As ADODB.ConnectionSet cnx = New ADODB.Connection

  • ADO et Visual Basic : Tutoriel par Sbastien Curutchet

    - 4 -Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation constitue une uvre intellectuelle protge parles droits d'auteur. Copyright 2002 Sbastien Curutchet. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc.sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette page est dpose la SACD.

    http://drq.developpez.com/vb/tutoriels/ADO/

    L'tape suivante consiste crire la chane de connexion. Comme il a t vu prcdemment, il existe deux possibilitssoit en utilisant un DSN soit en mettant les informations ncessaires dans la chane de connexion.

    III-A - Connexion une base de donnes Access sans DSN

    'Dclaration de la variable de connexionDim cnx As ADODB.ConnectionSet cnx = New ADODB.Connection

    'Dfinition du pilote de connexioncnx.Provider = "Microsoft.Jet.Oledb.3.51"'Dfinition de la chane de connexioncnx.ConnectionString = "C:\maBase.mdb"'Ouverture de la base de donnescnx.Open

    Le pilote 3.51 permet d'accder Access 95 et 97. Pour Access 2000, il faut utiliser la version 4.0.

    III-B - Connexion une base de donnes SQL Server sans DSN

    'Dclaration de la variable de connexionDim cnx As ADODB.ConnectionSet cnx = New ADODB.Connection...

    'Dfinition de la chane de connexioncnx.ConnectionString = "UID=" & NomUtilisateur &";PWD=" & MotDePasse & ";" & "DRIVER={SQL Server};Server=" & NomServeur & ";Database=" & NomBaseDeDonnes & ";"

    'Ouverture de la base de donnescnx.Open

    Comme vous avez pu le constater, il n'y a pas la ligne cnx.Provider. En effet dans cet exemple le pilote utiliser estdcrit dans la chane de connexion : DRIVER={SQL Server}.

    III-C - Connexion une base de donnes Oracle sans DSN

    'Dclaration de la variable de connexionDim cnx As ADODB.ConnectionSet cnx = New ADODB.Connection...

    'Dfinition de la chane de connexioncnx.ConnectionString = "UID=" + NomUtilisateur & ";PWD=" & MotDePasse & ";" & "DRIVER=msdaora;Server=" & NomServeur & ";Database=" & NomBaseDeDonnes & ";"

    'Ouverture de la base de donnescnx.Open

    Vous avez pu voir des chanes de connexion avec comme DRIVER {Microsoft ODBC for Oracle}. Ceci marche maisn'est pas trs recommand.

    III-D - Connexion une base de donnes avec un DSN

    'Dclaration de la variable de connexionDim cnx As ADODB.ConnectionSet cnx = New ADODB.Connection...

    'Dfinition de la chane de connexioncnx.ConnectionString = "DSN=" & NomDuDSN & ";UID=" & NomUtilisateur & ";PWD=" & MotDePasse & ";"

  • ADO et Visual Basic : Tutoriel par Sbastien Curutchet

    - 5 -Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation constitue une uvre intellectuelle protge parles droits d'auteur. Copyright 2002 Sbastien Curutchet. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc.sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette page est dpose la SACD.

    http://drq.developpez.com/vb/tutoriels/ADO/

    'Ouverture de la base de donnescnx.Open

    Dans le cas o il y a le DSN, vous n'avez plus besoin de spcifier l'hte sur lequel se trouve la base de donnesainsi que le nom de la base de donnes.

    Pour finir cette partie, voici une petite fonction de connexion avec DSN :

    '===================================================================' AUTHOR : DrQ' FUNCTION : InitConnection(...)' DESCRIPTION : Initiliase la connexion la base de donnes' PARAMS : * DSN : Nom du DSN associ la connexion' * UserName : Nom de l'utilisateur' * Password : Mot de passe de l'utilisateur' VERSION : 1.1'===================================================================Public Function InitConnection(DSN As String, UserName As String, PassWord As String) As Boolean Dim query As String Dim cnxString As String Dim RequeteOk As Boolean Dim mRst As New ADODB.Recordset

    InitConnection = False 'Initialisation de la chaine de connexion ADOCnx.ConnectionString = "DSN=" & DSN & ";"

    'Vrifie que la connexion est bien ferme If ADOCnx.State = adStateOpen Then ADOCnx.Close End If On Error GoTo BadConnection 'Connexion la base de donnes ADOCnx.Open cnxString, UserName, PassWord, adAsyncConnect 'Attente que la connexion soit tablie While (ADOCnx.State = adStateConnecting) DoEvents Wend 'Vrification des erreurs dans le cas d'une mauvaise connexion If ADOCnx.Errors.Count > 0 Then 'Affichage des erreurs MsgBox ADOCnx.Errors.Item(0) InitConnection = False Exit Function Else InitConnection = True End If Exit Function

    BadConnection:If ADOCnx.Errors.Count > 0 Then 'Affichage des erreurs MsgBox ADOCnx.Errors.Item(0) InitConnection = False Exit FunctionElse MsgBox err.DescriptionEnd IfEnd Function

    III-E - Quelques informations supplmentaires sur les pilotes

    III-E-1 - Liste des pilotes ODBC sans DSN

    dBase

  • ADO et Visual Basic : Tutoriel par Sbastien Curutchet

    - 6 -Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation constitue une uvre intellectuelle protge parles droits d'auteur. Copyright 2002 Sbastien Curutchet. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc.sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette page est dpose la SACD.

    http://drq.developpez.com/vb/tutoriels/ADO/

    Driver={Microsoft dBASE Driver (*.dbf)};DriverID=277;Dbq=chemin\nombd.dbf;

    MS Access

    Driver={Microsoft Access Driver (*.mdb)};Dbq=chemin\nombd.mdb;Uid=NomUtilisateur;Pwd=MotDePasse;

    MS SQL Server

    Driver={SQL Server};Server=NomDuServeur;Database=nombd;Uid=NomUtilisateur;Pwd=MotDePasse;

    MS Text Drive

    Driver={Microsoft Text Driver (*.txt; *.csv)};Dbq=chemin\;Extensions=asc,csv,tab,txt;Persist Security Info=False;

    MySQL

    Driver={mysql}; database=nombd;server=NomDuServeur;uid=NomUtilisateur;pwd=MotDePasse;option=16386;

    Oracle

    Driver={Microsoft ODBC for Oracle};Server=ServeurOracle.schema;Uid=NomUtilisateur;Pwd=MotDePasse;

    Visual Foxpro

    Driver={Microsoft Visual FoxPro Driver};SourceType=DBC;SourceDB=chemin\nombd.dbc;Exclusive=No;

    III-E-2 - Liste des pilotes OLEDB

    MS Access

    Provider=Microsoft.Jet.OLEDB.4.0;Data Source=chemin\nombd.mdb;User Id=NomUtilisateur;Password=MotDePasse;

    MS SQL Server

    Provider=SQLOLEDB;Data Source=NomServeur;Initial Catalog=nombd;User ID=NomUtilisateur;Password=MotDePasse;

    MS SQL Server avec une adresse IP

    Provider=SQLOLEDB; Data Source=xx.xx.xx.xx,1433; Network Library=DBMSSOCN; Initial Catalog=dbname;User ID=NomUtilisateur;Password=MotDePasse;

    MS Text Driver

    "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=chemin;Extended Properties='text;FMT=Delimited'"

    Oracle

    Provider=OraOLEDB.Oracle;Data Source=nombd;User Id=NomUtilisateur;Password=MotDePasse;

  • ADO et Visual Basic : Tutoriel par Sbastien Curutchet

    - 7 -Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation constitue une uvre intellectuelle protge parles droits d'auteur. Copyright 2002 Sbastien Curutchet. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc.sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette page est dpose la SACD.

    http://drq.developpez.com/vb/tutoriels/ADO/

    IV - Raliser des requtes avec l'objet Recordset

    Comme pour l'objet Connection vous devez commencer par dclarer une variable de type Recordset.

    Dim rst As New ADODB.Recordset

    Ou alors :

    Dim rst As ADODB.RecordsetSet rst = New ADODB.Recordset

    Une fois ces lignes de code tapes, vous pouvez excuter votre requte. Pour cela vous devez utiliser la mthodeOpen de l'objet Recordset. Cette mthode prend en paramtre :

    la requte ; la connexion sur laquelle vous souhaitez excuter la requte ; le type du curseur (je vous renvoie des cours de SGBD) ; le type de blocage ; le type de requte ;

    L'ensemble de ces champs sont facultatifs, mais je vous conseille d'au moins passer les deux premiers paramtres la mthode. Cela rend le code plus clair. Dans les exemples qui vont suivre je n'utiliserai que les deux premiersparamtres. Si vous souhaitez plus d'informations, je vous renvoie sur MSDN qui est trs bien document.

    Voici un petit exemple :

    'Dclaration des variablesDim cnx As ADODB.ConnectionDim rst As ADODB.Recordset

    'Instanciation des variablesSet cnx = New ADODB.ConnectionSet rst = New ADODB.Recordset

    'Connexion la base de donnescnx.ConnectionString = "Provider=" & PiloteDaccesAlaBaseDeDonnes & ";DSN=" & NomDuDSN & ";UID=" & NomUtilisateur & ";PWD=" & MotDePasse & ";"cnx.Open

    'Excution de la requterst.Open "SELECT nom, prenom, adresse FROM Client", cnx

    Une fois l'Open excut, l'ensemble des enregistrements retourns par le SELECT se trouvent dans l'objet Recordset,ici rst.

    Pour accder ces enregistrements vous devez utiliser le champ Field. Chaque champ Field contient une colonne.Dans notre cas nous en avons 3 numrotes de 0 2. Vous avez donc deux solutions pour accder un champ.Prenons l'exemple du champ prenom. Vous faites rst.Fields(1) ou bien rst.Fields("prenom"). Vous avez pu voircertainement du code avec rst(1) ou bien rst("prenom"), c'est la mme chose. Et oui les dveloppeurs sont un peufaignants ds qu'il s'agit de taper du code ;o)

    Accder un champ c'est bien, mais pouvoir naviguer dans l'ensemble des enregistrements c'est mieux. Pour cela,il existe des mthodes permettant de le faire :

    MoveFirst : slectionne le premier enregistrement ; MoveLast : slectionne le dernier enregistrement ; MoveNext : slectionne l'enregistrement suivant ; MovePrevious : slectionne l'enregistrement prcdent.

  • ADO et Visual Basic : Tutoriel par Sbastien Curutchet

    - 8 -Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation constitue une uvre intellectuelle protge parles droits d'auteur. Copyright 2002 Sbastien Curutchet. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc.sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette page est dpose la SACD.

    http://drq.developpez.com/vb/tutoriels/ADO/

    Il y a deux proprits de l'objet Recordset connatre pour la navigation qui sont :

    BOF (Begin Of File) : est vrai si l'objet Recordset pointe sur le dbut d'enregistrement ; EOF (End Of File) : est vrai si l'objet Recorset pointe sur la fin de l'enregistrement.

    Voici un exemple de boucle permettant de parcourir un jeu d'enregistrement et d'afficher le rsultat.

    While Not(rst.EOF) MsgBox rst("nom") & " " & rst("prenom") & " habite au " & rst("adresse") & "." rst.MoveNextWend

    Il arrive que certaines fois, il y est un problme avec l'objet Recordset et il ne pointe pas au dbut de l'enregistrement.Donc pour remdier ce problme vous pouvez tapez les lignes suivantes aprs avoir effectu l'Open.

    rst.MoveLastrst.MoveFirst

    Une fois que vous n'utilisez plus le Recordset, pensez le fermer avec la mthode Close.

    rst.Close

    Il existe une autre proprit qui peut tre intressante qui est RecordCount. Elle vous permet de savoir le nombred'enregistrements stocks dans l'objet Recordset.

    Voici un petit exemple de fonction pouvant excuter tout type de requtes via un Recordset.

    '============================================================================='

    ' FUNCTION : ExecSQL(...)

    ' DESCRIPTION : Execute une requte SQL

    ' PARAMS : * query : Requte excuter

    ' * rst : Variable permettant de stocker les enregistrements

    '============================================================================='Public Function ExecSQL(query As String, ByRef rst As ADODB.Recordset, ByRef cnx As ADODB.Connection) As Boolean

    'Initialisation du RecordSet If rst.State adStateClosed Then rst.Close

    'Ouvre une transaction pour ne pas avoir raliser de commit en fin de traitement ADOCnx.BeginTrans

    'Positionne le curseur ct client rst.CursorLocation = adUseClient 'Vrifie que la connexion passe est bonne Set rst.ActiveConnection = cnx On Error GoTo ErrHandle 'Excute la requte rst.Open query, ADOCnx 'Valide la transaction ADOCnx.CommitTrans ExecSQL = True Exit Function

    ErrHandle: ExecSQL = False MsgBox "ADOManager.ExecSQL:ErrHandle" & vbCr & vbCr & err.Description, vbCritical

  • ADO et Visual Basic : Tutoriel par Sbastien Curutchet

    - 9 -Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation constitue une uvre intellectuelle protge parles droits d'auteur. Copyright 2002 Sbastien Curutchet. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc.sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette page est dpose la SACD.

    http://drq.developpez.com/vb/tutoriels/ADO/

    End Function

    V - Raliser des requtes avec l'objet Command

    Comme pour les autres objets, vous devez commencer par dclarer une variable de type Command.

    Dim rst As New ADODB.Command

    Ou alors :

    Dim rst As ADODB.CommandSet rst = New ADODB.Command

    L'objet Command est un peu plus complexe que le Recordset quoique. L'avantage de l'objet Command par rapport l'objet Recordset est de pouvoir facilement paramtrer les requtes mmes les SELECT.

    Pour pouvoir utiliser des requtes paramtrables il faut utiliser le symbole ? dans la requte SQL puis rajouter unobjet Parameter l'objet Command.

    Pour tre plus clair voici un exemple :

    'Dclaration des variablesDim cnx As ADODB.ConnectionDim cmd As ADODB.CommandDim prm1 As ADODB.ParameterDim rst As ADODB.Recordset

    'Instanciation des variablesSet cnx = New ADODB.ConnectionSet cmd = New ADODB.CommandSet prm1 = New ADODB.ParameterSet rst = New ADODB.Recordset

    'Connexion la base de donnescnx.ConnectionString = "Provider=" & PiloteDaccesAlaBaseDeDonnes & ";DSN=" & NomDuDSN & ";UID=" & NomUtilisateur & ";PWD=" & MotDePasse & ";"cnx.Open

    'Prparation de l'objet Commandcmd.CommandText = "SELECT * FROM Client WHERE nom = ?"

    'Prparation du paramtreprm1.Name = "nom" 'Nom du champ correspondantprm.Type = adVarChar 'Type du champprm.Direction = adInput 'Type de paramtre : Entre, Sortie, Entre/Sortieprm.Size = 40 'Taille maximale du champprm.Value = "Dupond" 'Valeur du paramtre

    'Excution de la requteSet rst = cmd.Execute

    Comme vous avez pu le remarquer, j'ai utilis un Recordset dans cet exemple. Voici une faon de rcuprer lesenregistrements retourns par un SELECT. L'objet Recordset n'est ncessaire que dans le cas d'un SELECT. Dansles autres cas vous pouvez tapper juste cmd.Execute. La mthode Execute de l'objet Command peut prendre troisparamtres qui sont facultatifs :

    le premier est le nombre d'enregistrements affects par la requte. Il est de type Long ; le deuxime est un tableau de Variant contenant les paramtres de la requte SQL ; le troisme indique le type de valeur que le fournisseur doit attribuer la proprit CommandText.

  • ADO et Visual Basic : Tutoriel par Sbastien Curutchet

    - 10 -Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation constitue une uvre intellectuelle protge parles droits d'auteur. Copyright 2002 Sbastien Curutchet. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc.sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette page est dpose la SACD.

    http://drq.developpez.com/vb/tutoriels/ADO/

    La proprit CommandText contient la requte excuter. a peut tre une requte standard comme une requtede modification de l'architecture d'une table ou de la base de donnes.

    VI - Remarque

    Il est tout fait possible qu'il y ait des erreurs dans le document. Si vous en trouvez, ou bien souhaitez un peuplus d'explication sur certains points, veuillez m'envoyer un mail afin de mettre jour l'ensemble de ce document.D'avance merci.

    Pour conclure ce chapitre, j'ai juste une dernire chose vous signaler. Dans le cas o vous utilisez les objetsParameter faites attention faire les Append de vos paramtres dans le mme ordre que les ? dans la requte SQL.

    SynopsisSommaireI - Avant ProposII - Un tour rapide d'ADOIII - Etablir une connexion avec ADO et l'objet Connection:III-A - Connexion une base de donnes Access sans DSNIII-B - Connexion une base de donnes SQL Server sans DSNIII-C - Connexion une base de donnes Oracle sans DSNIII-D - Connexion une base de donnes avec un DSNIII-E - Quelques informations supplmentaires sur les pilotesIII-E-1 - Liste des pilotes ODBC sans DSNIII-E-2 - Liste des pilotes OLEDB

    IV - Raliser des requtes avec l'objet RecordsetV - Raliser des requtes avec l'objet CommandVI - Remarque