Getrennte Recordsets sind Objekte in einem Clientcache, die über keine aktive Verbindung zum Server verfügen. Unter Verwendung von getrennten Recordsets können Sie mit ActiveX Data Objects (ADO) einen Recordset erstellen und dann die Verbindung zur Datenquelle trennen. Der Benutzer kann nun den Recordset offline anzeigen und bearbeiten.
Beispiel: Auf der weiter unten in diesem Artikel erstellten Datenzugriffsseite Kategorien wird die Frage angezeigt, ob auf der Seite getrennte Daten verwendet werden sollen. Wenn der Benutzer auf Ja klickt, wird er auf der Seite aufgefordert, den Pfad zum getrennten Recordset einzugeben. Klickt der Benutzer auf Nein, werden auf der Seite Livedaten verwendet.
Erstellen einer Seite, die ein getrenntes Recordset verwendet
- Erstellen Sie eine Datenzugriffsseite in der Entwurfsansicht.
- Fügen Sie die gewünschten Steuerelemente und Gruppenebenen hinzu. Erstellen Sie beispielsweise die Seite Kategorien, auf der Artikeldatensätze in verschiedenen Kategorien gruppiert werden.
- Fügen Sie Code zum BeforeInitialBind-Ereignis hinzu, um eine Verbindung zu einem getrennten Recordset oder zu Livedaten herzustellen.
Beispiel für eine BeforeInitialBind-Ereignisprozedur
<SCRIPT language=vbscript event=BeforeInitialBind(info) for=MSODSC>
<!--
Dim rs
Dim strShapeText
Dim strConnectionString
Dim strDataSource
adOpenKeyset=1
adLockOptimistic=3
If vbyes=msgbox("Getrenntes Recordset verwenden?",vbyesno) Then
On Error Resume Next
strDataSource = InputBox ("Den Pfad zum gewünschten getrennten _
Recordset eingeben.", "Pfad eingeben", _
"C:\Programme\Microsoft Office\Office10\Samples\Northwind.mdb")
strShapeText = MSODSC.RootRecordsetDefs(0).ShapeText
strConnectionString = "Provider=MSDataShape.1; _
Persist Security Info=False;Data Source= _
" & strDataSource & ";User ID=Admin; _
Data Provider=Microsoft.Jet.OLEDB.4.0"
Set rs = CreateObject("ADODB.Recordset")
rs.Open strShapeText, strConnectionString, adOpenKeyset, adLockOptimistic
If err.Number <> 0 Then
MsgBox "Fehler: " & err.description & "Fehler " & err.number
End If
MSODSC.SetRootRecordset "Kategorien", rs
End If
-->
</SCRIPT>
Anmerkungen
- Eine Seite mit Bindung an ein getrenntes Recordset funktioniert in Microsoft Access nicht korrekt. Öffnen Sie die Seite in Microsoft Internet Explorer, um sie richtig anzuzeigen.
- Wenn Sie Visual Basic Scripting Edition-Script-Blöcke (VBS – Visual Basic-Skript) für Microsoft Office Data Source Control-Ereignisse (MSODSC – Microsoft Office Datenquellen-Steuerelemente) erstellen, müssen Sie dem Ereignisnamen einen Parameter hinzufügen:
<SCRIPT LANGUAGE=vbscript FOR=MSODSC EVENT=Current(oEventInfo)>
Der oEventInfo-Parameter wird verwendet, um spezifische Informationen über das Ereignis an das Skript zurückzugeben. Sie müssen diesen Parameter ungeachtet der Tatsache hinzufügen, ob er verwendet werden soll, denn ohne den Parameter funktioniert das Skript nicht.