Avatar billede manutd Nybegynder
27. marts 2001 - 16:04 Der er 2 kommentarer og
2 løsninger

Kan man spørge på om andre er logget på en base

Jeg sidder og arbejder ned mod en databasefil (.mdb-fil) fra et VB 6.0 program.

Jeg åbner basen således:

DBConString = \"DRIVER={Microsoft Access  Driver (*.mdb)}; DBQ=\" & GetSetting App.Title, \"Settings\", \"DatabasePath\" & \"\\ICMDM.mdb\"
DBCon.Open DBConString

Og lukker således:

DBCon.Close

Jeg har dog det problem, at jeg gerne kunne slette databasen fra mit VB program, og i den forbindelse vil jeg gerne kunne spørge om der er andre klientprogrammer som har åbnet en forbindelse til databasen. For så kan den jo ikke slettes.

Kan man spørge om det???, evt. ned i den tilhørende .ldb-fil???, og hvordan gør man.


Avatar billede nerøs Nybegynder
27. marts 2001 - 17:27 #1
Det nemmeste var måske at prøve at slette den og så fange fejlen:
ala:
on error resume next
kill DatabasePath & \"\\ICMDM.mdb\"
if err<> 0 then .....

27. marts 2001 - 20:10 #2
Hvis .ldb-filen findes, så er der brugere på den.
Så en alm. dir-kommando vil kunne checke om der er brugere på.

Hvis du skal bruge noget kode til at få listet HVILKE brugere, som pt har fat i filen, kan du måske få det... :-)

/Thomas
Avatar billede manutd Nybegynder
27. marts 2001 - 20:14 #3
Tak for hjælpen begge to. Jeg tror jeg har nok til at arbejde videre med. Jeg skal ikke vide hvem der er på, bare om de er på.
Avatar billede michael_b Nybegynder
28. marts 2001 - 17:05 #4
Du kan evt. prøve nedenstående util

Sub ShowUserRosterMultipleUsers()
Dim cn As New Connection
Dim cn2 As New Connection
Dim rs As New Recordset
Dim i, j As Long

cn.Provider = \"Microsoft.Jet.OLEDB.4.0\"
cn.Open \"Data Source=c:\\Northwind.mdb\"

cn2.Open \"Provider=Microsoft.Jet.OLEDB.4.0;\" _
& \"Data Source=c:\\Northwind.mdb\"

\' The user roster is exposed as a provider-specific schema rowset
\' in the Jet 4 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
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester