03. december 2003 - 08:25Der er
5 kommentarer og 3 løsninger
Kode stump
Hej,
Jeg er ikke nogen nørd til det her. Derfor - er der en der kan forklare mig med menneskeord hvad nedenstående kode betyder, linie for linie ??
Dim usr As User Dim strPassword As String Set usr = DBEngine(0).Users(CurrentUser) On Error Resume Next usr.NewPassword ””, ”” If Err.Number = 0 Then strPassword = InputBox(”Du skal indtaste et password”, ”Enter Password”) If strPassword = ”” Then DoCmd.Quit Else usr.NewPassword ””, strPassword End If End If
Det er en kode til skift af password med en fejlbehandling. Du bliver bedt om at indtaste et nyt password. Hvis dette nye er Null (ingenting / tom streng) opstår fejlnr 0. Hvis denne opstår kommer der en inputbox (strPassword = Inputbox ....) og beer dig indtaste et password.
Hvis det nye password er en tom streng lukkes Access (DoCmd.Quit), ellers bliver det gamle password er stattet med det nye (usr.NewPassword ””, strPassword )
Ideen med denne procedure et at sikre sig at alle brugere har angivet et password i stedet for blot at have blankt password (sikkerhedsbrist)
linien usr.NewPassword ””, ”” forsøger så at skifte password ved at angive både nyt og gammelt password som tomt. Hvis dette lykkedes, så er det fordi at der ikke var noget password. Derved opstår der IKKE nogen fejl (hvorved Err.Number forbliver 0) og brugeren bedes indtaste nyt password. Hvis der allerede havde været defineret et password af brugeren, så var sætningen ikke lykkedes, hvorved resten af koden springes over.
Jeg giver et forsøg... Det ser ud til at koden ændrer password på den bruger som er logget på din Access, når du har aktiveret rettigheder på din access. Det er i stedet for at gå i menuen Tools->Security, for at ændre password.
Dim usr As User 'Erklærer et instans af objektet user. Dim strPassword As String 'Erklærer en variabel af typen string Set usr = DBEngine(0).Users(CurrentUser) 'Her går jeg ud fra at usr refereres til user objectet med information om hvem som er logget på access i øjeblikket. On Error Resume Next 'Hvis der sker en fejl i de efterfølgende liniers kode, vil eksekveringen fortsætte til næste linie uden at stoppe op og melde om fejl. usr.NewPassword ””, ”” 'Syntaxen er userobjekt.NewPassword oldpassword, newpassword. Tjekker om brugeren er logget på med password. If Err.Number = 0 Then 'Hvis brugeren er logget på uden password, vil denne betingelse være sand og udføre koden heri. strPassword = InputBox(”Du skal indtaste et password”, ”Enter Password”) 'Beder brugeren indtaste et nyt password If strPassword = ”” Then 'Hvis brugeren indtaster ingenting, vil Access lukke. DoCmd.Quit Else usr.NewPassword ””, strPassword 'Hvis brugeren indtaster et nyt password, vil der blive sat nyt password på den nuværende bruger. End If End If
Alt i alt tjekker koden om brugeren er logget på med et password. Hvis ikke, vil han blive bedt om at indtaste et nyt. Og hvis han ikke gør, vil access lukke. Jeg håber dette gav lidt forståelse :-) Ellers må du spørge.
jobba: Det er du bare pokkers god til at skære i pap! Du antager ikke som en selvfølge en indforståethed, der kan vanskeliggøre forståelsen. Du løfter forståelsesniveauet til uanede højder. Først pinder du det ud i detaljer og derefter et resumé. Du burde have millioner af points.
Tak for hjælpen alle tre. Jeg har prøvet at fordele point som jeg ser brugbarheden :-) Håber alle er tilfreds ! >>jobba - den kommentar fra vanni er jeg ikke ansvarlig for, han/hun derfor heller ikke acceptere noget som helst ! Endnu en gang tak !
Ups... undskyld. Jeg troede det var dig som havde svaret :D
Synes godt om
Ny brugerNybegynder
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.