There seems to be a (one-man?) retag war centring on the correct usage of tags when the only context mentioned is the MS Access application's native database engine.


Access is a multifaceted thing but the element in question is its own default database engine. What to call it? Back in the 1990s, things used to be so simple. Formally, database engine was called Jet (project name Jet Red, not to be confused with Jet Blue). Jet is a set of DLLs and a de facto a Windows component though the Access product is very much wedded to Jet. Jet is a file-based database product and its most popular the file format has the .mdb extension.

Though Jet was the technically correct term, most folk used the phrase "Access database" to refer to Jet or an .mdb file, somewhat informally as it turns out, but everyone understood what was meant.

Why did "Access database" become vernacular? Well, Microsoft's has never been terrible formal about the distinction between Access and Jet, probably for commercial reasons. One has never needed Access to create, maintain and use an mdb file as the data store for a multi user application and indeed was a popular choice back in the VB6 era; perhaps Jet's close association helped sell Access to software developers. Microsoft's documentation has always blurred the distinction between Access and Jet. The name of the ODBC driver for Jet was called 'Microsoft Access Driver'. There are many more examples.

Then came the Access2007 release. The Access Team was granted a private copy of the Jet code base, to be able to make changes to its own produced without being vetoed by the Windows team. This new engine is, I think, known formally as ACE. Though I have been unable to find a source for this, I think it is reasonable to assume that the 'A' (and possible the 'C' as well) stands for 'Access'. It's most popular file format has an .accdb extension -- can this really stand for anything other than 'Access database'?

This advent of the ACE era gave rise to a need for a collective term to mean, "Jet plus ACE plus any future name". The formal term coined by the Access Team seems to be the "Access Database Engine" (note title case).


How should questions that appear to reference only Access's default database engine be tagged?

Because most SO folk, I believe, have always used the vernacular "Access database", the MS-Access tag is most popular. There is a tag for Access but I understand that is used as a generic term rather than referring specifically to the Access application. There has also been some usage of the MDB tag.

In recent days, SO user Remou has been adding the tag MS-Access to questions already tagged with MDB. It seems from this question that the motivation was to disambiguate JBoss-MDB and MS-Access-MDB. I think this is a good thing because MS-Access best reflects the vernacular "Access database" and MS-Access-MDB is quite 'wordy' by using two terms, 'MS-Access' and 'MDB'.

However, SO user David W. Fenton has been further retagging by adding the tag MS-Jet-ACE and removing the MS-Access tag. I do not think this is a good thing because MS-Jet-ACE, though technically not incorrect, is wordy, isn't widely used even in technical forums, confuses meaning and will be missed by SO folk who, I believe, expect to see the vernacular term "Access" in the tag.


Which tags should be added to questions that seemingly involve 'the engine' rather than the wider Access application?


I just got a reply from a member of Microsoft's Access Team:

