Descobrindo os usuários
conectados ao seu banco de dados
Precisando saber quem esta conectado ao seu banco de dados ??? Vamos usar a ADO para pode exibir quem esta conectado ao seu banco de dados Access.
1- Inicie um novo projeto no VB e no formulário padrão insira os controles conforme o layout abaixo:

- No evento Click do botão de comando - Localiza Banco de dados - insira o codigo abaixo:
Private Sub cmdLocalizaBD_Click()
'define os parâmetros iniciais do commmondialog
With CommonDialog1
.DialogTitle = "**Selecione o Banco de dados**"
.Filter = "Access Databases|*.mdb"
.InitDir = "c:\"
.ShowOpen
End With
If CommonDialog1.FileName <> "" Then
'retorna o nome do arquivo selecionado
Text1.Text = CommonDialog1.FileName
CommonDialog1.FileName = ""
'limpa a grade
MSHFlexGrid1.Clear
'chama a rotina para retorna os usuarios logados
RetornaUsuariosLogados
'ajusta as colunas do grid
AjustaColunas MSHFlexGrid1
'atualiza o grid
MSHFlexGrid1.Refresh
'exibe os usuarios conectados
Text2.Text = MSHFlexGrid1.Rows - 1
Else
'limpa o grid
MSHFlexGrid1.Clear
Text1.Text = "Você precisa selecionar um banco de dados"
'limpa a caixa de texto
Text2.Text = 0
End If
End Sub
|
- Insira um módulo no seu projeto - Menu Project | Add Module ; vamos precisar dele para criar a rotina - RetornaUsuariosLogados:
- Agora vamos mostrar o código da rotina - RetornaUsuariosLogados - ela usa o método OpenSchema para retornar as informações sobre a base de dados de um provedor. Sua sintaxe é :
Set recordset = connection.OpenSchema (QueryType, Criteria, SchemaID)
Onde :
Sub RetornaUsuariosLogados()
Dim con As New ADODB.Connection
Dim rs As ADODB.Recordset
On Error GoTo Trata_Erro
' String de conexao para acessar o banco de dados
con.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & frmMain.Text1.Text & ";"
' Para abrir um esquema(Estrutura) do recordset vamos usar o método OPenSchema
Set rs = con.OpenSchema(Schema:=adSchemaProviderSpecific, _
SchemaID:="{947bb102-5d43-11d1-bdbf-00c04fb92675}")
' Atribuindo o recordset ao ADo DataControl
Set frmMain.Adodc1.Recordset = rs
' Fecha a conexao e o recordset
Set rs = Nothing
Set con = Nothing
On Error GoTo 0
RetornaUsuariosLogados_Exit:
Exit Sub
Trata_Erro:
MsgBox "Erro No: " & Err.Number & vbCrLf & "Descrição: " & Err.Description,-
vbExclamation, "Erro em [RetornaUsuariosLogados]"
End Sub
|
- O próximo código refere-se à rotina - - que ajustas o tamanho das células do controle Microsoft Hierarchical FlexGrid Control 6.0 :
Private Sub AjustaColunas(ByVal flx As MSHFlexGrid)
Dim max_wid As Single
Dim wid As Single
Dim max_row As Integer
Dim r As Integer
Dim c As Integer
'ajusta as colunas do grid para o tamanho do texto contido nas celulas
max_row = flx.Rows - 1
For c = 0 To flx.Cols - 1
max_wid = 0
For r = 0 To max_row
wid = TextWidth(flx.TextMatrix(r, c))
If max_wid < wid Then max_wid = wid
Next r
flx.ColWidth(c) = max_wid + 240
Next c
End Sub
|
Agora resta rodar o projeto e observar a tela de resultado como abaixo exibindo o nome do computador o nome do usuario logado e se ele esta conectado.

Feliz 2003 a todos e até a
próxima dica VB ...![]()
José Carlos Macoratti