Sub ConnectX() Dim dbsTemp As Database Dim strMenu As String Dim strInput As String ' Ouvre une base de données Microsoft Jet à ' laquelle vous pourrez lier une table. Set dbsTemp = OpenDatabase("DB1.mdb") ' Crée un texte de menu. strMenu = _ "Entrer un numéro pour la source de données:" & vbCr strMenu = strMenu & _ " 1. Base de données Microsoft Jet" & vbCr strMenu = strMenu & _ " 2. Table Microsoft FoxPro 3.0" & vbCr strMenu = strMenu & _ " 3. Table dBASE" & vbCr strMenu = strMenu & _ " 4. Table Paradox" & vbCr strMenu = strMenu & _ " M. (voir choix 5 à 9)" ' Extrait le choix de l'utilisateur. strInput = InputBox(strMenu) If UCase(strInput) = "M" Then ' Crée un texte de menu. strMenu = _ "Entrer un numéro pour la source de données:" & vbCr strMenu = strMenu & _ " 5. Feuille de calcul Microsoft Excel" & vbCr strMenu = strMenu & _ " 6. Feuille de calcul Lotus" & vbCr strMenu = strMenu & _ " 7. Texte délimité par des virgules (CSV)" & vbCr strMenu = strMenu & _ " 8. Table HTML" & vbCr strMenu = strMenu & _ " 9. Dossier Microsoft Exchange" ' Extrait le choix de l'utilisateur. strInput = InputBox(strMenu) End If ' Appelle la procédure ConnectOutput. Le troisième ' argument sera utilisé comme chaîne Connect, ' et le quatrième comme SourceTableName. Select Case Val(strInput) Case 1 ConnectOutput dbsTemp, _ "JetTable", _ ";DATABASE=C:\My Documents\Comptoir.mdb", _ "Employés" Case 2 ConnectOutput dbsTemp, _ "FoxProTable", _ "FoxPro 3.0;DATABASE=C:\FoxPro30\Samples", _ "Q1Sales" Case 3 ConnectOutput dbsTemp, _ "dBASETable", _ "dBase IV;DATABASE=C:\dBASE\Samples", _ "Comptes" Case 4 ConnectOutput dbsTemp, _ "ParadoxTable", _ "Paradox 3.X;DATABASE=C:\Paradox\Samples", _ "Comptes" Case 5 ConnectOutput dbsTemp, _ "ExcelTable", _ "Excel 5.0;" & _ "DATABASE=C:\Excel\Samples\Q1Sales.xls", _ "Ventes janvier" Case 6 ConnectOutput dbsTemp, _ "LotusTable", _ "Lotus WK3;" & _ "DATABASE=C:\Lotus\Samples\Sales.xls", _ "THIRDQTR" Case 7 ConnectOutput dbsTemp, _ "CSVTable", _ "Text;DATABASE=C:\Samples", _ "Sample.txt" Case 8 ConnectOutput dbsTemp, _ "HTMLTable", _ "HTML Import;DATABASE=http://" & _ "www.server1.com/samples/page1.html", _ "Q1SalesData" Case 9 ConnectOutput dbsTemp, _ "ExchangeTable", _ "Exchange 4.0;MAPILEVEL=" & _ "Mailbox - Michelle Wortman (Exchange)" & _ "|People\Important;", _ "Jerry Wheeler" End Select dbsTemp.Close End Sub Sub ConnectOutput(dbsTemp As Database, _ strTable As String, strConnect As String, _ strSourceTable As String) Dim tdfLinked As TableDef Dim rstLinked As Recordset Dim intTemp As Integer ' Crée un objet TableDef, définit ses propriétés ' Connect et SourceTableName en fonction des ' arguments passéset ajoute l'objet à la ' collection TableDefs. Set tdfLinked = dbsTemp.CreateTableDef(strTable) tdfLinked.Connect = strConnect tdfLinked.SourceTableName = strSourceTable dbsTemp.TableDefs.Append tdfLinked Set rstLinked = dbsTemp.OpenRecordset(strTable) Debug.Print "Données de la table liée:" ' Affiche les trois premiers enregistrements de la ' table liée. intTemp = 1 With rstLinked Do While Not .EOF And intTemp <= 3 Debug.Print , .Fields(0), .Fields(1) intTemp = intTemp + 1 .MoveNext Loop If Not .EOF Then Debug.Print , "[enregistrements supplémentaires]" .Close End With ' Supprime la table liée puisqu'il s'agit d'un ' exemple. dbsTemp.TableDefs.Delete strTable End Sub