M.A Posted June 18, 2004 Posted June 18, 2004 Hi all, How and what kind of field should I create where a user can enter data into it only once. And after the data is entered in the field, its not modifiable except by the administrator. Thanks for providing any kind of help.
Ender Posted June 18, 2004 Posted June 18, 2004 You could set up custom Edit privileges for that password that does not allow editing if there is data in the field. I personally don't like using the custom privileges like this. Data entry mistakes are common, and may need correction. Unless you want users coming to you every time they misspell something or type something in the wrong field, you might try another option: What I usually do is have an Entry layout and a View layout, and when the user completes the process, use a script step to change the status (or calculate the completion status based on each field being entered.) When the status is complete, the navigation scripts go to the View layout. I suppose you could set the custom privileges to allow editing if the status is not complete, otherwise don't allow editing, but I like the control I have with separate layouts, and I don't like taking our multi user system down for changing access privilege settings. It's easier to modify the navigation scripts when business rules change.
M.A Posted June 18, 2004 Author Posted June 18, 2004 The layout option looks good to me. But when I am using the Entry and View layouts. Anyone can go to the Entry layout, go to find mode and pull up a record and change the data. The reason why I wanted a one time entry text box is to not let the user change what they have already entered. And give access to only one user to change or correct any mistakes. So I think the layout option will not be good for me. As for setting up Custom Edit privs for a password that does not allow editing if there is data in the field; Can you tell me how can I do that. Thanks
QuinTech Posted June 18, 2004 Posted June 18, 2004 Just a thought here, playing off of what Ender said-- You could validate this field with something like editingAllowed = 1 where "editingAllowed" is a number field, available only to users with the necessary privileges, which is set by default to 1. Then, an authorized user reviews each entry on whatever schedule and puts a 0 or anything else into editingAllowed. Then, if someone tries to edit the original field, they will be able to type in their edits but not commit them because, of course, the validation will fail. This steps around the pitfall Ender mentioned about misspellings, etc. not being correctable. The user will have a period of time in which to edit, but once the supervisor reviews it and marks it un-editable, the user is locked out. See the attached for an example. Does this help? Jerry permissions.zip
M.A Posted June 18, 2004 Author Posted June 18, 2004 This is a great idea. I checked out the file that you sent. Thanks. But, the issue here is that the supervisor does not review every file. And I wanted to make this process automated so that once data is entered in that field (and/ or a certain period of time has passed), that field will be un-editable.
M.A Posted June 18, 2004 Author Posted June 18, 2004 Based on the file that QuinTech has sent me. I used a password and used an if statement to limit the edit privs. The if statement uses the function "IsEmpty(field)", checks if that field is empty, if empty then it sets the "editingAllowed = 1" and viceversa if not. This way I was able to make the field one time editable..... But again I had to use the password and custom Edit Privs, which as Ender has said, one has to bring the multi-user system down to make any changes. If I dont have anything better than this, then I plan to use this. Thanks.
ESpringer Posted June 18, 2004 Posted June 18, 2004 You might also check out some articles here on the strategy of a data-entry script that uses a special layout with global fields on it which hold the data intended for a new record. The user can enter things at whatever speed, and can poke around within the global data-entry layout to correct a typo, or whatever, but once the "Confirm creation of new record" button is hit, the script creates a new record; have the fields set to auto-enter whatever's in the corresponding globals, and then the global fields are all cleared by the script. If you want data entry to be a "carving in stone" process, this is one way to do it without having a big nuissance when someone exits a field and then suddenly sees an error... Then, in all other layouts, editing is not allowed on any field. Another benefit is that if the data-entry person gets interrupted while entering a new record, and then loses track, you don't have stray junk records... Sorry I don't have threads of related posts... check for "global" and "data entry" or "record creation" and "script", that sort of thing...
Ender Posted June 19, 2004 Posted June 19, 2004 In order to use the View / Edit layout technique, you have to disable access to using the menus for creating records, entering Find Mode, etc. Changing the menu privileges for that password to Editing Only will do this. This means of course, that you would need to make buttons/scripts for record creation and performing a find. Think of this as a good thing; you can then control the layout that is used for finds and the layout that is used to show the found set.
-Queue- Posted June 19, 2004 Posted June 19, 2004 You can also use the visibility technique for this. But, from personal experience, I would only suggest going all out with it if you are diehard on only using one layout. It can be a real pain to line things up correctly and make it look like you want. But once you succeed, it's quite a beautiful setup. An added bonus is that all fields are available in find mode, since the relationship becomes invalid, so you can cut out many superfluous scripts such as buttons on fields to test whether a record is modifiable or if you're in find mode and allowed to enter them. Database Pros has several examples, if you're interested.
MorFologist Posted June 19, 2004 Posted June 19, 2004 I have a Staff TimeSheet and Expense Report database where I use a separate file to show the user the information in a portal, no access to the file where the actual data entered is stored. The portal has a relationship to the real data that can give the user different levels of data access Some ways to use: If Admin has approved data... it is no longer available to user to edit If user has set field "Done with entering" to Yes... If user has been reimbursed for the expense... if Date is still Today... So all the calcs used to create the relationships have results like "Ralph-01/01/2001-Y"
Aussie John Posted June 20, 2004 Posted June 20, 2004 You could run a script at start up (or button under the field) using custom message to enter data into the field if it is empty, but on the layout use a calculation field which mirrors to data entry field. As an administrator just run the script with a modifier key.
M.A Posted June 21, 2004 Author Posted June 21, 2004 The reponse is great. And your inputs are very useful and is a wide range of choice for me to use. I will play around with these and implement the one that fits best in my situation. Thank you folks for all your help.
Recommended Posts
This topic is 7529 days old. Please don't post here. Open a new topic instead.
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now