Access Database Engine is a generic term that could refer to either ACE or Jet depending upon context. Access Connectivity Engine (ACE) refers to the codebase that ships as part of Office starting with Access 2007. [The 'A' in 'ACE'] does refer to Access, the Microsoft product.

  • 3
    There is already a tag Jet for the engine. The Access area is very small in SO, a single tag for all Access/Jet/mdb products further refined by the addition of Jet seems likely to get the attention of more people familar with Access for the user. I imagine a number of people have RSS set up for this, and the fewer feeds the better.
    – Remou
    Commented Dec 17, 2009 at 11:33
  • By the way, the Access tag is discouraged because of ambiguity, you will find some posts to this effect here, I believe.
    – Remou
    Commented Dec 17, 2009 at 13:37
  • @Remou: sound like we are thinking along similar lines :)
    – onedaywhen
    Commented Dec 17, 2009 at 15:11
  • At least two problems with the Jet tag: 1. if you look at the posts under that tag, not all of them are about MS-Jet, but about other technologies that use the word. 2. Jet does not clearly encompass its own main progeny, i.e., the ACE. I think it's too much to ask people to distinguish MS-JET and MS-ACE, and it wouldn't be reasonale in a lot of cases, annyway. Commented Dec 18, 2009 at 1:16
  • There are two populations posting under the MS-ACCESS tag: 1. people who program in Access. 2. people who don't use Access at all, but are using Jet/ACE as a data store. They mostly don't overlap. This failure to distinguish the context of the question leads to unfruitful answers, such as a VBA solution to a question posted by a member of group 2. I've been attempting to chide people into distinguishing the development tool (Access) from its default db engine (Jet/ACE) in order to improve the quality of answers. Commented Dec 18, 2009 at 1:19
  • @david.w.fenton: as regards your population 1: people who program in Access. I don't believe that stackoverflow is the place for Access Forms-based development. Rather, they should be on SuperUser or a dedicated Access forum. I understand this has been discussed elsewhere on meta.
    – onedaywhen
    Commented Dec 18, 2009 at 9:02
  • @david.w.fenton: as regards your population 2: "people who don't use Access at all, but are using Jet/ACE as a data store." Well, that's not quite as clear cut as that. I would guess that many SO users who are using Access's own engine as a data store will use the Access UI to as a 'management studio' front end to create and maintain database objects: the table designer, the Relationship window to create FOREIGN KEYS, the QBE to create VIEWs, etc. Hence the popularity of the term "Access database".
    – onedaywhen
    Commented Dec 18, 2009 at 9:07
  • @onedayone: I'd be interested in a reference to the discussion of Access forms-based development. That's what I have been doing for a living since 1996. Would you say I don't belong on SO? Commented Dec 19, 2009 at 4:33
  • What you say about someone who uses an Access ADP to manage a SQL Server database (you can't do that you can with Enterprise Manager, but you can do a lot)? Are they using Access or SQL Server? By your argument, they are using Access but and SQL Server, but if their question is specific to SQL Server (and not about the Access ADP UI), I don't think Access is a tag that should be on the article. You will note that I leave MS-ACCESS as a tag on the articles that clearly mention using Access, even when the actual use of the database is not from Access. Commented Dec 19, 2009 at 4:35

4 Answers 4


I was thinking about this whole problem over the weekend and believe that the problem is one that happens whenever you try to make a very simple data structure serve too many functions.

In this case, the data structure is free-text tagging.

And the functions that it is serving is:

  1. grouping questions on similar topics.

  2. identifying the scope of a question.

The difficulty with #1 is that because the tags are easily added, variations on them multiply. Personally, I think that for Access, version-specific tags should not really exist. Alternatively, they should not be used for questions that are not themselves version-specific.

The difficulty with #2 is that the tags can't do this job very well because that conflicts with the first purpose.

Absent a structured tagging system and one that is not user-extensible, there is no real way to avoid the problems that come with problem #1 except for editors to come in and consolidate the tags.

But the goal there is to cast the net wide so that when someone searches for the MS-ACCESS tag they get all the truly relevant articles on that subject. Leaving aside the Access vs. Jet/ACE question for now, the problem is that casting the net wide obviates the usefulness of the tags in clarifying what the question is about.

So, it seems to me that there has to be a better system of tagging, or these two functions have to be handled by two independent data structures. But I understand how that can get too complicated to be useful.

I don't have the answer here, and I agree that my proposed tag has the problem that unless the Access-knowledgable users propagate it to the point that it becomes clear to all what it means, there's not much chance of it being useful. But by using the blanket tag, a lot of time is often wasted in getting clarifications of what the actual question is about, and with answers that don't use methods not supported by the original questioner's actual environment.

In short, sufficiently-specific questions can't be fixed by better tagging.

If the only tag is MS-ACESS, how does the community solve the problem of questions that confuse the issue by not specifying the context?

Last of all, the lack of a critical mass of Access questions may be a reflection of the SO community's unreasonable hostility to Access as a development platform, which in turn is often the result of a failure to distinguish the Jet/ACE database engine (so often used inappropriately) from Access the front-end development tool (which can use almost any back-end data store). I have been posting on SO since Sept. 2008 and trying to fight the hostility towards Access and towards Jet/ACE that comes in almost all cases from ignorance of how to use the platform appropriately.

This discussion almost makes me want to give up trying.


Proposal #2

Use the MS-Access tag only.

The distinction between Jet and ACE, or Access and its default engine, is of little interest to most SO users. Most answers will happily assume the MS-Access tag means "Access's default engine (whatever it is called this year)," unless the content of the question suggests otherwise. Interested folk (e.g. lurkers who are experts in the Access World) can post a comment against the question to seek for further clarification. However, an additional tag is not required nor appropriate because, unless it has 'Access' somewhere in the tag's wording, its meaning will be obscured for most SO users.

  • I strongly disagee. But then, you don't think Access development questions belong on SO at all, and in that I think you're being ridiculous. There's a whole host of Access developers who could benefit from the SO environment, and I've been trying to coax more of them over here to try to build a critical mass of those with sufficient Access experience to help those needing help beyond what an end user would need. Commented Dec 19, 2009 at 4:38
  • You also seem to be hinting that you believe that only those using Jet/ACE through ODBC or OLEDB and programming in some environment other than Access should be posting on SO. Those people aren't using Access at all (or, at least, if they are using it, they aren't using it for something that is going to generate a programming question), so recommending MS-ACCESS as a tag is a peculiarly suggestion. Commented Dec 19, 2009 at 4:39
  • "Those people aren't using Access" -- the Access Team disagree with you. I can forward their email (now quoted in the question) to you if you like.
    – onedaywhen
    Commented Dec 19, 2009 at 7:51
  • The Access team changes its mind on what is authoritative, so I reserve the right to accept or reject their chosen terminology based on whether it is logical or not. In this case, it's completely illogical and I reject it. Commented Dec 21, 2009 at 23:09

