![]() | |
![]() |
| | Thread Tools | Display Modes |
#1
| |||
| |||
|
#2
| |||
| |||
|
|
HI, I'm not that experienced in Access so am turning to the experts for some basic help. I have the following fields in a table : Name Type Level Number Start Date Date End Date Date Is it possible to have some code that will automatically change the value of 'level' from 2 to 1 if today's date is greater than 'End Date'? Effectively, I want the customer's access level to drop once their contract has run out. At the moment I have to keep an eye on when customer contracts are due to end and manually update the value in the 'level' field from 2 to 1. Can anyone show me how to do this? Thanks! |
#3
| |||
| |||
|
|
HI, I'm not that experienced in Access so am turning to the experts for some basic help. I have the following fields in a table : Name Type Level Number Start Date Date End Date Date Is it possible to have some code that will automatically change the value of 'level' from 2 to 1 if today's date is greater than 'End Date'? Effectively, I want the customer's access level to drop once their contract has run out. At the moment I have to keep an eye on when customer contracts are due to end and manually update the value in the 'level' field from 2 to 1. Can anyone show me how to do this? Thanks! |
#4
| |||
| |||
|
|
On Nov 24, 1:14 pm, "Mintyman" <minty... (AT) ntlworld (DOT) com> wrote: HI, I'm not that experienced in Access so am turning to the experts for some basic help. I have the following fields in a table : Name Type Level Number Start Date Date End Date Date Is it possible to have some code that will automatically change the value of 'level' from 2 to 1 if today's date is greater than 'End Date'? Effectively, I want the customer's access level to drop once their contract has run out. At the moment I have to keep an eye on when customer contracts are due to end and manually update the value in the 'level' field from 2 to 1. Can anyone show me how to do this? Thanks! Probably you should determine the customer's access level on the basis of [End Date]<VBA.Date(). Maintaining a "level" field that simply mimics the results of a calculation is unnecessary, and is generally considered to be poor design. |
#5
| |||
| |||
|
|
"lyle" <lyle.fairfield (AT) gmail (DOT) com> wrote in message news:72efa194-0a71-42de-a549-79a724509fb2 (AT) p69g2000hsa (DOT) googlegroups.com. .. On Nov 24, 1:14 pm, "Mintyman" <minty... (AT) ntlworld (DOT) com> wrote: HI, I'm not that experienced in Access so am turning to the experts for some basic help. I have the following fields in a table : Name Type Level Number Start Date Date End Date Date Is it possible to have some code that will automatically change the value of 'level' from 2 to 1 if today's date is greater than 'End Date'? Effectively, I want the customer's access level to drop once their contract has run out. At the moment I have to keep an eye on when customer contracts are due to end and manually update the value in the 'level' field from 2 to 1. Can anyone show me how to do this? Thanks! Probably you should determine the customer's access level on the basis of [End Date]<VBA.Date(). Maintaining a "level" field that simply mimics the results of a calculation is unnecessary, and is generally considered to be poor design. Hi, Lyle. I tend to disagree with you on this. I think having a "level" field is a good idea. There may be other reasons besides expiration date for determining the level. Granted, all those criteria could be included in a dynamic level calculation. But having a separate field would allow ad-hoc adjustments to someone's level on a case-by-case basis. So I prefer the separate field approach. Another benefit of the separate field approach is that it allows sorting on filtering on that value, which isn't possible with a calculated value. Now here you might say that any sorting or filtering should be provided programmatically as part of the application. But depending on the size of the business and the need, they might not have the time or the resources to program everything that might be needed with the database. So being able to do sorting and filtering using the bulit-in Access tools is a big plus, IMO. So, those are my thoughts. Neil |
#6
| |||
| |||
|
|
"Neil" <nospam (AT) nospam (DOT) net> wrote in news:amg2j.871$Vq.43 (AT) nlpi061 (DOT) nbdc.sbc.com: "lyle" <lyle.fairfield (AT) gmail (DOT) com> wrote in message news:72efa194-0a71-42de-a549-79a724509fb2 (AT) p69g2000hsa (DOT) googlegroups.com. .. On Nov 24, 1:14 pm, "Mintyman" <minty... (AT) ntlworld (DOT) com> wrote: HI, I'm not that experienced in Access so am turning to the experts for some basic help. I have the following fields in a table : Name Type Level Number Start Date Date End Date Date Is it possible to have some code that will automatically change the value of 'level' from 2 to 1 if today's date is greater than 'End Date'? Effectively, I want the customer's access level to drop once their contract has run out. At the moment I have to keep an eye on when customer contracts are due to end and manually update the value in the 'level' field from 2 to 1. Can anyone show me how to do this? Thanks! Probably you should determine the customer's access level on the basis of [End Date]<VBA.Date(). Maintaining a "level" field that simply mimics the results of a calculation is unnecessary, and is generally considered to be poor design. Hi, Lyle. I tend to disagree with you on this. I think having a "level" field is a good idea. There may be other reasons besides expiration date for determining the level. Granted, all those criteria could be included in a dynamic level calculation. But having a separate field would allow ad-hoc adjustments to someone's level on a case-by-case basis. So I prefer the separate field approach. Another benefit of the separate field approach is that it allows sorting on filtering on that value, which isn't possible with a calculated value. Now here you might say that any sorting or filtering should be provided programmatically as part of the application. But depending on the size of the business and the need, they might not have the time or the resources to program everything that might be needed with the database. So being able to do sorting and filtering using the bulit-in Access tools is a big plus, IMO. So, those are my thoughts. Neil 1. As the level field is time-dependent would it not always have to be recalculated before/during use? If so, why not just use the calculation? 2. You think this would be beyond the casual user SELECT Orders.* FROM Orders WHERE ShippedDate > RequiredDate ORDER BY DateDiff("D", RequiredDate, ShippedDate) but updating the level field would not? -- lyle fairfield I will arise and go now, For always night and day I hear lake water lapping With low sounds by the shore; While I stand on the roadway Or on the pavements gray, I hear it in the deep heart's core. - Yeats |
#7
| |||
| |||
|
|
You can create a query; don't add any tables; click the SQL button; and then add the following: Update MyTable Set Level=1 Where EndDate<Date() If you want to ONLY update if the level was 2 (e.g., not 3), then you'd do: Update MyTable Set Level=1 Where EndDate<Date() AND Level=2 Save your query, and then, when you open it from the database window, it will update your records. (Be sure to substitute the actual name of your table for MyTable.) "Mintyman" <mintyman (AT) ntlworld (DOT) com> wrote in message news:NRZ1j.12827$Ew3.9757 (AT) newsfe7-gui (DOT) ntli.net... HI, I'm not that experienced in Access so am turning to the experts for some basic help. I have the following fields in a table : Name Type Level Number Start Date Date End Date Date Is it possible to have some code that will automatically change the value of 'level' from 2 to 1 if today's date is greater than 'End Date'? Effectively, I want the customer's access level to drop once their contract has run out. At the moment I have to keep an eye on when customer contracts are due to end and manually update the value in the 'level' field from 2 to 1. Can anyone show me how to do this? Thanks! |
#8
| |||
| |||
|
|
Hi Neil, Will this query only run when I run it in Access? I would like these values to be updated on a constant basis without me having to do anything. I wasn't sure if Access could do this or whether i'm getting confused with SQL stored proedures. An alternative would be to place the code on a webpage on my site that will be accessed on a daily basis. That way, the query could be triggered every time a visitor loads that specific page. "Neil" <nos... (AT) nospam (DOT) net> wrote in message news:dq_1j.1362$AR7.112 (AT) nlpi070 (DOT) nbdc.sbc.com... You can create a query; don't add any tables; click the SQL button; and then add the following: Update MyTable Set Level=1 Where EndDate<Date() If you want to ONLY update if the level was 2 (e.g., not 3), then you'd do: Update MyTable Set Level=1 Where EndDate<Date() AND Level=2 Save your query, and then, when you open it from the database window, it will update your records. (Be sure to substitute the actual name of your table for MyTable.) "Mintyman" <minty... (AT) ntlworld (DOT) com> wrote in message news:NRZ1j.12827$Ew3.9757 (AT) newsfe7-gui (DOT) ntli.net... HI, I'm not that experienced in Access so am turning to the experts for some basic help. I have the following fields in a table : Name Type Level Number Start Date Date End Date Date Is it possible to have some code that will automatically change the value of 'level' from 2 to 1 if today's date is greater than 'End Date'? Effectively, I want the customer's access level to drop once their contract has run out. At the moment I have to keep an eye on when customer contracts are due to end and manually update the value in the 'level' field from 2 to 1. Can anyone show me how to do this? Thanks! |
#9
| |||
| |||
|
|
Hi Neil, Will this query only run when I run it in Access? I would like these values to be updated on a constant basis without me having to do anything. I wasn't sure if Access could do this or whether i'm getting confused with SQL stored proedures. An alternative would be to place the code on a webpage on my site that will be accessed on a daily basis. That way, the query could be triggered every time a visitor loads that specific page. "Neil" <nospam (AT) nospam (DOT) net> wrote in message news:dq_1j.1362$AR7.112 (AT) nlpi070 (DOT) nbdc.sbc.com... You can create a query; don't add any tables; click the SQL button; and then add the following: Update MyTable Set Level=1 Where EndDate<Date() If you want to ONLY update if the level was 2 (e.g., not 3), then you'd do: Update MyTable Set Level=1 Where EndDate<Date() AND Level=2 Save your query, and then, when you open it from the database window, it will update your records. (Be sure to substitute the actual name of your table for MyTable.) "Mintyman" <mintyman (AT) ntlworld (DOT) com> wrote in message news:NRZ1j.12827$Ew3.9757 (AT) newsfe7-gui (DOT) ntli.net... HI, I'm not that experienced in Access so am turning to the experts for some basic help. I have the following fields in a table : Name Type Level Number Start Date Date End Date Date Is it possible to have some code that will automatically change the value of 'level' from 2 to 1 if today's date is greater than 'End Date'? Effectively, I want the customer's access level to drop once their contract has run out. At the moment I have to keep an eye on when customer contracts are due to end and manually update the value in the 'level' field from 2 to 1. Can anyone show me how to do this? Thanks! |
#10
| |||
| |||
|
|
An alternative would be to place the code on a webpage on my site that will be accessed on a daily basis. That way, the query could be triggered every time a visitor loads that specific page. |
![]() |
| Thread Tools | |
| Display Modes | |
| |