11. juli 2008 - 14:44Der er
1 kommentar og 2 løsninger
adgang på 2 niveauer vha password
Hej. Jeg har nu forsøgt mig med at angive h.h.v. læse og skriverettigheder i Access. Jeg har tilmed været næsten alle indlæg på denne side igennem, angående dette emne. Jeg skal bruge 2 login. 1 for Admin (skrive og rette) samt 1 login for Users (læse). Uanset hvad jeg gør, gælder mit login for al Access login. Og jeg kan slet ikke definere password for "users" (kun admin). Hvis jeg ændrer passwordet for Admin - gælder dette for alle mine Access filer. Jeg ønsker kun disse 2 login for en enkelt database. Ægte hovedbrud :-)
Du kan styre det selv, du laver din database, sådan at alle formularer kun har læserettigheder. Så laver du et modul, som kun indeholder flg. kode:
Option Compare Database Public Gbl_Password As String
Du kan jo kalde modulet for Global, det er lige meget hvad det hedder..
Så laver du en knap på din hovedmenu eller opstartsformular eller hvor det nu passer bedst, med en tekst a'la "Log på som Admin" eller hvad du nu finder på. Koden du ligger på denne knap kunne så være:
Private Sub NavnPåDinKnap_Click() If InputBox("Indtast password") = "DitPassword" Then Gbl_Password = "DitPassword" Me.Form.AllowAdditions = True Me.Form.AllowDeletions = True Me.Form.AllowEdits = True Else Gbl_Password = "" Me.Form.AllowAdditions = False Me.Form.AllowDeletions = False Me.Form.AllowEdits = False End If End Sub
og så ligger du flg. kode på alle formularer:
Private Sub Form_Open(Cancel As Integer) If Gbl_Password = "DitPassword" Then Me.Form.AllowAdditions = True Me.Form.AllowDeletions = True Me.Form.AllowEdits = True Else Me.Form.AllowAdditions = False Me.Form.AllowDeletions = False Me.Form.AllowEdits = False End If End Sub
Det er nærmest en intro til at styre sikkerheden selv!~)
Hvis du så vil have at man ikke kan se hvad man skriver, når man indtaster password, så må du lave en lille formular med et tekstfelt, dvs. nærmest din egen MsgBox for på dette tekstfelt kan du vælge formatet PASSWORD og så kommer der stjerner, når du skriver...
Så er der lige det med truslen over for SQL-injections... hvis du vil gøre metoden mere sikker over for dette, så kan du vende den ene kode om, således:
Private Sub NavnPåDinKnap_Click() If InputBox("Indtast password") <> "DitPassword" Then Gbl_Password = "" Me.Form.AllowAdditions = False Me.Form.AllowDeletions = False Me.Form.AllowEdits = False Else Gbl_Password = "DitPassword" Me.Form.AllowAdditions = True Me.Form.AllowDeletions = True Me.Form.AllowEdits = True End If End Sub
Det er nok ikke så aktuelt i dit tilfælde, men det er en god finte, som hermed er sendt videre!~)
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.