tag:blogger.com,1999:blog-19399412930028548422024-03-04T22:13:37.692-08:00... GPG On MS AccessIt's all about the data.Grover Park Georgehttp://www.blogger.com/profile/14873826635955561997noreply@blogger.comBlogger105125tag:blogger.com,1999:blog-1939941293002854842.post-88017818289142486672020-04-14T17:26:00.002-07:002020-04-14T17:26:38.784-07:00COVID-19 Supplies Tracking DatabaseMy friend, Juan Soto, at IT Impact, has created a free tool for small, isolated teams working to combat COVID-19 in their communities. His team put the tool together over the past couple of weeks and he's ready to make it available now. Go to COVID-19 Supplies Tracking Database and download it. Once you've installed it from the internet download, it will run locally on your computer or laptop Grover Park Georgehttp://www.blogger.com/profile/14873826635955561997noreply@blogger.comtag:blogger.com,1999:blog-1939941293002854842.post-55806856428726410842020-03-31T12:40:00.001-07:002020-04-01T07:41:40.615-07:00Don't It Make My Brown Eyes Blue
The Role of Ambiguity in Real Life and Relational Database Applications
For a long time I have maintained that ambiguity is not good in a relational database application even though it is required in humor, poetry, politics, and as it turns out, in song lyrics—"Don't it make my brown eyes blue". That line depends on the dual, i.e. ambiguous, meaning of "blue". To get it, you have to be Grover Park Georgehttp://www.blogger.com/profile/14873826635955561997noreply@blogger.comtag:blogger.com,1999:blog-1939941293002854842.post-79761904825264041042020-03-27T08:26:00.001-07:002020-03-27T08:36:00.723-07:00I'm Not a Manager, I Just Play One in the EmployeeRoles TableLast time out I outlined a couple of different ways to understand tables (the names of things) and fields (attributes of those things) in terms of our natural language understanding of common rhetorical structures.
I explained two of the X and Y rhetorical structures at work.
X is ONE KIND OF Y.
X is AN ATTRIBUTE OF Y.
I offered the examples of departments within an organization and Grover Park Georgehttp://www.blogger.com/profile/14873826635955561997noreply@blogger.comtag:blogger.com,1999:blog-1939941293002854842.post-17858327092124055722020-03-26T07:50:00.001-07:002020-03-27T06:34:31.861-07:00You Say Whatchamacallit, I Say DepartmentLast time out I tried to explain some of my thinking behind selecting the names of things we need to track in a relational database application. Specifically, I likened them to the nouns of a natural language as a way to help differentiate between entities themselves and the attributes that qualify them. It's more complex than that, though. Let's drill into one aspect of that complexity using theGrover Park Georgehttp://www.blogger.com/profile/14873826635955561997noreply@blogger.comtag:blogger.com,1999:blog-1939941293002854842.post-29256766461672009862020-03-19T10:29:00.001-07:002020-03-19T11:09:17.643-07:00I Need One of Those Whatchamacallits
Tables—The "Nouns" of the Database Language
The first rule of normalization specifies how fields and columns in a table should be set up. The other rules add greater specificity. However, in my opinion, before we can even get to that point, we have to have a clear idea of what the table itself should look like. I like to make the analogy that the tables in a relational database application playGrover Park Georgehttp://www.blogger.com/profile/14873826635955561997noreply@blogger.comtag:blogger.com,1999:blog-1939941293002854842.post-45370763904876224312020-03-13T08:55:00.000-07:002020-03-16T05:54:35.727-07:00Answering the Big Questions with Simple Answers
Mathematical and Linguistic Logic — The Rules of Normalization and the Rules of Rhetoric.
Relational database design is based on predicate logic mathematics, more specifically, the mathematical theory of sets.
Unfortunately for many folks, the mathematics involved tend to be dauntingly complex. And I'm speaking from personal experience here.
At least partly for that Grover Park Georgehttp://www.blogger.com/profile/14873826635955561997noreply@blogger.comtag:blogger.com,1999:blog-1939941293002854842.post-21448742200047377612020-03-10T07:11:00.001-07:002020-03-10T07:15:55.050-07:00Speaking of Relationships, How You Doin' ?Many years ago I first started thinking about relationships. At that point, I was studying language and linguistics in preparation for what I thought would be a career in teaching English. That relationship didn't work out.
Many years later I discovered MS Access and fell in love all over again, starting another relationship that's lasted quite a bit longer.
What I didn't realize at the Grover Park Georgehttp://www.blogger.com/profile/14873826635955561997noreply@blogger.comtag:blogger.com,1999:blog-1939941293002854842.post-34361303976029154372020-03-09T13:27:00.002-07:002020-03-09T14:07:36.636-07:00I May Have Been Ahead of Myself By 20 YearsFirst, a bit of background is in order. Recently, my ex-wife and her new husband suggested, if that's the right word, I might want to remove a few boxes of my things from their garage. They've been patient for a while, so even though I have no space for it all here, I went and picked them up.
One of those boxes contains papers I wrote while working on an advanced degree in English in the early Grover Park Georgehttp://www.blogger.com/profile/14873826635955561997noreply@blogger.comtag:blogger.com,1999:blog-1939941293002854842.post-56872411022691095702020-01-02T12:27:00.003-08:002020-01-02T12:54:29.014-08:00All At Once or One At a Time?
Like most Access developers, I pay a lot of attention to the technical aspects of creating tables in a Relational Database Application. Making sure all of the relevant entities are identified and tables are built for them. Identifying relationships between those entities and defining Primary and Foreign Keys to support and enforce referential integrity within those relationships. Sometimes, Grover Park Georgehttp://www.blogger.com/profile/14873826635955561997noreply@blogger.comtag:blogger.com,1999:blog-1939941293002854842.post-69274725332946832652020-01-01T09:56:00.001-08:002020-01-02T06:16:34.088-08:00Singing (and Dancing) With Access
Dancing with the Stars, Singing with the Idols
I like to think I can make MS Access sing and dance. Give me a task and most of the time I'll find a way to accomplish it. Once in a while it takes longer to navigate through a new kind of process, but so far I've never failed (well there was that once when I couldn't mimic Excel exactly in a datasheet view in a form, but it was on the Grover Park Georgehttp://www.blogger.com/profile/14873826635955561997noreply@blogger.comtag:blogger.com,1999:blog-1939941293002854842.post-9556122354366870592020-01-01T08:37:00.002-08:002020-01-02T06:21:31.539-08:00How Long Has This Been Going On?It is axiomatic that an organization invests time and other resources in acquiring a well designed Relational Database Application because it needs and wants answers to common questions about their organization and its operations.
Things like:
How many people work here?
How long has Bob worked here?
Where does Nancy work, in Home Office or Regional Office One?
What's our best-selling line of Grover Park Georgehttp://www.blogger.com/profile/14873826635955561997noreply@blogger.comtag:blogger.com,1999:blog-1939941293002854842.post-65734627370238911322019-12-27T07:56:00.001-08:002020-02-23T06:34:53.587-08:00The Heart Break of Code Wadding Some issues with interface design for Relational Database Applications come up over and over again.
One of those is the problem of adding new records in a junction table. Here's what the tables look like. The junction table, called tblArtist_Songs in this example, joins artists and the songs they've recorded in a Many-to-Many Relationship.
Artists, Songs and Recordings of Songs in a Junction Grover Park Georgehttp://www.blogger.com/profile/14873826635955561997noreply@blogger.comtag:blogger.com,1999:blog-1939941293002854842.post-35931379402200088532019-12-24T11:02:00.002-08:002019-12-24T11:09:07.247-08:00Low Code Cascading Combo Boxes With TempVarsCascading Combo Boxes are a staple of interfaces for Relational Database Applications. Cascading Combo Boxes are a series of 2 or more Combo Boxes in which each Combo Box is filtered according to a selection made in the previous Combo Box.
For example, a vendor might use a series of combo boxes to find customers in a specific city by first selecting a State from a combo box bound to a Grover Park Georgehttp://www.blogger.com/profile/14873826635955561997noreply@blogger.comtag:blogger.com,1999:blog-1939941293002854842.post-68552672167849117732019-12-17T14:51:00.000-08:002019-12-18T09:36:24.372-08:00Modifying Linked TablesAfter two and a half decades of working with Access and answering questions in online forums, I am still surprised from time to time by questions about things I have long taken for granted. Here's a recent case in point.
The Question as Posed
First, the question, as posed, was a bit of a red herring (a lot of them are, as a matter of fact). The Original Poster (OP) wanted to know why his query Grover Park Georgehttp://www.blogger.com/profile/14873826635955561997noreply@blogger.comtag:blogger.com,1999:blog-1939941293002854842.post-142066198602290912019-12-16T07:24:00.001-08:002019-12-16T07:24:44.533-08:00Users Really DO Care About Your InterfaceLast week I got a first-hand look at a user's reaction to a poorly designed interface. It made me smile.
I was in for a minor, routine medical procedure. The pre-op nurse was asking questions and entering my answers into the clinic's on-line medical records program. She noticed me staring at the screen and, perhaps thinking I was getting impatient (pardon the pun), felt she needed to apologize Grover Park Georgehttp://www.blogger.com/profile/14873826635955561997noreply@blogger.comtag:blogger.com,1999:blog-1939941293002854842.post-3221439518905683732019-12-10T11:58:00.000-08:002019-12-10T12:19:21.611-08:00Multi-Purpose Forms in an Access Relational Database ApplicationMicrosoft Access is very flexible development tool. Seasoned developers know this, and take advantage of that flexibility in different ways. For example, different interface objects can be used for two or more purposes. A recent question at UtterAccess gave me an opportunity to create a small demo to illustrate how re-use of objects works.
In this demo Access Relational Database Application, I Grover Park Georgehttp://www.blogger.com/profile/14873826635955561997noreply@blogger.comtag:blogger.com,1999:blog-1939941293002854842.post-28400456766132472492019-10-29T13:25:00.000-07:002019-10-30T05:06:40.524-07:00Pouring a Concrete Foundation After the Roof Goes OnSometimes, when I'm cruising Access forums for questions I might be able to answer, I get the feeling that Access is simultaneously a really fantastic application-development tool and a really subtle trap for the unaware.
I'm talking about valid, proper, appropriate, NORMALIZED Relational Table Design, of course. Think, for example, of color options or size options for articles of clothing. Grover Park Georgehttp://www.blogger.com/profile/14873826635955561997noreply@blogger.comtag:blogger.com,1999:blog-1939941293002854842.post-6354535668089334022019-08-05T09:06:00.001-07:002019-08-05T09:06:25.893-07:00Why Choose Min() and Max() Over First() and Last() ?Humans are much better than computers at resolving ambiguity. We're trained from birth to do that.
People can look at a series, or list, of values and decide which one is "the first" and which one is "the last" by referencing both the values themselves and the context in which the question was asked.
Perhaps such a question might be "Of this list of people and their birthdates, which Grover Park Georgehttp://www.blogger.com/profile/14873826635955561997noreply@blogger.comtag:blogger.com,1999:blog-1939941293002854842.post-42940732725145699612019-07-09T08:57:00.001-07:002019-07-09T10:05:54.746-07:00Green is for Go, Yellow is for Slow, Red is for No.
Calculated Values Stored in Fields Don't Pay, They Cost
Most people who spend a lot of time around relational database applications develop a phobia for calculated values stored in tables. I am aware of arguments for special cases that justify doing it anyway. However, the general rule is a sound one: Don't calculate and store values in tables.
I have repeated this rule innumerable times myselfGrover Park Georgehttp://www.blogger.com/profile/14873826635955561997noreply@blogger.comtag:blogger.com,1999:blog-1939941293002854842.post-43014203186342897202019-06-15T12:37:00.002-07:002019-06-15T12:46:03.468-07:00Your Proposed Relational Database Table Design is Inappropriate During many years of participation at UtterAccess.com, I've had a chance to review many, many "First-Timer databases". After a promising beginning, these new comers run into a blocker like a query that doesn't return the right records, or a form that won't accept new records, or a report that doesn't work the way they want. They run into a puzzling or challenging problem which seems like it oughtGrover Park Georgehttp://www.blogger.com/profile/14873826635955561997noreply@blogger.comtag:blogger.com,1999:blog-1939941293002854842.post-18810544584760239332019-01-16T06:17:00.002-08:002019-01-16T06:17:40.105-08:00It's About Time
My YouTube Training Videos Line-Up is Growing.
I've been adding videos to the line up. I'm also getting better at it; I think. I published Numbers Five and Six yesterday.
So far, the series includes
An Overview of Display Formatting options for date/time fields in Access tables. It emphasizes the point that the VALUE stored doesn't change regardless of the DISPLAY FORMAT applied to a Grover Park Georgehttp://www.blogger.com/profile/14873826635955561997noreply@blogger.comtag:blogger.com,1999:blog-1939941293002854842.post-31115935830193300592018-12-28T10:09:00.001-08:002018-12-28T10:09:51.876-08:00Got a Minute?
Check out my YouTubes on Dates and Formatting.
I've been busy learning how to create videos for YouTube.
It's harder than it looks, especially if you want to do it right.
My first attempts are up, though, and I'd love your feedback.
GroverParkGeorge's YouTube Channel.Grover Park Georgehttp://www.blogger.com/profile/14873826635955561997noreply@blogger.comtag:blogger.com,1999:blog-1939941293002854842.post-86032084946196879592018-09-25T15:53:00.002-07:002018-09-25T16:51:34.138-07:00Did I Mention I Have a Thing Against Lookup Fields in Tables?
Where do Lookup Fields in Tables Come From Anyway?
Whether you consider them to be a useful idea or not, lookup fields in Access tables came from somewhere and we have to deal with them. My candidate for their dubious origin is SharePoint, but I have only a hunch. I know they were already in Access 2003, but I no longer have earlier versions of Access available and can't recall prior to that.&Grover Park Georgehttp://www.blogger.com/profile/14873826635955561997noreply@blogger.comtag:blogger.com,1999:blog-1939941293002854842.post-1048239270604341742018-09-06T19:29:00.001-07:002018-09-08T05:12:06.158-07:00Dry Cleaners, Canoes, and Pigs in a Cadillac
I have a handful of analogies that explain my database design
philosophy. Some came from colleagues and mentors, some are my own. Here are
three of my favorites.
Three Functions of a Dry Cleaners — Three Functions of a Database
Application
A properly designed, three tier Access database application bears
a remarkable resemblance to a dry cleaners.
First you need a pleasant,
efficiently Grover Park Georgehttp://www.blogger.com/profile/14873826635955561997noreply@blogger.comtag:blogger.com,1999:blog-1939941293002854842.post-42216508510434885792018-03-17T12:38:00.001-07:002018-03-17T12:38:34.443-07:00Your Soon-to-be-Late Access Web AppsTwo weeks to go.
On or before Monday, April 2nd, 2018 all existing Access Web Apps hosted on Office 365 will become Read-Only.
That means you can then:
Continue to use the Azure SQL database behind that AWA as a read-only reporting database for a short while longer.
Rescue your data from the Azure SQL database behind that AWA database using any one of the methods I've previously Grover Park Georgehttp://www.blogger.com/profile/14873826635955561997noreply@blogger.com