Este artigo mostra como usar o Microsoft Visual Basic for Applications para gerar uma lista de usuários que estão registrados em um banco de dados.
A Microsoft fornece exemplos de programação apenas por questões ilustrativas, sem garantias expressas ou implícitas. Isto inclui, mas não está limitado a, garantias implícitas de comercialização ou adequação a um determinado propósito. Este artigo pressupõe que você conhece a linguagem de programação demonstrada e também as ferramentas usadas para criar e depurar procedimentos. Os engenheiros de suporte da Microsoft podem ajudá-lo, fornecendo a explicação da funcionalidade de um determinado procedimento. Mas não modificarão estes exemplos para fornecer funcionalidades adicionais ou construir procedimentos específicos para atender às suas necessidades específicas.
Ao usar o seguinte código de exemplo, a seguinte informação é retornada:
- Nome do computador.
- Nome de logon.
- Se o usuário está ou não atualmente conectado ao banco de dados. (Uma identificação de usuário permanece no banco de dados bloqueado até que o último usuário se desconecte ou até que o slot seja recuperado para uma nova conexão de usuário.)
- Se a conexão do usuário foi ou não encerrada sob circunstâncias normais.
Essas informações também podem ser usadas para isolar problemas com corrupção de banco de dados associada às atividades de um usuário específico.
Procedimento
CUIDADO: Se executar as etapas a seguir neste exemplo, você modificará o banco de dados de exemplo Northwind.mdb. Talvez seja conveniente fazer backup do arquivo Northwind.mdb e executar as seguintes etapas em uma cópia do banco de dados.
Para determinar quem está registrado em um banco de dados, execute as seguintes etapas:
- Abra o banco de dados de exemplo Northwind.mdb.
Observação No Access 2007, abra o banco de dados de exemplo Northwind2007, feche o banco de dados de exemplo Northwind2007 e reabra o banco de dados de exemplo Northwind2007. - No menu Exibir, aponte para Objetos de banco de dados e clique em Módulos.
Observação No Access 2007, clique em Visual Basic no grupo Macro da guia Ferramentas de banco de dados. - Clique em Novo.
Observação No Access 2007, clique em Módulo no menu Inserir no Editor do Visual Basic. - Digite ou cole o seguinte código:
Observação O código de exemplo neste artigo usa o Microsoft ActiveX Data Objects. Para que este código seja executado corretamente, é necessário consultar o Microsoft ActiveX Data Objects Library 2.1 ou versão posterior. Para fazer isto, clique em Referências no menu Ferramentas no Editor do Visual Basic e verifique se a caixa de seleção Microsoft ActiveX Data Objects 2.1 Library está marcada.
Sub ShowUserRosterMultipleUsers()
Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim i, j As Long
Set cn = CurrentProject.Connection
' The user roster is exposed as a provider-specific schema rowset
' in the Jet 4.0 OLE DB provider. You have to use a GUID to
' reference the schema, as provider-specific schemas are not
' listed in ADO's type library for schema rowsets
Set rs = cn.OpenSchema(adSchemaProviderSpecific, _
, "{947bb102-5d43-11d1-bdbf-00c04fb92675}")
'Output the list of all users in the current database.
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
- Salve o módulo como ShowUsers.
- Pressione CTRL+G para abrir a janela Verificação imediata.
- Digite a seguinte linha na janela Verificação imediata e pressione ENTER:
ShowUserRosterMultipleUsers
Observe que a janela Verificação imediata retorna uma lista de usuários que estão registrados no banco de dados.