473,778 Members | 1,913 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

Church Database alphabetical assignment

105 New Member
Hi everyone!

I have a church database that keeps track of all of our church's members: first and last name, email address, phone number, home address (street, city, zipcode).

I was wondering....

Every Sunday morning one of the members stands before the congregation in the pulpit and reads about 10 verses from the Bible. After we read through the entire Bible (which takes about 2 1/2 to 3 years), we start over. Every Sunday, it's someone DIFFERENT that reads a DIFFERENT set of verses.

We HAVE been keeping up with who read Iast, what they read, who reads next, and what they WILL read on paper. However, I want to give our church the ability to use our member database to do this...maybe print out a report. You know, to keep track of which member read last and which verses were read, but don't want to have to enter it automatically each month...I want it to cycle through our members alphabetically and assign the Bible verses.

Is there a way to do this, does anyone have an ideas? Make use of a new table?
Mar 2 '08 #1
10 2548
Scott Price
1,384 Recognized Expert Top Contributor
The ability to do this depends entirely on your motivation to learn more about databases and especially VBA. This is not a task for the faint of heart!

What you are asking is to change the structure of your database from primarily being a vehicle to store information to being an activity based scheduler.

It is possible, but first of all, let me suggest that you read a couple of the good books on Access, make sure they're at least 2 inches thick (not a joke). Also, may I suggest reading through Database Design for Mere Mortals 2nd Edition by Mike Hernandez. You can find it on Amazon for a few dollars, and it will do wonders for you in planning and designing the database you want.

Kind regards,
Scott
Mar 2 '08 #2
Scott Price
1,384 Recognized Expert Top Contributor
Actually I see from looking at your past threads that you do know something about VBA, which makes me think a little more positively about what you are attempting :-)

Would you mind posting the table structure of your current database, and how you are thinking about implementing the scheduling changes?

Regards,
Scott
Mar 2 '08 #3
jmarcrum
105 New Member
Actually I see from looking at your past threads that you do know something about VBA, which makes me think a little more positively about what you are attempting :-)

Would you mind posting the table structure of your current database, and how you are thinking about implementing the scheduling changes?

Regards,
Scott
Hey Scott,

Man thanks for showing interest in my problem! I have several tables, but the three of which I am concerned with are tblMember, tblMenDuties, and tblMenWorshipOp portunity. In tblMenWorshipOp portunity I have 15 different opportunities for "participat ing" in worship, one of which is "Read." The table tblMenDuties utilizes a one-to-many relationship in which I have designed a user-input form to assign opportunities (from tblMenWorshipOp portunity) to a selected member from tblMember.

I am really in a state of "thinking" about what to do now. It's like you said, I know a bit of VBA, and a bit of ACCESS, however, I'm a bit stuck, lol. And like you said, it no longer can just be a storage database. I have about 300 records in tblMember. Now, I want to do something with those members.

I have a query that pulls from tblMenDuties all of the members that wish to "Read". It's sorted in alphabetical order by member last name. I want to make another table (maybe tblRead) to input who read this week 3/2/2008 and automatically pull the next alphabetical name from the query to make a new record with next Sunday's date.

Really, it'd be a continuous process throughout the year...after the last record in the query has been reached (the list of members who want to read), the list will start over, with the first member in the query "alphabetically " and we can continue taking turns reading the Bible.

You're right....this is gonna be tough (sigh...haha)

Thanks,
Joseph
Mar 3 '08 #4
Scott Price
1,384 Recognized Expert Top Contributor
I'll try to help your thinking process along with a few questions:

Are you planning to automatically assign the scripture verses to the member? If so, where does that data come from, or where will it come from in your database? Do you currently have a list of readings stored in a table in the database?

How will you deal with an absentee member?

If the reading session is predicated by date, how will you deal with a missed session due to fire, flood, hurricane, war (perish forbid), etc?

Setting the automatic part isn't going to be as hard as dealing with the unexpected once the automatic part gets going!

Regards,
Scott
Mar 3 '08 #5
jmarcrum
105 New Member
I'll try to help your thinking process along with a few questions:

