Newsgroup: it.comp.appl.access
Titolo: db multiutente, utente X visualizza solo records creati da utente X

ciao a tutti, la mia domanda č questa:
in un db multiutente ho fatto in modo che alla creazione di un nuovo record,
dopo aver immesso i dati in una maschera pop-up "az_new", un campo della
tabella collegata venga riempito con il CurrentUser (alla pressione del
tasto per procedere con la maschera "az")
    Dim USR As Control
    ...
    Set USR = Forms!az_new!USR
    USR = CurrentUser()
    stDocName = "az"
    stLinkCriteria = "[ID]=" & Me![ID]
    ...
    DoCmd.Close
    DoCmd.OpenForm stDocName, , , stLinkCriteria
il fine č quello di fare in modo che ciascun utente veda solo i dati immessi
da parte sua, inibendogli la vista di quelli immessi dagli altri utenti: a
questo punto come dovrei procedere per ottenere questo risultato?
nota: dubito che questo sia il metodo migliore per ottenere il risultato che
mi prefiggo; ne esiste uno migliore?
grazie per l'attenzione


Io problemi simili a questo li ho risolti definendo una maschera di 
parametri che apro in modalità nascosta all'apertura dell'applicativo e che 
rimane sempre aperta dietro le quinte.
In questa maschera, non collegata a nessuna tabella, ho una diecina di campi 
parametri, da PARAM1 a PARAM10 i quali possono essere utilizzati anche nelle 
query.
Quindi se all'uscita di az_new valorizzi PARAM1 con l'userid (per es.: 
"forms!Parametri.PARAM1 = CurrentUser()" ), puoi fare in modo che la query 
su cui si basa la maschera az abbia il criterio di selezione sul campo della 
tabella che contiene l'userid in questo modo: 
"[forms]![Parametri].[PARAM1]".
Così facendo la query filtra solo i documenti creati dal CurrentUser.
Ciao
Antonio

 ha scritto nel messaggio
news:427dd7d3$0$20682$5fc...@news.tiscali.it...

Ciao Antonio, prima di tutto grazie per il consiglio!
Ho un ulteriore quesito da porti: la maschere che visualizzano i dati
relativi alle aziende non prendono i dati da queries, bensì ritettamente
dalla tabella di origine. come posso esprimere la cosa su apertura di
ciascuna maschera relativa alle aziende?
pensavo di usare la proprietà "su apertura" nel modo seguente, ma mi da
errore:
Private Sub Form_Open(Cancel As Integer)
    Dim USR As Control
    Set USR = Forms!LIST_az!USR
    If USR = Forms!adm2!USR Then    ' parte errata?
    record.Visible = True                       ' parte errata?
    Else                                                 ' parte errata?
    record.Visible = False                      ' parte errata?
    End If                                              ' parte errata?
    DoCmd.Maximize
End Sub
- "adm2" è la maschera nascosta sempre aperta;
- "USR" è il parametro contenuto nella maschera nascosta E il nome del
controllo della maschera "LIST_az";
probabilmente sbaglio la sintassi nella parte IF, ma non so un gran che in
fatto di VB..
è il modo giusto di procedere o esiste un sistema migliore? magari fare in
modo che le maschere puntino a queries piuttosto che direttamente alla
tabella (come da te suggerito)?
grazie mille..

 ha scritto nel messaggio
news:R4Pfe.88733$IN.15...@twister2.libero.it...

ciao Antonio, ho risolto con:
Private Sub Form_Open(Cancel As Integer)
Me.Filter = "USR = Forms!adm2!USR"
Me.FilterOn = True
    DoCmd.Maximize
End Sub
su apertura di ciascuna form che punta direttamente alla tabella aziende.
a questo punto il più è fatto..
1 ultimo quesito: se volessi fare in modo che qualche utente XXX possa
visualizzare tutti i dati, a prescindere da chi li ha creati (una specie di
supervisore)?
grazie ancora per la tua pazienza!