Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für: Access 2013, Office 2013
Mit diesem Code wird die Verwendung von ADO (ActiveX Data Objects) mit dem Microsoft OLE DB-Anbieter für Internet Publishing veranschaulicht. In diesem Szenario erstellen Sie eine Visual Basic-Anwendung, von der mithilfe der Objekte Recordset, Record und Stream die Inhalte von Ressourcen angezeigt werden, die mit dem Internet Publishing-Anbieter veröffentlicht wurden.
Für die Erstellung dieses Szenarios sind die folgenden Schritte erforderlich:
- Richten Sie das Visual Basic-Projekt ein.
- Initialisieren Sie das Hauptlistenfeld.
- Füllen Sie das Listenfeld Felder aus.
- Füllen Sie das Textfeld Details aus.
Schritt 1: Einrichten des Visual Basic-Projekts
Dieses Szenario geht davon aus, dass Sie Microsoft Visual Basic 6.0 oder höher, ADO 2.5 oder höher und den Microsoft OLE DB-Anbieter für Internet Publishing auf dem System installiert haben.
Erstellen eines ADO-Projekts
Erstellen Sie in Microsoft Visual Basic ein neues Standard EXE-Projekt.
Klicken Sie im Menü Project auf References.
Wählen Sie Microsoft ActiveX Data Objects 2.5 Library aus, und klicken Sie dann auf OK.
Einfügen von Steuerelementen im Hauptformular
Add a ListBox control to Form1. Legen Sie die Name-Eigenschaft auf lstMain fest.
Add another ListBox control to Form1. Legen Sie die Name-Eigenschaft auf lstDetails fest.
Add a TextBox control to Form1. Legen Sie die Name-Eigenschaft auf txtDetails fest.
Schritt 2: Initialisieren des Hauptlistenfelds
Deklarieren von globalen Record- und Recordset-Objekten
Insert the following code into the (General) (Declarations) for Form1:
Option Explicit Dim grec As Record Dim grs As RecordsetDieser Code deklariert globale Objektverweise für die Objekte Record und Recordset, die später in diesem Szenario verwendet werden.
Herstellen einer Verbindung mit einer URL und Auffüllen von lstMain
Fügen Sie im Form Load-Ereignishandler für Form1 den folgenden Code ein:
Private Sub Form_Load() Set grec = New Record Set grs = New Recordset grec.Open "", "URL=https://servername/foldername/", , _ adOpenIfExists Or adCreateCollection Set grs = grec.GetChildren While Not grs.EOF lstMain.AddItem grs(0) grs.MoveNext Wend End SubDieser Code instanziiert die globalen Objekte Record und Recordset. Der Datensatz
grecwird mit einer URL geöffnet, die als ActiveConnection angegeben ist. Wenn die URL vorhanden ist, wird sie geöffnet. wenn sie noch nicht vorhanden ist, wird sie erstellt.Beachten Sie, dass Sie durch eine gültige URL aus Ihrer Umgebung ersetzen
https://servername/foldername/sollten.Das Recordset
grswird für die untergeordneten Elemente des Datensatzesgrecgeöffnet. Der lstMain wird dann mit den Dateinamen der Ressourcen aufgefüllt, die in der URL veröffentlicht wurden.
Schritt 3: Auffüllen des Listenfelds "Felder"
Insert the following code into the Click event handler of lstMain:
Private Sub lstMain_Click() Dim rec As Record Dim rs As Recordset Set rec = New Record Set rs = New Recordset grs.MoveFirst grs.Move lstMain.ListIndex lstDetails.Clear rec.Open grs Select Case rec.RecordType Case adCollectionRecord: Set rs = rec.GetChildren While Not rs.EOF lstDetails.AddItem rs(0) rs.MoveNext Wend Case adSimpleRecord: recFields rec, lstDetails, txtDetails Case adStructDoc: End Select End SubDieser Code deklariert und instanziiert lokale Record- und Recordset-Objekte
recbzwrs.Die Zeile, die der in lstMain ausgewählten Ressource entspricht, wird zur aktuellen Zeile von
grsgemacht. Das Listenfeld Details wird dann gelöscht undrecmit der aktuellen Zeile vongrsals Quelle geöffnet.Wenn es sich bei der Ressource um einen Sammlungsdatensatz handelt (wie durch RecordType angegeben), wird das lokale Recordset
rsfür die untergeordneten Elemente vonrecgeöffnet. lstDetails wird dann mit den Werten aus den Zeilen vonrsgefüllt.Wenn die Ressource ein einfacher Datensatz ist,
recFieldswird aufgerufen. Weitere Informationen zurecFieldsfinden Sie im nächsten Schritt.Ist die Ressource ein strukturiertes Dokument, wird kein Code implementiert.
Schritt 4: Auffüllen des Textfelds "Details"
Erstellen Sie eine neue Unterroutine namens ,
recFieldsund fügen Sie den folgenden Code ein:Sub recFields(r As Record, l As ListBox, t As TextBox) Dim f As Field Dim s As Stream Set s = New Stream Dim str As String For Each f In r.Fields l.AddItem f.Name & ": " & f.Value Next t.Text = "" If r!RESOURCE_CONTENTCLASS = "text/plain" Then s.Open r, adModeRead, adOpenStreamFromRecord str = s.ReadText(1) s.Position = 0 If Asc(Mid(str, 1, 1)) = 63 Then '//63 = "?" s.Charset = "ascii" s.Type = adTypeText End If t.Text = s.ReadText(adReadAll) End If End SubDieser Code füllt lstDetails mit den Feldern und Werten des einfachen Datensatzes auf, der an
recFieldsübergeben wird. If the resource is a text file, a text Stream is opened from the resource record. Der Code bestimmt, ob der Zeichensatz ASCII ist, und kopiert den Streaminhalt intxtDetails.