Question Access versus Filemaker Pro Advanced

Let us have this scenario:

Frontend - MS Access
Backend - SQL (due to its security and size capacity)

However, due to its complexity and architecture, there is a daemon that is necessary to connect Access to SQL like ODBC (DSN).

Why not Microsoft simplify the connection of Access to SQL to satisfy the database size limit capacity, security and connection.

Like Access, it simply connects to its access backend thru linking, or importing. Just like that.
 
Last edited:
Are you sure you understand what a daemon is?

It's not a method of interaction, like ODBC or ADO or DAO would be. It's actually the architecture of the SQL Server (and several other RDBMS as well). You use ODBC to make a request to the daemon and daemon satisfy it.

Maybe to put it in human analogy... Daemon is kind like a librarian. To consult the book you want to read, you can't get to it because it's behind the librarian's desk and you are not allowed to enter librarian's space. You must ring the bell and ask for the librarian to lend you the book you want but is behind the desk and thus inaccessible.


With Jet or SQLite or any similar architecture, you are the librarian and you can go to the appropriate section and help yourself to the books you want to read about. It's as if there's a library with no librarian; it's completely a self-help library and they trust you to be honest with the books you borrow/return.


I hope you can deduct the rest of reasons behind how things are andy Jet/SQLite are different from SS/MySQL/etc
 
that is exactly what I meant sorry if I put it in wrong words.

So again, why cant we have it just like that, "a library without a librarian". the books in the library can still be used without the librarian.
 
They certainly can be! That's why we have Jet & SQLite and the likes.

But I did ask you to think it through. Here's a scenario. What if a borrower isn't trustworthy? Who will be responsible watching after that nasty borrower?

If you think about it, you will have figured out why security is inherently problematic in Jet while easier to set up in SQL Server.

And it's not just security but also concurrency and scalability.
 
As I gave the scenario of Access as FE and SQL as BE. with regards to security, it is the burden of the programmer to make a customized security procedure in the FE, with regards to the security of the backend, SQL has its own password security.

If that can be, why there is a need to setup ODBC. I am not limiting to JET and SQLite but extending to SQL Server and MySQL and the like.

How would one directly link access FE to SQL server database or mysql server BE database without ODBC or DSN? Just pure and direct linking, without the "Librarian". In this way, the connection approach is simple connecting access to sql database without daemon to access directly the records.
 
I think the whole question is a phurphy. The percieved benefits of the larger database limit is based on the perception that using SQL Server is a huge leap in complexity.

While the full potential of using SQL Server can be quite a lot to reconcile in the design of the database the first step is simple.

Import the backend into SQL Server.
Create a DSN. (Where exacly is the perceived problem here?)
Link the tables.

Everything still works as before.

Then work on getting everything expressed in sql.
Convert the queries to Pass Through.
Store the queries on the server.

In the extreme it is possible to convert the design of the FE into information held in tables. Custom interfaces can be loaded based on the username giving the users a consistent interface regardless of the computer they use.

But the point is that the Access/SQL Server solution is not a sharp delineation and the transition is relatively seamless as more of the SQL capability is implemented.

Once a developer understands the requirements of a fully SQL design they use this technique extensively in all their designs providing a simple upgrade path to as advanced a concept as their enthusiasm dictates.

VBA can fix anything. Write a function to do it. There are functions to replace DLookUp, that bane of advanced SQL Server use. Even if TableMaker has a substitue for VBA it will always be an inferior version because Microsoft VBA hooks straight into the operating system. Windows can be controlled almost at a native level in VBA. The thought of learning a tool that does not include VBA doesn't appeal. The limitation to a developer's output should be their ambition not their tools.

Once a wide body of knowledge is assembled, an insightful developer is able to create very advanced designs with the same time and effort as a less versatile concept because they see the bigger picture from early in the systems analysis. Concepts and modules are accumulated and reused and complex database design becomes an assemblage of integrated tools.

The skill is in visualising how to make the database fully configurable early in the design phase because this minimises the effort in the inevitable customising as the user realises the important features they overlooked in the original specification.

Starting with a limited tool like TableMaker chosen against Access because it was easy to get started is a short term gain for a long term dead end.

Dim MyFuture As Important
Dim TheDarkHorse As AccessAlternative

TheDarkHorse = FileMaker

If Forms!MySkills!TableMaker.Future = Database.Neanderthalis Then
Me!Judgment = "Don't go there"

