2017-01-20 3 views
2

У меня есть базы данных, что многие люди по всем моему рабочему месту есть первенствовать файлы со связанными таблицами и т.д.View Back End подключение к БД Access из Excel

Есть моментов, когда это имеет решающее значение я имею монопольный доступ к БД и ему не представляется возможным отслеживать сотни возможных файлов excel со ссылками, которые неправильно ломаются и обновляют их; особенно когда люди постоянно изменяют новые файлы.

Я нашел следующий код, который позволяет мне видеть, является ли кто-то подключен о передней части базы данных:

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 

есть любой код, который будет делать то же самое, как это отдай мне конец соединения? Как у кого есть открытый файл excel, который связан и блокирует БД только для чтения?

+0

Not Access VBA, но нашел это, используя журнал безопасности. http://stackoverflow.com/questions/19442037/whos-linking-to-my-ms-access-tables/19442487 – geeFlo

ответ

0

1) Вы можете открыть подключение к любой базе данных. Вы использовали «CurrentProject.Connection», но вы можете использовать:

set cn=Server.CreateObject("ADODB.Connection") 
cn.Provider="Microsoft.Jet.OLEDB.4.0" 
cn.Open "c:/webdata/northwind.mdb" 

2) Если метод (1) не подходит, вы можете использовать ODBC для запроса WMI и получить список всех, кто связан с какой-либо конкретной файл.

+0

1) метод, который я использую в своих файлах excel; когда кто-то находится в БД, используя это соединение, он запрещает другому пользователю доступ к нему. Не могли бы вы подробно остановиться на методе 2)? – scott

+0

^см. Выше комментарий @david – scott

Смежные вопросы