Here's precisely the kind of question that would benefit from tags indicating the environment in which the question is being asked:

Is the user running the SQL from within Access or from some other development or querying environment?

This is why a tag that applies to the Jet/ACE database engine as distinct from Access the application is essential, to allow the distinction to be made clear without a lot of back-and-forth questioning or overly verbose explanation.

Now, you could argue that people would often not know to tag their question with something like MS-JET-ACE. But that's not the point -- those with edit permission are more likely to understand the distinction and can tag the question appropriately so that those coming to it afterward have a clear context to understand the issues involved.

  • Well, I may be an outsider to the "Access development world" but the context here is the Stackoverflow community. I don't believe that even those SO users who are familiar with the Access and its engine would associate it with the tag 'MS-JET-ACE'. I really do think that the word 'Access' needs to be in there because most SO users use the term "Access database".
    – onedaywhen
    Commented Dec 18, 2009 at 8:51
  • That question you reference is indeed a good example. I guess your point is that they could be using linked tables within the Access UI to an odbc source, say SQL Server. I think that, unless there is evidence to suggest otherwise, most stackoverflow users will assume the Access product's default engine will be the SQL syntax sought if it has the MS-Access tag.
    – onedaywhen
    Commented Dec 18, 2009 at 9:34
  • ...If the target SQL product was SQL Server then the MS-Access tag should probably be removed. But if the SQL in question is indeed the Access's own engine's then I think the MS-Access tag should stay.
    – onedaywhen
    Commented Dec 18, 2009 at 9:36
  • "most stackoverflow users will assume the Access product's default engine will be the SQL syntax sought if it has the MS-Access tag" -- and yet, about 1/3 of the questions having some form of Access tag get answered with T-SQL, i.e., SQL that won't run in Access/Jet/ACE. So, I see a lot of people not assuming what you suggest. Commented Dec 19, 2009 at 4:40
  • Access does not have a SQL engine. It uses Jet/ACE SQL with a Jet/ACE data store or an ODBC back end. When using OLEDB/ADO, passthroughs or ODBC Direct, it's using the SQL of the back-end database engine involved. There is no "Access SQL" because Access is not a database engine. And you know this. You are arguing for something that has bedevilled the Access community for as long as MS has been obfuscating the distinction between Access the development tool and Jet/ACE the db engine. You aren't helping Access users by making this argument. Commented Dec 19, 2009 at 4:43
  • "Access does not have a SQL engine" -- really? Why do I have to feed SQL to get it to do anything? What is executing my SQL if not an 'engine'? "Access is not a database engine" -- so what is the Access Database Engine then (see email from the Access Team)?
    – onedaywhen
    Commented Dec 19, 2009 at 7:59
  • "bedevilled the Access community" -- but don't you see the total lack of interest from the general software engineering community? This question on meta SO is evidence of that? It's because everyone call the engine 'Access', always has and always will, so by coining the term "Access Database Engine" to encompass the old Jet engine the Access Team have come around to the populous way of thinking. It's time for you to so the same. Your method of 'education' is futile and just causes bad feeling.
    – onedaywhen
    Commented Dec 19, 2009 at 8:04
  • You have things turned upside down -- there's a huge community of Access programmers who feel exactly the opposite of what you describe. They aren't here on SO because SO is so hostile to Access, 99.99% of the time because of a huge gulf of ignorance about what Access actually is. Commented Dec 21, 2009 at 23:07