Else: MyFuture = Trust(TheDarkHorse)
End If ' and maybe your career prospects
 
with regards to security, it is the burden of the programmer to make a customized security procedure in the FE, with regards to the security of the backend, SQL has its own password security.

Why can't the programmer depend on the SQL security?

If that can be, why there is a need to setup ODBC. I am not limiting to JET and SQLite but extending to SQL Server and MySQL and the like.

How would one directly link access FE to SQL server database or mysql server BE database without ODBC or DSN? Just pure and direct linking, without the "Librarian".

You're debating with the king of DSN-less connectivity. Is there a reason you believe you have to set up ODBC or DSN? See Banana's DSN-less writeup.

In this way, the connection approach is simple connecting access to sql database without daemon to access directly the records.

ALL server processes run as a daemon. SQL Server will not change that for the sake of this argument. It has been this way since Unix 0.000001. If you remove the "librarian", you have to have incredibly complex client side code to manage what the server does. And forget about the security Microsoft (and Oracle, and MySQL) has spent untold millions of dollars on...it would have to be re-created and would be subject to the whims of the provider(s) of said client software.
 
the main idea here is SIMPLICITY.

to be able to connect to server without using odbc. as previously discussed in the many previous post on this topic by me and shadow9449, it is stated that it is for the purpose "That would mean that the developer would not have to worry about passthrough queries, writing T-SQL or ODBC or DSNs or going DSN-less and so on. "

Thereby, connecting Access to any SQL server would simply use DOCMD.TRANSFERDATABASE "ACLINK" ...... just like linking or importing one access database to another access database.
 
Of the many features of SQL servers like MS SQL and MySQL, two of its features size capacity and security is what Access lacks. That is why, when the size limit is reached in Access, you are advised if not forced to move to SQL because of its feature.

While FileMaker has this size capacity feature. However, it falls short to other features. Ofcourse an ordinary hard disk capacity may be limited to gigabyte.

The argument here is, again the simplicity of data storage especially in the need for more data storage space.

I agree that SQL server will not change immediately for the sake of this argument. But I also think, CHANGE is possible. Microsoft Office change to different editions, SQL server had gone from edition 2000, 2005, 2008 and probably so on. Changes are their, may it be minimal or maximal. There will always be change.

If Microsoft WILL NOT CHANGE the size capacity limit of Access so as not to compete with its MS SQL products and that we may purchase their SQL products, then perhaps, Microsoft will create a change in the WAY THAT ACCESS CONNECTS TO SQL SERVER, that is without the daemon (librarian).

If I am a beginner programmer for my business and that I know that Access can connect to SQL server with ease (on my programming level), I will most likely decide to purchase SQL server without any hesitation because I am already informed of the facts. I will not go on creating my access database backends and later upsize to SQL which is another work for me.
 
If I am a beginner programmer for my business and that I know that Access can connect to SQL server with ease (on my programming level), I will most likely decide to purchase SQL server without any hesitation because I am already informed of the facts. I will not go on creating my access database backends and later upsize to SQL which is another work for me.

I still don't understand the perception that setting up a DSN, ODBC connection or even pass through queries is complex. Clearly genesis is unduly daunted by this step. Rather than arguing that Microsoft should change their product, wouldn't it be better to get over the phobia?

Any developer who decides that they should only contemplate using features "on [their] programming level" will forever be limited to extremely simple designs. Many aspects of using Access and VBA are far more complex than setting up a connection to SQL Server.
 
Let's say that we wrote a client software that allowed us to interact with the .mdf files directly, bypassing the daemon.

The instant we use this software, all problems that we associate with Jet will instantly rear their ugly head because it's inherent fact of how we read and write to the file. By handing off requests to daemon, the daemon has exclusive control over the files so there is never a problem of corruption from fragmentation or sharing conflict; daemon handles all the potential conflicts before it's even written to the file.

Without a daemon, Jet basically runs on client's side, accessing the files remotely and it works on a cooperative policy but even with a cooperative locking, it remains the state that the file gets fragmented during the use and when we have another client connecting to the same file, it can get fragmented still, and if they need to access same page, corruption is very likely. This is why everyone talk about splitting the database. Microsoft provided us with a option to store everything, data and application in a single document and that's mighty convenient when you're the only user and you are not interested in getting cozy with database theory. Yet, this simplicity will become a liability the second we have second user wanting to use the same file and splitting must be learned to advance into this stage.

