Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se ao: Access 2013, Office 2013
Este exemplo de código demonstra como usar o ADO com o Provedor DB Microsoft OLE para Publicação na Internet. Neste cenário, você criará um aplicativo do Visual Basic que usa os objetos Recordset, Record e Stream para exibir o conteúdo dos recursos publicados com o Internet Publishing Provider.
As seguintes etapas são necessárias para criar este cenário:
- Configure o projeto do Visual Basic.
- Inicializar a caixa de listagem Principal.
- Preencha a caixa de listagem Campos.
- Preencha a caixa de texto Detalhes.
Etapa 1: Configurar o projeto do Visual Basic
Neste cenário, considera-se que você tem o Microsoft Visual Basic 6.0 ou posterior, ADO 2.5 ou posterior e o Microsoft OLE DB Provider para Publicação de Internet instalado no seu sistema.
Criar um projeto do ADO
No Microsoft Visual Basic, crie um novo projeto EXE padrão.
No menu Projeto, clique em Referências.
Selecione Biblioteca do Microsoft ActiveX Data Objects 2.5 e clique em OK.
Inserir controles no formulário principal
Adicione um controle ListBox em Form1. Defina sua propriedade Name como lstMain.
Adicione outro controle ListBox em Form1. Defina sua propriedade Name como lstDetails.
Adicione um controle TextBox em Form1. Defina sua propriedade Name como txtDetails.
Etapa 2: Inicializar a caixa de listagem principal
Declarar objetos Record e Recordset globais
Insira o seguinte código em (General) (Declarations) para Form1:
Option Explicit Dim grec As Record Dim grs As RecordsetEste código declara as referências de objetos globais para os objetos Record e Recordset que serão usados posteriormente neste cenário.
Conectar-se a uma URL e preencher lstMain
Insira o seguinte código no manipulador de eventos Form Load para Form1:
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 SubEste código instancia os objetos Record e Recordset globais. O Registro
grecé aberto com uma URL especificada como ActiveConnection. Se o URL existir, estará aberto; se ainda não existir, será criado.Observe que você deve substituir
https://servername/foldername/por uma URL válida do seu ambiente.O Recordset
grsé aberto nos filhos do Recordgrec. Em seguida, o lstMain é preenchido com os nomes de arquivo dos recursos publicados na URL.
Etapa 3: Preencher a caixa de listagem Campos
Insira o seguinte código no manipulador de eventos Click de 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 SubEsse código declara e instancia objetos
recRecord e Recordset locais ers, respectivamente.A linha correspondente ao recurso selecionado em lstMain é feita a linha atual de
grs. A caixa de listagem Detalhes é então desmarcada erecé aberta com a linha atual degrscomo origem.Se o recurso for um registro de coleção (conforme especificado por RecordType), o Recordset
rslocal será aberto nos filhos derec. lstDetails é então preenchido com os valores das linhas ders.Se o recurso for um registro simples,
recFieldsserá chamado. Para obter mais informações sobrerecFields, consulte a próxima etapa.Nenhum código será implementado se o recurso for um documento estruturado.
Etapa 4: preencher a caixa de texto Detalhes
Crie uma nova sub-rotina chamada
recFieldse insira o seguinte código: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 SubEste código preenche lstDetails com os campos e valores do registro simples passados para .
recFieldsSe o registro for um arquivo de texto, um texto Stream será aberto a partir do registro de recurso. O código determina se o conjunto de caracteres é ASCII e copia o conteúdo do Stream para otxtDetails.