Artigo: 198755 - Última revisão: sábado, 17 de Setembro de 2011 - Revisão: 3.0

Como determinar quem tem sessão iniciada numa base de dados utilizando o Microsoft Jet UserRoster no Access 2000

Dica do SistemaEste artigo aplica-se a um sistema operativo diferente do que está a utilizar. Foi desactivado o conteúdo do artigo, que pode não ser relevante para si.
Este artigo foi publicado anteriormente em PT198755

Nesta página

Expandir tudo | Reduzir tudo

Sumário

Se utilizar o Microsoft Visual Basic for Applications no Microsoft Access 2000, poderá obter uma lista de utilizadores que têm sessão iniciada numa base de dados. O exemplo do código neste artigo mostra como fazer isto.

A Microsoft fornece exemplos de programação apenas a título informativo, sem garantia expressa ou implícita, incluindo, sem limitação, as garantias implícitas de comercialização e/ou adequação a um fim específico. Este artigo pressupõe que o utilizador conhece a linguagem de programação apresentada e as ferramentas utilizadas para criar e depurar procedimentos. Os técnicos de suporte da Microsoft podem ajudar a explicar a funcionalidade de um determinado procedimento, mas não modificarão estes exemplos para proporcionarem funcionalidades adicionais nem criarão procedimentos adaptados às necessidades específicas do utilizador. A função de lista de utilizadores fornece um modo de determinar quem está actualmente ligado a uma base de dados do Microsoft Jet. A lista pode ser obtida através da interface de programação ADO e devolve as seguintes informações para cada utilizador:
  • Nome do computador que o utilizador está a usar.
  • Nome de segurança, isto é, o ID do utilizador.
  • Se o utilizador está ou não actualmente ligado à base de dados. (Um ID do utilizador permanece na base de dados de bloqueio até o último utilizador desligar ou até ser efectuada uma reserva para uma nova ligação de utilizador.)
  • Se a ligação do utilizador foi terminada normalmente ou não.
  • A capacidade de lista de utilizadores pode ser utilizada em conjunto com a capacidade do controlo de ligações para determinar os utilizadores que ainda estão ligados para que lhes possa ser pedido que desliguem.
A capacidade de lista de utilizadores também é útil para isolar problemas de danos da base de dados associados às actividades de um utilizador específico.

Exemplo de código

Para demonstrar o exemplo do código, siga estes passos:

NOTA: o exemplo de código neste artigo utiliza Microsoft ActiveX Data Objects. Para que este código seja executado correctamente, deve referenciar a biblioteca Microsoft ActiveX Data Objects 2.x Library (em que 2.x é 2.1 ou posterior). Para o fazer, clique em References no menu Tools do editor do Visual Basic e certifique-se de que a caixa de verificação de Microsoft ActiveX Data Objects 2.x Library está seleccionada.

  1. Copie a base de dados de exemplo Adamastor para a pasta C:\.
  2. No Microsoft Access, abra C:\Adamastor.
  3. Na janela da base de dados, clique em Módulos, em Objectos, e clique em Novo.
  4. Guarde o módulo como Mostrar utilizadores.
  5. Escreva o código que se segue no módulo Mostar utilizadores:
    Sub ShowUserRosterMultipleUsers()
        Dim cn As New ADODB.Connection
        Dim cn2 As New ADODB.Connection
        Dim rs As New ADODB.Recordset
        Dim i, j As Long
    
        cn.Provider = "Microsoft.Jet.OLEDB.4.0"
        cn.Open "Data Source=c:\Adamastor.mdb"
    
        cn2.Open "Provider=Microsoft.Jet.OLEDB.4.0;" _
        & "Data Source=c:\Adamastor.mdb"
    
        ' A lista de utilizadores é exposta como um conjunto de linhas de 
        ' esquema específico de fornecedor no fornecedor de BD OLE Jet 4.
        ' Tem de utilizar um GUID para referenciar o esquema, uma vez que
        ' os esquemas específicos de fornecedor não se encontram listados na
        ' biblioteca de tipos de ADO para conjuntos de linhas de esquema
        
        Set rs = cn.OpenSchema(adSchemaProviderSpecific, _
        , "{947bb102-5d43-11d1-bdbf-00c04fb92675}")
    
        'Apresentar a lista de todos os utilizadores na base de dados actual.
    
        Debug.Print rs.Fields(0).Name, "", rs.Fields(1).Name, _
        "", rs.Fields(2).Name, rs.Fields(3).Name
    
        While Not rs.EOF
            Debug.Print rs.Fields(0), rs.Fields(1), _
            rs.Fields(2), rs.Fields(3)
            rs.MoveNext
        Wend
    
    End Sub
    					
  6. Feche a base de dados Adamastor e, quando tal for pedido, guarde as alterações a ShowUserRosterMultipleUsers (isto deve ser feito para libertar um bloqueio exclusivo na base de dados devido ao código que acabou de adicionar).
  7. Abra novamente C:\Adamastor.
  8. Prima CTRL+G para abrir a janela Immediate no editor do Visual Basic.
  9. Escreva o seguinte na janela Immediate e prima ENTER:
    ShowUserRosterMultipleUsers
    					
    Repare que, na janela Immediate, é devolvida uma lista de utilizadores na base de dados.

A informação contida neste artigo aplica-se a:
  • Microsoft Access 2000 Standard Edition
Palavras-chave: 
kbprogramming kbvba kbado kbinfo kbhowtomaster KB198755