Moving to a different backend is basically similar advancement. Instead of several users cooperatively reading and writing to same file, we place the job of writing and reading into a daemon and thus free ourselves from the problems inherent in sharing a file. It's even more important to realize that the problems with writing and reading to a file is not an application issues, it's also operating system/hardware problem so it cannot be easily solved by writing an application to handle the concurrent edits...oh, wait we did! It's called daemon, of course!

Next, Galaxiom is quite astute; the process of linking is in fact very simple. I'd daresay it's easier to link tables than it is to automate to Excel! We got those nice little GUIs to build new DSN and choose it, then choose from a list of tables to link and we're done. We don't even lose the ability to edit queries in the query builder using linked tables! Thus George Wilkinson is also correct to point out that the transition is already seamless and we don't have to change everything at once; we can set up a quick'n'dirty solution by importing data into new backend then linking the tables and keep all existing queries and logic then move the rest one by one when performance becomes a consideration, so it's already simple!

With FileMaker, the architecture is different because each table is its own file. While FileMaker claims that it can handle up to 7 terabytes, a single table (e.g. a file) is limited to....

2 GB!

<Monty Python>It's same!</Monty Python>

In short, we can achieve exactly same thing by making one .mdb containing one table each and linking them all into a common front-end and we'd have much more bigger capability, as long single table doesn't have to get bigger than 2 GB (just like FileMaker).

Well, to be fair, though, I'm very sure that Filemaker handles several files better than Access (they have to, it's their architecture and they would really want to optimize it), so the process would be simpler in FileMaker, but to claim that it is not bound by 2 GB file is not totally accurate. It's still, but worked around by breaking tables into their own file.

Now, think about it for a second. Why did Microsoft decide to give us .mdb that can contain everything in single file?

I think the answer would be simplicity.
 
We seem to be overlooking one important factor about Filemaker. It was originally designed and invented for use on an Apple.
This is the main reason (I think) why it does not have VBA available. VBA doesn't work on an Apple.
There have certainly been enough Windows versions of Filemaker released that VBA could have been incorporated into it if the makers so choose. That they have chosen not to seems to me to be a devotion to the original (Apple) configuration. If VBA were available on the Windows version, they would have to come up with somthing similar for the Apple version, which means taking the whole project back to the drawing board.
 
Let us have this scenario:

Frontend - MS Access
Backend - SQL (due to its security and size capacity)

However, due to its complexity and architecture, there is a daemon that is necessary to connect Access to SQL like ODBC (DSN).

Why not Microsoft simplify the connection of Access to SQL to satisfy the database size limit capacity, security and connection.

I'm not sure I understand your question.

Access is not a database.

Access is a front-end application development platform.

It happens to ship with a quite versatile file-server-based database engine, but it can connect to just about any database engine in existence.

What motivation would Microsoft have to make Jet/ACE store more data and act like a server database? They've already invested years of development work in SQL Server, and Access works beautifully with that database engine. What would be the benefit of trying to graft server functionality on top of Jet/ACE? It's already incredibly easy to upsize. It may very well be that upsizing is too hard for your receptionist who created the phone book database, but if you're at the point where you need to upsize, you're also at the point where you shouldn't be giving the responsibility of maintaining your database application to your receptionist.

MS is never going to extend Jet/ACE's capabilities in the way you are suggesting and there's absolutely no justification for asking them to do so.
 
If Microsoft WILL NOT CHANGE the size capacity limit of Access so as not to compete with its MS SQL products and that we may purchase their SQL products, then perhaps, Microsoft will create a change in the WAY THAT ACCESS CONNECTS TO SQL SERVER, that is without the daemon (librarian).

You're asking for something COMPLETELY CRAZY that is never going to happen.

If you get rid of the server-side process that stands as the traffic cop between client data requests and the actual data store, then you've reverted to Jet/ACE, with every client interacting directly with the data files. Then you need locking control, and every client has to be sure not to step on other users, and this gets you back to the concurrency issues and user population limits that Jet/ACE has.

It seems to me that you have a very fuzzy understanding of how server databases work, and of what ODBC and ADO really are. ODBC is not the intermediary -- it's just a translation interface that makes disparate databases with different features and implementations look similar so that your application doesn't have to be written to the specifics of the particular back-end database engine. This is a GOOD THING. It's not an impediment to good application design, but one of the key components that enables it.
 
