ethan123
14.03.11,09:01
Ahojte, potreboval by som znova poradit ohladom tlace OBJEDNAVKY z formulara tak, aby sa mi na zostave (resp. objednavke) nezobrazovali udaje zo vsetkych poli (iba niektore) a iba z aktualneho zaznamu. (nie cela databaza).
Otazka c.2
Ako nastavim pristupove hesla pre kazdeho uzivatela?
Otazka c 3
Chcel by som nastavit aj to, ak sa da zaznam ''ulozit'' tak aby zmrzol a nedal sa opravovat (menit) bez hesla.

DAKUJEM PEKNE ZA POMOC.
Andrej
PaloPa
14.03.11,09:36
Ahoj Andrej

ad 1
Spôsobov "predfiltrovania údajov" je viacero, ja osobne pre reporty používam zapnutie vlastnosti "Filter" cez pomocný formulár, ktorý sa otvorí pred zostavou

Private Sub Report_Open(Cancel As Integer)
Dim xSum, xTyp, xCDokl, xdat2
Dim MyForm As String
Dim xRecSrc1 As String, xRecSrc2 As String

MyForm = "Zxx_Filter_Mesto"
On Error GoTo errdsc
DoCmd.RunMacro "Txx_Filter_Mesto.otvor"

If ISLOADED(MyForm) Then
Me.Filter = filter_text
Me.FilterOn = (Len(Me.Filter) > 0)
End If
errdsc:

End SubPodrobné vysvetlenie i príkladom - viď tu:
Výběr položek v sestavách (http://pc-prog.eu/phpBB3/viewtopic.php?f=5&t=242)
MS Access 2010 - filtrovanie údajov (http://pc-prog.eu/phpBB3/viewtopic.php?f=5&t=245)


ad 2
Tiež na dlhšie, ale skús si v pomocníkovi k Accessu preštudovať tému MDW súborov (bezpečnostý súbor - i heslami pre jednotlivých používateľov)

ad 3
Znova téma na dlhšiu debatu, ale veľmi jednoducho sa dá nastaviť cez vlastnosť AllowEdits (Vlastnosti pre celý formulár / záložka Data), cez VBA sa dá nastaviť napr. pri otváraní formulára, podľa prihláseného (CurrentUser()):



Private Sub Form_Load()
If IsInGroup(CurrentUser(), "NaCitanie") = True Then
Form.AllowAdditions = False
Form.AllowEdits = False
Form.AllowDeletions = False
End If
End Sub

Tu je funkcia, cez ktorú sa dá detekovať, či User patrí do určitej skupiny:


Public Function IsInGroup(UsrName As String, GrpName As String) As Boolean
'Determines whether UsrName is a member of GrpName
Dim grp As Group
Dim IIG As Boolean
Dim usr As User
IIG = False

For Each usr In DBEngine.Workspaces(0).Users
If usr.Name = UsrName Then GoTo FoundUser
Next

GoTo IIG_Exit

FoundUser:
For Each grp In usr.Groups
If grp.Name = GrpName Then IIG = True
Next

IIG_Exit:
IsInGroup = IIG

End Function
Palo