DYNAMIC STUDENT DATABASE

B

Brad Hodges

I am an administrator over military courses. I'm trying to slim down an
overly redundant database. I would like to make it as dynamic as possible.
I have two records in the same table; Graduation date and status.
Can I have a graduation date automatically another field called status which
currently is either "active" or "history" without using a manual "update
query" process? I would assuse it's a simple select statement in the status
field but need help.
 
P

Piet Linden

I am an administrator over military courses.  I'm trying to slim down an
overly redundant database.  I would like to make it as dynamic as possible.  
I have two records in the same table;  Graduation date and status.
Can I have a graduation date automatically another field called status which
currently is either "active" or "history" without using a manual "update
query" process?  I would assuse it's a simple select statement in the status
field but need help.

Sounds like you mean two columns, not two records.

If so, then you can use the AfterUpdate event of the graduation date
do something like

Sub GraduationDate_AfterUpdate()
If Me.GraduationDate<Date() Then 'Graduation Date is before
the currentdate
Me.Status="History"
End If
End Sub
 
S

Steve

You can put code in the AfterUpdate event of the Graduation Date field that
automatically fills in the Status field when you enter the Graduation Date.

Steve
(e-mail address removed)
 
B

Brad Hodges

Piet Linden,

Thank you very much for the prompt response. Where do I insert that sub at?
I've taken a VB course, but very little training on VB in Access.
 
F

Fred

Brad,

It's quite possible that when you examine your other particulars, you may
find that "status" needn't or shouldn't be a field. E.G. if it is purely
derived from other fields, that derivation could be done when the status info
is needed.
 
B

Brad Hodges

Fred,

Thank you very much. I agree. The only reason I let this field remain is
that the existing database has counters for the two types of students which
populates data in the default form currently being used as a quasi
switchboardt based off an "admin table" which is a query off the main table.
Like I said initially, alot of redundancies!!!
 
J

John W. Vinson

I am an administrator over military courses. I'm trying to slim down an
overly redundant database. I would like to make it as dynamic as possible.
I have two records in the same table; Graduation date and status.
Can I have a graduation date automatically another field called status which
currently is either "active" or "history" without using a manual "update
query" process? I would assuse it's a simple select statement in the status
field but need help.

If the status is "active" up until the graduation date, and "history"
thereafter, then the Status field should *simply not exist* in your table at
all. It can be calculated on the fly in a query:

Status: IIF(NZ([Graduation date], Date()) >= Date(), "Active", "History")
 
B

Brad Hodges

John,

Thank you very much. I'm not sure what this creates. I have an admin table
(query) which is derived from an allstudent table. How do I eliminate the
status column yet allow the query to function? What is "NZ" in your example?
Is this a pseudoname? Thanks again.

John W. Vinson said:
I am an administrator over military courses. I'm trying to slim down an
overly redundant database. I would like to make it as dynamic as possible.
I have two records in the same table; Graduation date and status.
Can I have a graduation date automatically another field called status which
currently is either "active" or "history" without using a manual "update
query" process? I would assuse it's a simple select statement in the status
field but need help.

If the status is "active" up until the graduation date, and "history"
thereafter, then the Status field should *simply not exist* in your table at
all. It can be calculated on the fly in a query:

Status: IIF(NZ([Graduation date], Date()) >= Date(), "Active", "History")
 
J

John W. Vinson

John,

Thank you very much. I'm not sure what this creates. I have an admin table
(query) which is derived from an allstudent table. How do I eliminate the
status column yet allow the query to function? What is "NZ" in your example?
Is this a pseudoname? Thanks again.

Is your admin table a table, or a query? They are NOT THE SAME THING: a table
is actual stored data on disk, and a query is a volatile derived object
extracting data from a table (or tables). My suggestion is a Query which will
include a field named Status, containing either "active" or "history",
depending on the value of the date field.

NZ() is a built in function in Access that converts a NULL value to its second
argument, so

IIF(NZ([Graduation date], Date()) >= Date(), "Active", "History")

will use today's date in the comparison if [Graduation date] is NULL; this
will ensure that a record with no graduation date specified is shown as Active
(along with those with a graduation date in the future). Graduation dates that
are in the past will be shown as "History".
 
B

Brad Hodges

John,

I'm sorry. I know the difference. I should have used quotes--the name of
the query is "admin table" which is created by using the allstudentdata which
currently is the "catch-all" redundant unnormalized table. Every fiscal year
each new class starts over with a different number. "Basic Writing"
001-2009", "002-2009" and so on, and as of 01 October, Basic Writing
"001-2010", "002-2010" and so son. I have commencement dates, graduation
dates, status field, and a whole lot more. I've broken it down to classes,
with classID PK, and session with classID FK, but fuzzy after that. I'll
repost this question in the appropriate blog.
Thank you so much John. You're fantastic. Where do I put the NZ code?

John W. Vinson said:
John,