Are you planning to automatically assign the scripture verses to the member? If so, where does that data come from, or where will it come from in your database? Do you currently have a list of readings stored in a table in the database?

How will you deal with an absentee member?

If the reading session is predicated by date, how will you deal with a missed session due to fire, flood, hurricane, war (perish forbid), etc?

Setting the automatic part isn't going to be as hard as dealing with the unexpected once the automatic part gets going!

Regards,
Scott
Ok, you're getting me to thinking now. That automatic assigning of the verses is gonna kill me. If I make a table of verses that could take a month or so to complete alone. If I get the user to input the verses into a textbox, I could set a control source, but then again, that wouldn't be "automatic" .

I want the user to be able to select a year and a month and hit Go, and it assign members to readings on a respective date.

The absentee member is simple IMO. If a member is absent, a deacon just finds someone else from the congregation to "fill in" for the duty, no problem. If a member is absent, then that member just misses their opportunity. Their name is still in the qryWantsToRead, so their name will eventually come back around...

The same thing goes for a missed session due to a disaster. If a session is missed...it's just missed. I want the database to continue cycling through the query and making assignments.

Basically, this "making assignments" is just so our church can have an "ideal" electronic representation of who should be doing what, when.

Thanks again for your advice I hope we can keep talking! Am I on the right track?

Thanks,
Joseph
Mar 3 '08 #6
Scott Price
1,384 Recognized Expert Top Contributor
I think you're on the right track, just keep thinking!

The missed date issue may be a little tougher than you think... For example, assigning a member and a reading to a date isn't hard, but what happens when the date is missed? Do you just keep going without reading that passage? Does the same member read the next session?

These adjustments are easy to make in real life on the fly, but teaching a database to react to the unexpected isn't as easy! What will happen is that the database will treat a missed date as not missed and will happily continue to generate the assignments. However, if you want to be equable about it, and decide that, in fact, the member who was assigned to read on a missed date, should read on the next available date instead, how are you going to make your database reflect that change?

A related point that I've been assuming up to now, is that you intend to print out a report that reflects who reads what on which date... If so, this brings my question up again, how do you account for a missed member and a missed session?

Automatically assigning the member will generate a report with that member. If the member misses, the next in line will be assigned on the spot by the deacon to fill in, but how are you going to tell the database to skip the fill-in the next go-round?

Do you see what I'm getting at now? The automatic assignment isn't that difficult to create in a bare-bones sort of way. I'm referring to these other issues when I say it's difficult.

You can create it with just a few more tables, a few more queries and a bit of code. All I'm trying to help you do is foresee as many unexpected events as possible in order to provide for these when you begin to design the actual structure and later when you start coding. Otherwise you'll get it operational in a short (relatively speaking) time, then be disappointed, frustrated and ultimately dejected when you have to start over again and go through the structure re-designing and re-coding.

Keep the thoughts coming!

Regards,
Scott
Mar 3 '08 #7
jmarcrum
105 New Member
I think you're on the right track, just keep thinking!

The missed date issue may be a little tougher than you think... For example, assigning a member and a reading to a date isn't hard, but what happens when the date is missed? Do you just keep going without reading that passage? Does the same member read the next session?

These adjustments are easy to make in real life on the fly, but teaching a database to react to the unexpected isn't as easy! What will happen is that the database will treat a missed date as not missed and will happily continue to generate the assignments. However, if you want to be equable about it, and decide that, in fact, the member who was assigned to read on a missed date, should read on the next available date instead, how are you going to make your database reflect that change?

A related point that I've been assuming up to now, is that you intend to print out a report that reflects who reads what on which date... If so, this brings my question up again, how do you account for a missed member and a missed session?

Automatically assigning the member will generate a report with that member. If the member misses, the next in line will be assigned on the spot by the deacon to fill in, but how are you going to tell the database to skip the fill-in the next go-round?

Do you see what I'm getting at now? The automatic assignment isn't that difficult to create in a bare-bones sort of way. I'm referring to these other issues when I say it's difficult.

