Chcę móc wyświetlić zawartość pliku laccdb mojej bazy danych dostępu przez VBA, dzięki czemu mogę go użyć, aby ostrzec użytkowników (za pomocą przycisku), kto jeszcze jest w bazie danych.Pobierz zawartość pliku laccdb przez VBA
W szczególności nie chcę używać narzędzia innej firmy. Próbowałem użyć:
Set ts = fso.OpenTextFile(strFile, ForReading)
strContents = ts.ReadAll
Działa to dobrze, jeśli tylko 1 użytkownik jest w bazie danych. Ale dla wielu użytkowników to pogubi przez przypuszczalnie znaków spoza ASCII i idzie do tego rodzaju rzeczy po jednym wpisie:
Czy ktoś ma jakieś sugestie? To dobrze, jeśli po prostu otworzyć plik w Notepad ++ ...
Kod ostatecznie używany jest następujący (nie muszę tytuł i usunięciu kodu nie jest używany):
Sub ShowUserRosterMultipleUsers()
Dim cn As New ADODB.Connection, rs As New ADODB.Recordset
cn.Provider = "Microsoft.ACE.OLEDB.12.0"
cn.Open "Data Source=" & CurrentDb.Name
Set rs = cn.OpenSchema(adSchemaProviderSpecific, , "{947bb102-5d43-11d1-bdbf-00c04fb92675}")
While Not rs.EOF
Debug.Print rs.Fields(0)
rs.MoveNext
Wend
End Sub
który wygląda jak dobry punkt wyjścia. Próbuję ustalić, którą wersję Jet muszę zmienić na 4.0, która nie obsługuje plików accdb. Dowolny pomysł? –
Zmieniłem go na 'Microsoft.ACE.OLEDB.12.0' i użyłem' "Data Source =" & CurrentDb.Properties (0) .Value' i wygląda na to, że działa jak urok! Gracias. –
Nifty. @TimEdwards: 'CurrentDb.Name' jest nieco bardziej czytelny niż' CurrentDb.Properties (0) .Value' :) – Andre