Rete # In questo esempio di utilizzano le proprieta' Connect e SourceTableName per collegare diverse tabelle esterne ad un database di Microsoft Jet. Per poter eseguire questa routine, e' necessario utilizzare la routine ConnectOutput.
Sub ConnectX() Dim dbsTemp As Database Dim strMenu As String Dim strInput As String ' Apre un database di Microsoft Jet a cui ' collegare una tabella. Set dbsTemp = OpenDatabase("DB1.mdb") ' Crea il testo del menu. strMenu = "Immette il numero per l'origine dati:" & vbCr strMenu = strMenu & _ " 1. database di Microsoft Jet" & vbCr strMenu = strMenu & _ " 2. tabella di Microsoft FoxPro 3.0" & vbCr strMenu = strMenu & _ " 3. tabella di dBASE" & vbCr strMenu = strMenu & _ " 4. tabella di Paradox" & vbCr strMenu = strMenu & _ " M. (vedere le scelte 5-9)" ' Scelta dell'utente. strInput = InputBox(strMenu) If UCase(strInput) = "M" Then ' Crea il testo del menu. strMenu = "Immette il numero per l'origine dati:" & vbCr strMenu = strMenu & _ " 5. foglio di calcolo di Microsoft Excel" & vbCr strMenu = strMenu & _ " 6. foglio di calcolo di Lotus " & vbCr strMenu = strMenu & _ " 7. testo delimitato da virgole (CSV)" & vbCr strMenu = strMenu & _ " 8. tabella di HTML" & vbCr strMenu = strMenu & _ " 9. cartella di Microsoft Exchange" ' Scelta dell'utente. strInput = InputBox(strMenu) End If ' Richiama la routine ConnectOutput. Il terzo argomento ' sara' usato come stringa Connect e il quarto ' argomento sara' usato come SourceTableName. Select Case Val(strInput) Case 1 ConnectOutput dbsTemp, _ "JetTable", _ ";DATABASE=C:\My Documents\Northwind.mdb", _ "Impiegati" Case 2 ConnectOutput dbsTemp, _ "FoxProTable", _ "FoxPro 3.0;DATABASE=C:\FoxPro30\Samples", _ "Q1Sales" Case 3 ConnectOutput dbsTemp, _ "dBASETable", _ "dBase IV;DATABASE=C:\dBASE\Samples", _ "Account" Case 4 ConnectOutput dbsTemp, _ "ParadoxTable", _ "Paradox 3.X;DATABASE=C:\Paradox\Samples", _ "Account" Case 5 ConnectOutput dbsTemp, _ "ExcelTable", _ "Excel 5.0;" & _ "DATABASE=C:\Excel\Samples\Q1Sales.xls", _ "Vendite di gennaio" Case 6 ConnectOutput dbsTemp, _ "LotusTable", _ "Lotus WK3;" & _ "DATABASE=C:\Lotus\Samples\Sales.xls", _ "TERZOTRIM" 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, _ strTabella As String, strConness As String, _ strOrigineTabella As String) Dim tdfCollegata As TableDef Dim rstCollegata As Recordset Dim intTemp As Integer ' Crea una nuova TableDef, imposta le proprieta' ' Connect e SourceTableName in base agli argomenti ' passati e la accoda all'insieme TableDefs. Set tdfCollegata = dbsTemp.CreateTableDef(strTabella) tdfCollegata.Connect = strConness tdfCollegata.SourceTableName = strTableOrigine dbsTemp.TableDefs.Append tdfCollegata Set rstCollegata = dbsTemp.OpenRecordset(strTabella) Debug.Print "Dati della tabella collegata:" ' Visualizza i primi tre record della tabella collegata. intTemp = 1 With rstCollegata Do While Not .EOF And intTemp <= 3 Debug.Print , .Fields(0), .Fields(1) intTemp = intTemp + 1 .MoveNext Loop If Not .EOF Then Debug.Print , "[altri record]" .Close End With ' Elimina la tabella collegata perche' e' una dimostrazione. dbsTemp.TableDefs.Delete strTabella End Sub |