You can create it with just a few more tables, a few more queries and a bit of code. All I'm trying to help you do is foresee as many unexpected events as possible in order to provide for these when you begin to design the actual structure and later when you start coding. Otherwise you'll get it operational in a short (relatively speaking) time, then be disappointed, frustrated and ultimately dejected when you have to start over again and go through the structure re-designing and re-coding.

Keep the thoughts coming!

Regards,
Scott
Hey Scott!

Wow you are amzingly fast at your responses!!! I thank you so much!!!

I like everything that you've mentioned. There's absolutely no way I'll be able to get around skipping the "fill-in". I'll have to work on that one a bit more. You're right about the report. The paper will say that joe jones read proverbs 1:1-10 on 3/2/2008 and bob bradley should read proverbs 1:11-20 on 3/9/2008, but if joe is absent and bob has to fill-in for joe, that's ok in person...but the database needs to know that bob and joe should now "swap places" in a manner of speaking. Good thoughts Scott, I really appreciate it!

I was wondering though, how do I go about getting this started? I know that's a loaded question, because we've been talking about getting it started this whole time. I know I have to work out these bugs in my head before I can really get crackin, but...once I do, you were saying that it would be relatively simple to get a couple of tables going and set to the grindstone...

What is the best way to go at this?
Mar 3 '08 #8
Scott Price
1,384 Recognized Expert Top Contributor
To get started, plan the table structure on paper, paying especial attention to the relationships you'll have between the tables.

For example, I would personally consider the references to need at least two tables... tblBooks with fields, BookID, BookName, NumChapters. Example data: 1, Genesis, 50. Second table: tblChapters with fields, ChapterID, BookID, ChapterNum, NumVerses. Example data: 1, 1, 1, 31. If you wanted to list the text associated with each verse you would need a third table (you probably don't want to get into re-typing the entire Bible a verse at a time, though :-)

You have a One to Many relationship between tblBooks and tblChapters.

Next think of a way to write a function in VBA that you can call from within a query that will first of all take a starting reference, compare it with the number of verses in the chapter, then return a string concatenated with the book name, chapter number and the next 10 verses starting from the reference given. Decide how you are going to handle when the chapter contains a number of verses that isn't divisible by 10: are you going to add the remaining x number of verses from the next chapter?

You'll likely need another table to hold the last-read reference to use in this function; call it tblReadReferenc es with RefID, BookID, ChapterID, Verses (the verses field violates one of the normal form rules of database design, but we might be able to get away with it, we'll see...)

This is just an example of where I would start!

Regards,
Scott
Mar 3 '08 #9
jmarcrum
105 New Member
To get started, plan the table structure on paper, paying especial attention to the relationships you'll have between the tables.

For example, I would personally consider the references to need at least two tables... tblBooks with fields, BookID, BookName, NumChapters. Example data: 1, Genesis, 50. Second table: tblChapters with fields, ChapterID, BookID, ChapterNum, NumVerses. Example data: 1, 1, 1, 31. If you wanted to list the text associated with each verse you would need a third table (you probably don't want to get into re-typing the entire Bible a verse at a time, though :-)

You have a One to Many relationship between tblBooks and tblChapters.

Next think of a way to write a function in VBA that you can call from within a query that will first of all take a starting reference, compare it with the number of verses in the chapter, then return a string concatenated with the book name, chapter number and the next 10 verses starting from the reference given. Decide how you are going to handle when the chapter contains a number of verses that isn't divisible by 10: are you going to add the remaining x number of verses from the next chapter?

You'll likely need another table to hold the last-read reference to use in this function; call it tblReadReferenc es with RefID, BookID, ChapterID, Verses (the verses field violates one of the normal form rules of database design, but we might be able to get away with it, we'll see...)

This is just an example of where I would start!

Regards,
Scott
Scott dude!

You are awesome!! Got me thinking sooooo well on this project. You gotta love this forum!!!

Thanks Scott!
Thanks theScripts!!
Mar 4 '08 #10

Sign in to post your reply or Sign up for a free account.

Similar topics

