Rete - Connessione (2)




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











( reteconnessione2.html )- by Paolo Puglisi - Modifica del 17/12/2023