Thank you very much. I'm not sure what this creates. I have an admin table
(query) which is derived from an allstudent table. How do I eliminate the
status column yet allow the query to function? What is "NZ" in your example?
Is this a pseudoname? Thanks again.

Is your admin table a table, or a query? They are NOT THE SAME THING: a table
is actual stored data on disk, and a query is a volatile derived object
extracting data from a table (or tables). My suggestion is a Query which will
include a field named Status, containing either "active" or "history",
depending on the value of the date field.

NZ() is a built in function in Access that converts a NULL value to its second
argument, so

IIF(NZ([Graduation date], Date()) >= Date(), "Active", "History")

will use today's date in the comparison if [Graduation date] is NULL; this
will ensure that a record with no graduation date specified is shown as Active
(along with those with a graduation date in the future). Graduation dates that
are in the past will be shown as "History".
 
J

John W. Vinson

John,

I'm sorry. I know the difference. I should have used quotes--the name of
the query is "admin table" which is created by using the allstudentdata which
currently is the "catch-all" redundant unnormalized table. Every fiscal year
each new class starts over with a different number. "Basic Writing"
001-2009", "002-2009" and so on, and as of 01 October, Basic Writing
"001-2010", "002-2010" and so son. I have commencement dates, graduation
dates, status field, and a whole lot more. I've broken it down to classes,
with classID PK, and session with classID FK, but fuzzy after that. I'll
repost this question in the appropriate blog.
Thank you so much John. You're fantastic. Where do I put the NZ code?

As a calculated field somewhere in the query [admin table], I presume...
 
B

Brad Hodges

John,

It worked like a charm! Thank you very much. If only I can figure out the
DCOUNT function, I will be in pretty good shape.

John W. Vinson said:
John,

I'm sorry. I know the difference. I should have used quotes--the name of
the query is "admin table" which is created by using the allstudentdata which
currently is the "catch-all" redundant unnormalized table. Every fiscal year
each new class starts over with a different number. "Basic Writing"
001-2009", "002-2009" and so on, and as of 01 October, Basic Writing
"001-2010", "002-2010" and so son. I have commencement dates, graduation
dates, status field, and a whole lot more. I've broken it down to classes,
with classID PK, and session with classID FK, but fuzzy after that. I'll
repost this question in the appropriate blog.
Thank you so much John. You're fantastic. Where do I put the NZ code?

As a calculated field somewhere in the query [admin table], I presume...
 
J

John W. Vinson

It worked like a charm! Thank you very much. If only I can figure out the
DCOUNT function, I will be in pretty good shape.

If you'll post what you're trying to do with DCount() and in what context,
we'll be glad to try to help. It's pretty easy:

DCount("*", "table or query name", "optional criteria")

will count the number of records in a table or query which meet the criteria
you specify. The criterea need to be a String which is a valid SQL WHERE
clause; if you can build a query to retrieve the records you want, you can use
View... SQL to see what the WHERE clause looks like.
 
D

Dale Fye

Brad,

Just my 2 cents. You might want to consider using a naming convention so
that when you look at an object name, you can tell what it is. I would also
recommend (for future use) not putting spaces in table, field, or any other
object names.

I use the prefix "tbl_" for all my tables and the prefix "qry_" for all my
queries.
If a query is for a form (either the form or a control on the form), I use
something like: qry_frm_Admin, or qry_frm_Admin_cbo_Students

Do the same for queries related to forms. This allows me to look at my list
of queries and know exactly what they are being used for.

----
HTH
Dale



Brad Hodges said:
John,

I'm sorry. I know the difference. I should have used quotes--the name of
the query is "admin table" which is created by using the allstudentdata which
currently is the "catch-all" redundant unnormalized table. Every fiscal year
each new class starts over with a different number. "Basic Writing"
001-2009", "002-2009" and so on, and as of 01 October, Basic Writing
"001-2010", "002-2010" and so son. I have commencement dates, graduation
dates, status field, and a whole lot more. I've broken it down to classes,
with classID PK, and session with classID FK, but fuzzy after that. I'll
repost this question in the appropriate blog.
Thank you so much John. You're fantastic. Where do I put the NZ code?

John W. Vinson said:
John,

Thank you very much. I'm not sure what this creates. I have an admin table
(query) which is derived from an allstudent table. How do I eliminate the
status column yet allow the query to function? What is "NZ" in your example?
Is this a pseudoname? Thanks again.

Is your admin table a table, or a query? They are NOT THE SAME THING: a table
is actual stored data on disk, and a query is a volatile derived object
extracting data from a table (or tables). My suggestion is a Query which will
include a field named Status, containing either "active" or "history",
depending on the value of the date field.

NZ() is a built in function in Access that converts a NULL value to its second
argument, so

IIF(NZ([Graduation date], Date()) >= Date(), "Active", "History")

will use today's date in the comparison if [Graduation date] is NULL; this
will ensure that a record with no graduation date specified is shown as Active
(along with those with a graduation date in the future). Graduation dates that
are in the past will be shown as "History".
 