10
4686
by: TS | last post by:
I hope someone here can help me. We are currently looking at redeveloping the membership database for out church. It is mainly usd to hold details of our members, produce reports etc. I am investigating both mysql and MS Access. Ultimately I would like the front end to be browser based, both for querying and entering data. Are there basic membership databases that can be downloaded from the web
3
2057
by: Tim Dempsey | last post by:
Folks, I need some advice. I hpoe some of you can advise me. Our church's weekly bulletin has been published on paper for years. It is created in MS Word and sent to the publishing company. Now I need to publish the same information on our new web site. But I don't want to put an image of the paper bulletin on the web site. I want it to look natural there, as if it were produced with god web design principles.
1
5079
by: Eric Lilja | last post by:
Hello, in my program I need to ask the user to input some alphabetical letters. Case should not matter. Any input that isn't an alphabetical letter should be rejected and the user prompted to try again. I came up with: std::cout << "Type a letter: "; char c = '\0'; while(!(std::cin >> c) || !std::isalpha(c))
8
5033
by: RibGnaw | last post by:
Long, long ago when Access 97 first hit the streets a sample database called Northwind was shipped with it. At that time a number of articles had been posted on the correct procedure to remove all the sample data. Does anyone out there still have this information?
5
10647
by: nbbrindisi | last post by:
First, I work with a small church (about 100 people). We need a database to handle basic information like name, address, family members, joined church birthdate and etc. We really don't need to use something elaborate. I've already suggested a free solution but they'd rather get a low cost commercial solution. Mind you, the app has to be easy for non computer saavvy users. Thanks in advance!
5
3011
by: Bec | last post by:
I'm in desperate need of your help.. I need to build an access database and have NO idea how to do this.. Not even where to start.. It IS for school, and am not asking anyone to do my homework for me.. I am merely asking for help, perhaps pointers as to where to begin.. I've never used access before.. I'm rather cluey when it comes to
4
1105
by: Bobby | last post by:
Hi. I am working on checking and adding to an Access 2000 database. The database is being used in a Visual Basic application. I don't know much about technology so i would need an easy-to-understand answer, if possible. (The database is divided into five categories.) After I have added to or edited some entries and then go to the program itself, the various drop down boxes are supposed to show the entries in alphabetical order but...
2
1600
by: David Veeneman | last post by:
Is there any way to change the default view in Visual Studio's property editors from categorical to alphabetized? I'm getting awfully tired of clicking the A-Z icon every time I open a collection editor. Thanks -- David Veeneman Foresight Systems
2
4182
by: pavanip | last post by:
Hi, I have a problem with binding data to dropdownlist from database in alphabetical order. My database contains some fields like All,Air,Airline,Books,Cars etc. There are 2 dropdown lists one dropdown contains A to Z list like A,B,C,D..Z. 2nd list contains above items like All,Air,Books.Now I want that when I select A from A-Z list it will display A items in alphabetical order and the Top item should be "All" after that remaining...
0
9465
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can effortlessly switch the default language on Windows 10 without reinstalling. I'll walk you through it. First, let's disable language synchronization. With a Microsoft account, language settings sync across devices. To prevent any complications,...
0
10296
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed. This is as boiled down as I can make it. Here is my compilation command: g++-12 -std=c++20 -Wnarrowing bit_field.cpp Here is the code in...
0
10127
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that captivates audiences and drives business growth. The Art of Business Website Design Your website is...
1
10068
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows Update option using the Control Panel or Settings app; it automatically checks for updates and installs any it finds, whether you like it or not. For most users, this new feature is actually very convenient. If you want to control the update process,...
0
9923
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the choice of these technologies. I'm particularly interested in Zigbee because I've heard it does some...
0
6723
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and then checking html paragraph one by one. At the time of converting from word file to html my equations which are in the word document file was convert into image. Globals.ThisAddIn.Application.ActiveDocument.Select();...
0
5370
by: TSSRALBI | last post by:
Hello I'm a network technician in training and I need your help. I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs. The last exercise I practiced was to create a LAN-to-LAN VPN between two Pfsense firewalls, by using IPSEC protocols. I succeeded, with both firewalls in the same network. But I'm wondering if it's possible to do the same thing, with 2 Pfsense firewalls...
0
5497
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
1
4031
by: 6302768590 | last post by:
Hai team i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated we have to send another system

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.