435,301 Members | 1,752 Online + Ask a Question
Need help? Post your question and get tips & solutions from a community of 435,301 IT Pros & Developers. It's quick & easy.

Increment number based on concatenated fields...

 P: 4 Hi there, I'm an advanced beginner, so please bear with me... I have a simple table that has four fields in it: Zone (which will store a three letter code such as ABC), Year (a four digit number field), Number (which is the problem field) and Label (which will be the concatenation of the previous three fields). There will be a variety of three letter codes stored in the Zone field (11 to be precise) and the Year field will have a very wide variety of 4-digit codes. What I'd like to do (if possible) is to populate the number field based on the concatenation of the Zone and Year fields. For example, if the Zone is ABC and the Year 1987 and this is the first occurrence in the table of this combination, then the Number field should read 1. If there's another occurrence of ABC + 1987 down the road, then the Number field should increment to 2, and so on. The Zone and Year fields will be entered via a form and I'd like the Number field to populate itself automatically. Is there a VBA solution to this? I'm assuming it's too complicated for an expression... Any advice would be appreciated! Thank you, Jo May 9 '07 #1
3 Replies

 Expert 100+ P: 603 Hi there, I'm an advanced beginner, so please bear with me... I have a simple table that has four fields in it: Zone (which will store a three letter code such as ABC), Year (a four digit number field), Number (which is the problem field) and Label (which will be the concatenation of the previous three fields). There will be a variety of three letter codes stored in the Zone field (11 to be precise) and the Year field will have a very wide variety of 4-digit codes. What I'd like to do (if possible) is to populate the number field based on the concatenation of the Zone and Year fields. For example, if the Zone is ABC and the Year 1987 and this is the first occurrence in the table of this combination, then the Number field should read 1. If there's another occurrence of ABC + 1987 down the road, then the Number field should increment to 2, and so on. The Zone and Year fields will be entered via a form and I'd like the Number field to populate itself automatically. Is there a VBA solution to this? I'm assuming it's too complicated for an expression... Any advice would be appreciated! Thank you, Jo How about something like this in the after update of one of your fields...Sorry if I got the field names wrong..you get the idea Expand|Select|Wrap|Line Numbers if nz(dmax("number","yourtable","code ='" & me.code & "' and "year" = me.year), 0)=0 then me.number = 1 else me.number = dmax("number","yourtable","code ='" & me.code & "' and "year" = me.year) + 1 end if   May 9 '07 #2

 P: 4 Wow! Smokin' fast response there... With a few minor tweaks, that worked! Here's the code that worked for me: Expand|Select|Wrap|Line Numbers     If Nz(DMax("Number", "map", "left(Label,7)='" & Me.Zone & Me.Year & "'"), 0) = 0 Then         Me.Number = 1     Else         Me.Number = DMax("Number", "map", "left(Label,7)='" & Me.Zone & Me.Year & "'") + 1     End If   Thank you for the help! Cheers, Jo May 9 '07 #3

 Expert 100+ P: 603 Wow! Smokin' fast response there... With a few minor tweaks, that worked! Here's the code that worked for me: Expand|Select|Wrap|Line Numbers     If Nz(DMax("Number", "map", "left(Label,7)='" & Me.Zone & Me.Year & "'"), 0) = 0 Then         Me.Number = 1     Else         Me.Number = DMax("Number", "map", "left(Label,7)='" & Me.Zone & Me.Year & "'") + 1     End If   Thank you for the help! Cheers, Jo Anytime, J May 9 '07 #4 