Rete # Nell'esempio riportato di seguito sono utilizzate le proprieta' Connect e ReturnsRecords per selezionare da un database di Microsoft SQL Server i titoli dei cinque libri piu' venduti a partire dall'inizio dell'anno fino a oggi. In caso di esatta corrispondenza dell'ammontare delle vendite, vengono aumentate le dimensioni dell'elenco in cui sono visualizzati i risultati della query e viene visualizzato un messaggio esplicativo.
Sub ClientServerX1() Dim dbsCurrent As Database Dim qdfPassThrough As QueryDef Dim qdfLocal As QueryDef Dim rstTopFive As Recordset Dim strMessage As String ' Apre un database da cui e' possibile creare ' gli oggetti QueryDef. Set dbsCurrent = OpenDatabase("DB1.mdb") ' Crea una query di tipo pass-through per ' recuperare i dati da un database di Microsoft SQL Server. Set qdfPassThrough = _ dbsCurrent.CreateQueryDef("AllTitles") qdfPassThrough.Connect = _ "ODBC;DATABASE=pubs;UID=sa;PWD=;DSN=Publishers" qdfPassThrough.SQL = "SELECT * FROM titles " & _ "ORDER BY ytd_sales DESC" qdfPassThrough.ReturnsRecords = True ' Crea un oggetto QueryDef temporaneo per ' recuperare i dati dalla query di tipo pass-through. Set qdfLocal = dbsCurrent.CreateQueryDef("") qdfLocal.SQL = "SELECT TOP 5 title FROM AllTitles" Set rstTopFive = qdfLocal.OpenRecordset() ' Visualizza i risultati delle query. With rstTopFive strMessage = _ " Our top 5 best-selling books are:" & vbCr Do While Not .EOF strMessage = strMessage & " " & !Title & _ vbCr .MoveNext Loop If .RecordCount > 5 Then strMessage = strMessage & _ "( There was a tie, resulting in " & _ vbCr & .RecordCount & _ " books in the list.)" End If MsgBox strMessage .Close End With ' Elimina le nuove query di tipo pass-through ' poiche' questo e' un esempio. dbsCurrent.QueryDefs.Delete "AllTitles" dbsCurrent.Close End Sub |