S

Steve

Amen to the naming convention! I use the same convention except I don't use
the underline; it's just extra baggage. Further, I separate subforms from
main forms by using SFrm as a prefix for subforms. Likewise, main reports
are Rpt... and subreports are SRpt.

Steve
(e-mail address removed)


Dale Fye said:
Brad,

Just my 2 cents. You might want to consider using a naming convention so
that when you look at an object name, you can tell what it is. I would
also
recommend (for future use) not putting spaces in table, field, or any
other
object names.

I use the prefix "tbl_" for all my tables and the prefix "qry_" for all my
queries.
If a query is for a form (either the form or a control on the form), I use
something like: qry_frm_Admin, or qry_frm_Admin_cbo_Students

Do the same for queries related to forms. This allows me to look at my
list
of queries and know exactly what they are being used for.

----
HTH
Dale



Brad Hodges said:
John,

I'm sorry. I know the difference. I should have used quotes--the name
of
the query is "admin table" which is created by using the allstudentdata
which
currently is the "catch-all" redundant unnormalized table. Every fiscal
year
each new class starts over with a different number. "Basic Writing"
001-2009", "002-2009" and so on, and as of 01 October, Basic Writing
"001-2010", "002-2010" and so son. I have commencement dates, graduation
dates, status field, and a whole lot more. I've broken it down to
classes,
with classID PK, and session with classID FK, but fuzzy after that. I'll
repost this question in the appropriate blog.
Thank you so much John. You're fantastic. Where do I put the NZ code?

John W. Vinson said:
On Tue, 8 Sep 2009 14:18:26 -0700, Brad Hodges

John,

Thank you very much. I'm not sure what this creates. I have an admin
table
(query) which is derived from an allstudent table. How do I eliminate
the
status column yet allow the query to function? What is "NZ" in your
example?
Is this a pseudoname? Thanks again.

Is your admin table a table, or a query? They are NOT THE SAME THING: a
table
is actual stored data on disk, and a query is a volatile derived object
extracting data from a table (or tables). My suggestion is a Query
which will
include a field named Status, containing either "active" or "history",
depending on the value of the date field.

NZ() is a built in function in Access that converts a NULL value to its
second
argument, so

IIF(NZ([Graduation date], Date()) >= Date(), "Active", "History")

will use today's date in the comparison if [Graduation date] is NULL;
this
will ensure that a record with no graduation date specified is shown as
Active
(along with those with a graduation date in the future). Graduation
dates that
are in the past will be shown as "History".
 
B

Brad Hodges

Dale,

Thank you very much for your "two cents" which in my small disorganized
brain is fifty dollars!! I totally admire your style, yet wonder how many of
those MVP's out there actually using naming conventions these days.

Dale Fye said:
Brad,

Just my 2 cents. You might want to consider using a naming convention so
that when you look at an object name, you can tell what it is. I would also
recommend (for future use) not putting spaces in table, field, or any other
object names.

I use the prefix "tbl_" for all my tables and the prefix "qry_" for all my
queries.
If a query is for a form (either the form or a control on the form), I use
something like: qry_frm_Admin, or qry_frm_Admin_cbo_Students

Do the same for queries related to forms. This allows me to look at my list
of queries and know exactly what they are being used for.

----
HTH
Dale



Brad Hodges said:
John,

I'm sorry. I know the difference. I should have used quotes--the name of
the query is "admin table" which is created by using the allstudentdata which
currently is the "catch-all" redundant unnormalized table. Every fiscal year
each new class starts over with a different number. "Basic Writing"
001-2009", "002-2009" and so on, and as of 01 October, Basic Writing
"001-2010", "002-2010" and so son. I have commencement dates, graduation
dates, status field, and a whole lot more. I've broken it down to classes,
with classID PK, and session with classID FK, but fuzzy after that. I'll
repost this question in the appropriate blog.
Thank you so much John. You're fantastic. Where do I put the NZ code?

John W. Vinson said:
On Tue, 8 Sep 2009 14:18:26 -0700, Brad Hodges

John,

Thank you very much. I'm not sure what this creates. I have an admin table
(query) which is derived from an allstudent table. How do I eliminate the
status column yet allow the query to function? What is "NZ" in your example?
Is this a pseudoname? Thanks again.

Is your admin table a table, or a query? They are NOT THE SAME THING: a table
is actual stored data on disk, and a query is a volatile derived object
extracting data from a table (or tables). My suggestion is a Query which will
include a field named Status, containing either "active" or "history",
depending on the value of the date field.

NZ() is a built in function in Access that converts a NULL value to its second
argument, so

IIF(NZ([Graduation date], Date()) >= Date(), "Active", "History")

will use today's date in the comparison if [Graduation date] is NULL; this
will ensure that a record with no graduation date specified is shown as Active
(along with those with a graduation date in the future). Graduation dates that
are in the past will be shown as "History".
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top