Any question that involves 'the engine' -- i.e. an accdb or .mdb (or equivalent) database file or the Access Database Engine or ACE or Jet engine -- should receive the following tags:

  • MS-Access (because that is the vernacular and most widely used and understood term);
  • one further tag to mean 'the engine' for which I propose Access-Database-Engine because it happens to be the Access Team's formal term as well as including the vernacular term "Access".


If you don't like Access Database Engine because it is not 'Jet' enough, how about MS-Access-Engine to mean a contraction of "the MS Access application's default database engine"?

  • 3
    How many people asking Access questions know this differentiation? Tags are a nice thing, but not when people do not understand them. Commented Dec 17, 2009 at 12:21
  • @John Smithers -- indeed, I'd be happy with just one MS-Access tag.
    – onedaywhen
    Commented Dec 17, 2009 at 15:10
  • "Access Database Engine" is not appropriate, as it doesn't apply before A2007. @onedaywhen's interpretations of the MS documentation are those of an outsider. Nobody I know of in the Access development world uses the term at all, because we know there are significant differences between working with Jet and working with the ACE. It seems perverse to me to describe Jet used in the absence of Access as using the "Access db engine". ACE is a different animal, as it is owned by the Access team, and thus really is Access's db engine. But then we're back to the Jet/ACE distinction. Commented Dec 18, 2009 at 1:24
  • @david.w.fenton: "It seems perverse to me to describe Jet used in the absence of Access as using the "Access db engine"." -- but you are coming at the issue from the perspective as a member of the "Access world". The question is, what would a stackoverflow user expect to see on a tag?
    – onedaywhen
    Commented Dec 18, 2009 at 9:27
  • The problem with many SO users is that they don't distinguish Access from the database engine and thus ask questions that require additional clarification, or attract a bunch of answers that don't help solve the problem. They need to be educated, and I've been trying to do so ever since I started posting on SO. Commented Dec 19, 2009 at 4:44
  • 1
    @David W Fenton While I symapthize with your deire to educate, you cannot educate until you get an audience. I do not believe that you will get an audience if you remove all the ms-access tags, when that is what the casual visitor will expect, especially if they have visited SO previously. If the new tag is appended, they may be educated, if it replaces ms-access, they may never find the question. This may be especially frustrating if the visitor has taken mental note to search for that tag and the question has now "vanished".
    – Remou
    Commented Dec 19, 2009 at 14:50

Not the answer you're looking for? Browse other questions tagged .