We seem to be overlooking one important factor about Filemaker. It was originally designed and invented for use on an Apple.
This is the main reason (I think) why it does not have VBA available. VBA doesn't work on an Apple.

There are products that run on the Mac that use VBA (though most of them are from Microsoft).

The problems with FileMaker are not so much that it doesn't use VBA specifically, but that it doesn't have a strong scripting language behind it. They could use JavaScript or who knows what, as long as it was a full-fledged programming/scripting language.

The other main problem with FM from my point of view is that it doesn't use SQL. Sure, it can connect to SQL database engines, but a real database application development platform should speak SQL completely natively. Basically with FM, any time you're working with a SQL back end, you're basically interacting with all your data via passthrough queries. That's not disastrous, of course, but it means that if you want to use the native FM data store, you've got no SQL at all.

I can't imagine why they can't go the Access route and use SQL in the background and allow you to build it with point-and-click interfaces.
 
wow.....you have some good discussions here. People I have also this problem connecting Access to SQL server.

I am creating more than one database in a server, let us say 5 databases. How can I make a code that will use and link those tables from those 5 database into my FrontEnd?
 
wow.....you have some good discussions here. People I have also this problem connecting Access to SQL server.

I am creating more than one database in a server, let us say 5 databases. How can I make a code that will use and link those tables from those 5 database into my FrontEnd?

You might want to start a new thread for this as it is not related to Filemaker Pro vs. Access.
 
Take a look at the history of posts by the OP of this thread (genesis).
http://www.access-programmers.co.uk/forums/search.php?searchid=5290881

Most of the posts are focussed on:

How to connect connect to SQL Server without a DSN.
http://www.access-programmers.co.uk/forums/showthread.php?t=173701
http://www.access-programmers.co.uk/forums/showthread.php?t=177026

The complexities of implementing Access security.
http://www.access-programmers.co.uk/forums/showthread.php?t=175523

A perceived security weakness that linking a second frontend to one that already has a secured backend open. Once pointed out that Access is not vulnerable in this way, the tack changes to the clumsiness of having to go through another security dialog.
http://www.access-programmers.co.uk/forums/showthread.php?t=177820

An expectation that the password could be supplied from the backend database.
http://www.access-programmers.co.uk/forums/showthread.php?t=178072

And what I believe is cutting to their original intent.

What is the best desktop and database?
http://www.access-programmers.co.uk/forums/showthread.php?t=178069

And when nobody would bite on that one we get this thread which incredibly labours the point of the 7TB capacity, the supposedly superior security, and simple connectivity of FilemakerPro over Access.

Is it just a coincidence that Filemaker connects to its server product without a DSN?
What is the bet it also allows the password to be supplied from the backend? And genesis promotes that FileMaker security is simple while Access is diabolically complex.

Perhaps I have become cynical but I wonder if those earlier posts were nothing but entrees to the main course which was always intended to promote Filemaker Pro to Access users. "What is the best" is a classic spamming technique used in forums. Though not in this case, it is usually accompanied by a "second user" who promotes the target product.

Unfortunately for FileMaker, the responses in this thread will have had exactly the opposite effect. Anyone reading this thread would be unlikely to even bother looking at FileMaker.
 
If Microsoft WILL NOT CHANGE the size capacity limit of Access so as not to compete with its MS SQL products and that we may purchase their SQL products, then perhaps, Microsoft will create a change in the WAY THAT ACCESS CONNECTS TO SQL SERVER, that is without the daemon (librarian).
Just not likely to happen - you're talking about a deliberate design feature as if it were an inconvenient flaw. It's not. It is that way precisely because MS wants it to work that way.

If I am a beginner programmer for my business and that I know that Access can connect to SQL server with ease (on my programming level), I will most likely decide to purchase SQL server without any hesitation because I am already informed of the facts. I will not go on creating my access database backends and later upsize to SQL which is another work for me.
Microsoft doesn't care about beginner programmers who have been thrown in at the deep end. The appropriate remedy for this situation is training and education to bring the newbie programmer up to speed. Attempting to 'dumb down' the software to make it work in a simpler way is certain to have wide ranging repercussions in performance, security, etc - and they're not going to do it.
 

Users who are viewing this thread

Back
Top Bottom