MS Access (checken van read of read/write rechten)

Pagina: 1
Acties:
  • 114 views sinds 30-01-2008
  • Reageer

  • Opvolger
  • Registratie: Juni 1999
  • Laatst online: 22-07 23:24

Opvolger

Tjaa lalalala ole ole

Topicstarter
Heb voor me stage een Access database gemaakt met heel wat forms....
Nu wordt mijn database op een netwerkstation gezet waar sommige mensen lees rechten hebben en sommige lezen en schrijf rechten hebben.

Nu wil in in het Main menu het een en ander uitschakelijk waar de mensen zonder schrijf rechten toch niet hoeven te komen. (Nieuwe dingen aan maken enz, want ze hoeven alleen maar uit te lezen)

En toen kwam mijn probleem hoe vraag je in Visual Basic Script op wat voor rechten je hebt.
heb al van alles geprobeerd maar werkt allemaal niet.
zoek dus een commando zo iets als:

Activefile.readonly = true/false

of

database.readonly = true/false

Toch vreemd dat het niet zo makkelijk is, ....
heb nu tijdelijk overall een "On Error GoTo" neer gezet (buttoms die info schrijven naar de database) maar wil eigenlijk de hele buttom disable! :(

Wie weet toevallig wel hoe dit moet?

By ikke geschrijft


Verwijderd

Met de functie GetAttr kan je uitlezen of een file read only is.
Weet niet of dat ook werkt voor jouw situatie omdat het op netwerk niveau geregeld is, maar je kan het proberen.

  • OZ-Gump
  • Registratie: November 2002
  • Laatst online: 25-08 14:38

OZ-Gump

terug van weggeweest

Eerlijk gezegd verwacht ik van niet. Met GetAttr check je de status van het bestand, terwijl het hier om een netwerkrecht gaat of je mag lezen/schrijven of niet. Ik heb het gevoel dat er vast wel een API bestaat waarmee je van een bepaalde (netwerk)directory kunt checken welke rechten je hebt...

ff gezocht: hebbes... de API-call GetFileSecurity geeft als antwoord de rechten die de huidige gebruiker heeft op een bestand of directory. Meer info over deze API-call vind je hier. Je krijgt er zelfs de declare al bij... nou dat in combinatie met een Application.CurrentProject.FullName lijkt me voldoende om een en ander uit te zoeken.

[ Voor 41% gewijzigd door OZ-Gump op 11-12-2002 14:58 ]

My personal website


  • Opvolger
  • Registratie: Juni 1999
  • Laatst online: 22-07 23:24

Opvolger

Tjaa lalalala ole ole

Topicstarter
Application.CurrentProject.FullName is al erg handig.... maar ik werk met Visual Basic Apliation en niet Visual Basic 6 of zo....

dus ja... de link die je me gaf wil niet helemaal... en GetAttr() werkt voor file promissies en niet met netwerk :(

By ikke geschrijft


  • OZ-Gump
  • Registratie: November 2002
  • Laatst online: 25-08 14:38

OZ-Gump

terug van weggeweest

@Opvolger, ik neem aan dat je binnen access aan het coden bent? Dan kun je namelijk gewoon ook die API-call gebruiken. Ook binnen een module van Access kun je gewoon API-calls gebruiken om dingen te onderzoeken. Zet in de OnOpen van je eerste scherm de code om te controleren en klaar is Kees of Nico of net wie er maar mee bezig is.

My personal website


  • OZ-Gump
  • Registratie: November 2002
  • Laatst online: 25-08 14:38

OZ-Gump

terug van weggeweest

OK, even aan het kijken geweest en volgens mij doet die API niet of heel moeilijk dat wat jij ermee wil. Waar ik nu aan zit te denken is als allereerste kijken of je een bestand in de map van de DB kunt aanmaken (die map kun je makkelijk vinden met Application.CurrentProject.Path) en als dat kan heb je ook schrijfrechten. Als het maken van een bestand failed heb je geen schrijfrechten. Maak bijvoorbeeld een bestand acctest.tst aan.

Wat betreft de API-call: het kan wel ,alleen moet je dan ff weten hoe het moet. Deze zip (19Kb) bevat een VB6 applicatie (inclusief source) om de verschillende rechten die je hebt weer te geven. Helaas is al het commentaar in het Russisch, maar dat houdt de uitdaging erin ;)
Succes ermee......!

[ Voor 31% gewijzigd door OZ-Gump op 11-12-2002 16:13 . Reden: damn typo's ]

My personal website


  • Opvolger
  • Registratie: Juni 1999
  • Laatst online: 22-07 23:24

Opvolger

Tjaa lalalala ole ole

Topicstarter
Kwam ook al op dat id alleen dan met een table aan maken en als dat wil kan je schrijven... :)

By ikke geschrijft


Verwijderd

Is het niet zo dat iedereen schrijfrechten nodig heeft op de directory waar de access database staat. Er wordt immers bij (eerste) opening een locking bestand aangemaakt. Ook al maak je de database Read-Only er wordt toch een ldb bestand aangemaakt. En daar heb je volgens mij altijd schrijfrechten voor nodig.
Pagina: 1