Jeff Smith Blog

Random Thoughts & Cartesian Products with Microsoft SQL Server

Discussing VB and/or MS Access in a Programming Forum

So, you've decide to write a comment about how bad either VB and/or MS Access is in a programming forum!

Well, you've come to the right place, I'm here to help. First off, rest assured that you made a great decision: It is very important to mention, as often as you can, how crappy both VB and/or MS Access is in any programming discussion.  If this point is not mentioned at least once by each person contributing, then that person runs the risk of being labelled a "newbie". Don't let this happen to you!  Let's get to work.

Bashing VB and/or Access is really an art, something that requires intelligence and analytical brain power, and like any art, it takes time to master. Let's go through some of the basic points that you will need to know:

  1. VB6, VBScript, VBA, and VB.NET are all the *same*. This is important. They must all be lumped together -- after all, we are discussing "VB", and all of these "programming languages" (note the quotes -- a nice touch that you can use in your posts) start with those same two letters. Heck, even though "QBasic" starts with "QB", let's go ahead and include that one as well. Be sure to understand the short-comings of all of these languages and intermix them freely. For example, I often write things like "any language that makes you write GOSUB 1034 to call a function sucks!" and that pretty much ends the debate right there.

  2. MS Access is meant to be a multi-user, robust, enterprise-level database server -- and don't you forget it! Don't let anyone else tell you otherwise -- when Microsoft wrote that crappy application, that was their goal -- bring down Oracle! It did not work, of course, and they had to follow it up with SQL Server ... yet, for some reason M$ keeps making new versions of Access, year after year. Why? More money, that's why! It's Micro$oft !! (Important: practice typing the $ in the Micro$oft; if you omit it, you risk looking like a "newbie" -- remember, our goal is to avoid that!)

  3. It is impossible to know, use, or understand either VB and/or Access and also have any kind of formal programming education. That pesky "intellisense" (oops -- "intelli$en$e" -- somehow they are making money off this, right?) is like an addictive drug, and using it will quickly drag you into a dark world of newbie programming where theory, discipline, and knowledge no longer exist. And there is no turning back. Be sure not to forget this -- occasionally a programmer will mention that he or she knows a real programming language like C++ in addition to VB, but that is an attempt at a technique called "misdirection". Don't fall for it. The same goes for T-SQL. If you use or like VB or Access, you simply cannot be a real programmer, it is that simple.

  4. C# and VB.NET do *not* end up generating the same code! I have fought this argument over and over, and you will too, so be ready for it. Have you ever seen VB.NET code compared to C#? They don't look the same to me!  VB.NET uses plain old english words that any moron can understand, while C# uses symbols that require concentration, discipline, memorization, and caffeine. A real programmer possesses all of those traits, yet "programming" in VB requires none of them. I mean, how hardcore can a language that uses the word "friend" in its syntax really be? Note that even though C# is a Micro$oft product, it is currently legit and "cool". However -- be sure to monitor this situation closely! At some point, like all M$ products, it will become a "newbie tool" if they continue to make it user friendly or add features that let those of average intelligence use it.  I recommend avoiding C# completely and using LISP. Remember, you read it here first.

  5. MS Access is not a real relational database -- do not forget this. Supposedly it has some half-baked implementation of primary keys and relations, but I've seen anyone even try to use this feature. I mean, can an "Access programmer" even grasp these concepts? I didn't think so -- that's why they are using Access! In addition, there is no support for XML or cursors, and even a database that will just store your CD collection needs these features!  Therefore, you should never use it to store any data, ever. If these arguments fail, mention that JET SQL has no support for FULL OUTER JOINS -- that will shut them up quickly and show them that you are a "JOIN master" to be reckoned with!  Data entered in an Access database immediately becomes corrupted and disappears, and the only way to get it out is to buy the next version.   That is my theory, anyway, I would never use MS Access and let it corrupt my PC!  Avoid the forms and reports at all costs as well -- it is much better to use a true programming environment like C++ to write your reports and data entry forms. Only a newbie takes the easy way out -- remember this one!  Occasionally a wise guy will talk about using MS Access as a "front-end" or "UI" to an alternate database like SQL Server. This is jargon and marketing talk. Ignore it.  That bastard trying to run a 300-concurrent user website off of an MDB back end and he knows it!

OK, that's enough to get started. Let's start things off with a sample post from someone that you might read on a programming forum:

Poster: "Hi! I need some help in ASP.NET. Whenever my page posts back, my datagrid disappears! I am using VB.NET. Can anyone help me?"

OK, that was a close one -- you saw ASP.NET (still cool for now -- check back on that one) and maybe started to help, you almost missed it, but there it is -- "VB.NET" !! They almost got us! If we had answered the question but missed the VB reference, our reputation as a real programmer is done ... the best thing to do is immediately close your account and start up a new one -- you can never show your face back there again! Also, update your resume -- you never know who is looking!

Back to the post ... The person is asking about the basics of ASP.NET (ViewState) so clearly they are a newbie. We must be sure that *they* know this, and that everyone else knows that we know that they are. Got it?

Here is one possible reply that we could write:

Reply: "U R a n00b! Anyone using VB should be shot! Hello? ON ERROR RESUME NEXT????"

Take minute to dissect that before reading on; you will want to closely study the style of this post to emulate it in your own. Notice a couple of things here:

  • The spelling of "newbie" as "n00b" and writing "you are" as "u r". Immediately, we are established as a hacker, someone not to be messed with. Disagree with my post? Ha! Better check your bank account tomorrow -- it's all gone.
  • Generalizations and exaggerations are used to perfection here. "Anyone using VB" is a great line to repeat, and it is worded perfectly -- we are not just directing our comments to those who only know VB, but to anyone who ever uses it for any reason. Very important distinction. Stating intelligent and thoughtful conclusions like "[these people] should be shot!" really show how passionate and knowledgeable you are on the topic.
  • "ON ERROR RESUME NEXT" ... A classic! This baby will never let you down. Mention this at least once per thread and remember -- if that person programs in VB, they must use ON ERROR RESUME NEXT. No exceptions (literally!). In fact, sometimes, to be witty and if I am in a hurry, simply typing "ON ERROR RESUME NEXT" alone will pretty much establish your hacker cred, humiliate the poster, and end the debate.

So, there's a classic one for you. Feel free to copy that one to your clipboard and CTRL-V that puppy at will.

Let's try one more:

Poster: "Hi! I am having trouble deciding between using inheritance or an interface in VB.NET for a particular set of classes I am creating ... blah blah blah blah ..."

Hmmm ... clearly a n00b, not worth our time. Let's try another:

Poster: "Hi all! I am writing a small database application for my company. It will only have 2 users and I am thinking of using an MS Access database on a network share. I need only a few tables, but we have lots of reports to write and a few interface forms that I'd like to design for data entry. Will Access 2003 work for me, or do I need something else?"

Ah ... MS Access! Remember -- no one should ever use Access. Ever! (Well, except for newbies!) And -- it includes VB ! Access is a great target, you can attack it from so many angles. Where to begin on this one? It's kind of an open-ended question. Let's try this:

Reply: "Access??? Have fun when your web server goes down! No cursors or XML support -- how will you maintain data integrity! Also, Access tables can only hold 5,000 records before you will get errors. I wrote my own database in C++ that has 1,000,000,000 rows stored in a CSV file and that is better than MS Access!   n00b!!  My grandmother uses Access!"

Now, I know what you are thinking: "Jeff, how can I ever write poetry like this that will command the respect, admiration and fear of my colleagues? I am just learning how to bash VB and/or Access! This is a little intimidating!" Just relax, you're learning from the master, and let's break it down:

  1. It is helpful to point out that even installing Access anywhere on the network will cause problems. The poster did not mention a web server, but you know that all databases will eventually host traffic like google.  Only a bad programmer doesn't think ahead. Let them know this!  If they aren't hosting a site like Google, well then, they are a newbie!  You see, either way, we have a valid point to question their manhood.  (or womanhood .. sorry ladies!)

  2. The lack of any feature that you can think of (XML is a good one) is something that you can work into the conversation. Again, you are displaying your knowledge here, thinking "outside the box" and clearly stating that you would never be caught dead in any situation without these features.

  3. Liberally mention limitations and warnings, even if they are not accurate -- when the poster comes back with more problems after those issues occur, you will impress everyone with your foresight.  If they don't come back, who will remember? As I mentioned earlier, I cannot confirm that 5,000 records is all that Access can handle since I refuse to use it (or even allow an installion CD within 500 yards of my workstation), but I bet it is not much more than that. Access data *will* get corrupt and you will get into heated arguments with Clippy when this happens -- arguments that you cannot win, I am afraid. I think it is one of Newton's laws, you can check it on wikipedia I bet.

  4. Show that you are a true programmer by mentioning your past successes (avoiding Access by creating a CSV text file database is definitely hard-core programming!) and make it clear that you would never go near a toy like Access. 

  5. The grandmother line? classic.  Baby sister works too. (or grandfather/baby brother -- sorry again!)

OK, that's a lot to write and to think about. Maybe that is too much for you to start with, let's scale it back a little. Keeping in mind that Access also allows you to write code in VB, let's clearly state our position with eloquence and efficiency:

Reply: "Access?? ON ERROR RESUME NEXT??!!  n00b!"

Perfect.  Go get 'em, tiger. The internet is a great place because of people like you!

Legacy Comments


Damian
2006-06-06
re: How to bash VB and/or MS Access in a Programming Forum
Ha

You feeling a little defensive Jeff ?


Jon
2006-06-07
re: How to bash VB and/or MS Access in a Programming Forum
Closely resembles your "SQL Server sucks" blog entry. A bit
humorous, you definately do see posts that resemble this. I take it someone has pissed you off, or you've pissed them off. Things just dont change :-).



Jeff
2006-06-07
re: How to bash VB and/or MS Access in a Programming Forum
>>I take it someone has pissed you off, or you've pissed them off. Things just dont change

Nah ... It just gets tiresome dealing with the same old stuff when trying to have a (somewhat) intelligent programming discussion if any part of it involves VB or Access. It certainly doesn't upset me, it is often quite humorous and cliched when you think about it and that's what inspired me to write this post.

But, as always, thanks again for your astute and insightful feedback, Jon.

- Jeff

Ken
2006-06-07
re: How to bash VB and/or MS Access in a Programming Forum
Jeff,

You've *got* to stop spending so much time at Alex's site. <g>

Ken

Mike Rod
2006-06-08
re: How to bash VB and/or MS Access in a Programming Forum
Yes, I agree with Ken, hehe

Sarcastic but not as funny as 10 things i hate about SQL server.




I work with VB.Net and C#, mostly with VB.Net. I like the language but I'm not going to defend VB in Alex's site because [the site] basically is meant to bash and mock other people's work, so you can't have an intelligent discussion about languages there because there will be so many people with the temptation to make fun of you or VB with no other purpose than troll[ing] the thread.

I like to read what other people think, tho, and I remember a very good point regarding VB: I have never liked the "and"s and "andalso" "orelse" just to short-circuit an expression but I haven't figured it out why, until someone pointed that using "special" characters like "||" or "&&" helps you to read the condition statements more quickly, I figured out that (in some cases) I had to read the whole If line to separate the conditions from the "and"s and "andalso".

Mmm... not trying to make a point here, just ranting now but I think you did get upset on some conversation I may or may not read, relax, holy wars are pointless and definitely should be taken as jokes.

See you around,

Mike Rod

Nick
2006-06-09
re: How to bash VB and/or MS Access in a Programming Forum
I'll have to disagree on the argument regarding the "friend" syntax element in the VB.NET vs C# part.

C/C++ also have a friend keyword, and C/C++ is certainlly nothing like VB.NET...


TrollMeister
2006-06-09
re: How to bash VB and/or MS Access in a Programming Forum
Does anyone really care? I don't. I just use whatever my job of the moment dictates I use. No problems, but good money. All computer languages suck. Why don't you all go away and make your own language, instead of bashing other people's hard work at making a language that works on a machine? Go back to working at the machine language level, before bashing anything else.

Jeff
2006-06-09
re: How to bash VB and/or MS Access in a Programming Forum
While the comments where people miss the joke can be entertaining, I suppose I should pre-emptively try to avoid the same kind of comments my "top 10 sql server" post generated by stating as clearly as I can:

THIS POST IS A JOKE.

I am goofing around. There's no "holy war", I am not trying to make valid points about why VB and/or Access sucks, I am making fun of the people out there who constantly flood programming forums with "VB sucks!" posts. I find it funny. That's all. Everyone ok with that?

Hey, I know my jokes aren't all funny. And it is hard to convey humor or an overall tone when you are writing on a printed page. But how can anyone take this stuff seriously?? my goodness ... didn't I lay the sarcasm on thick enough??

Lighten up people!!! It's ok to laugh now and then.

And hey, I can fully acknowledge that it I probably deserve many comments like: "I understand that this is your attempt at humor, but it's just not funny, Jeff. You suck. Don't quit your day job!" Now, feedback like *that* makes a little more sense, don't you think!?

Mike Rod
2006-06-09
re: How to bash VB and/or MS Access in a Programming Forum
Ok, before I began ranting that's the same thing I was trying... nevermind, as you like, with the power of copy-paste, I tell you:

"I understand that this is your attempt at humor, but it's just not funny, Jeff. You suck. Don't quit your day job!"

You are right, it makes more sense now :-)

Just kidding

Mike Rod

Ken
2006-06-09
re: How to bash VB and/or MS Access in a Programming Forum
Jeff,

I thought the post was pretty funny, FWIW. :-)

Ken

Jeff
2006-06-09
re: How to bash VB and/or MS Access in a Programming Forum
Ken/Mike -- I know that you guys got it! :) It's some of the *other* comments ....

You'd be amazed at how many of the "top 10 sql" readers thought I was serious ..

Mike Rod
2006-06-09
re: How to bash VB and/or MS Access in a Programming Forum
I hate speaking on behalf others, but Nick's contribution is very goood: Is the perfect flamebait for those times when you want to play defensive: You log-in as another acount... you lay the bait... then wait...

And regarding the post by... umm... Troll...Meister... ZOMG!!!

None of your business
2006-06-11
re: How to bash VB and/or MS Access in a Programming Forum
I can't even believe you are wasting your time with this site. And who in the hell do you think you are...a programming God...I think not. It sounds like you don't know your ass from a hole in the ground. Why on earth do you think that you are such a know it all???? Grow up!

Ed
2006-06-11
re: How to bash VB and/or MS Access in a Programming Forum
I use MS Access all the time but I didn't know you could program it! What do I need? Do I have to buy the C++ plugin and install it in Access or do I simply buy the .Net language and then install the VB framework?
Your help is appreciated in advance!
Ed

Jeff
2006-06-11
re: How to bash VB and/or MS Access in a Programming Forum
Ed -- Access comes with VBA, which is essentially VB6 built into it. In the "modules" section you can write functions, prodecures, etc. You can call functions from your reports, forms, queries and so on. In addition, you can add "code behind" to any form or report.

You can write surprisingly complex applications in MS Access, but to be fair VBA isn't a great programmign language overall. But for the basics, it works and it is quite powerful.

Ed
2006-06-12
re: How to bash VB and/or MS Access in a Programming Forum
Jeff,
Gotcha! :-)

OldBee
2006-06-12
re: How to bash VB and/or MS Access in a Programming Forum
Hey,

I'm trying to run a Dos Bat file that runs an Access macro that converts a CSV file from my COBOL program to a tab delimeted file. My COBOL program can't output tabs (that I know of). Any help would be appreciated.

Thanks in Advance,

OldBee

musa
2006-06-22
re: How to bash VB and/or MS Access in a Programming Forum
Jeff, your post was funny... While reading it, I saw my coallegue (sorry for the spelling) just passing and I showed him the post...

This is funny stuff

haha
2006-07-24
re: How to bash VB and/or MS Access in a Programming Forum
"I use MS Access all the time but I didn't know you could program it! What do I need? Do I have to buy the C++ plugin and install it in Access or do I simply buy the .Net language and then install the VB framework?
Your help is appreciated in advance!
Ed
"
heh... i hope that was a joke of some sort. This post should be in the article

Mike Rod
2006-07-25
re: How to bash VB and/or MS Access in a Programming Forum
"heh... i hope that was a joke of some sort. This post should be in the article"

Then again, Jeff's reply made me say "wtf?"

I think Jeff just created a monster with that, now, somewhere in this world, there's an Ed on the loose creating crappy applications that we will have to maintain in the future.

Sigh

Mike Rod.

Ed
2006-08-06
re: How to bash VB and/or MS Access in a Programming Forum
Of course it was a joke. Look at the post after Jeff's reply. It says _Jeff, Gotcha!_ with a happy face. Only a real programmer could come up with a post like that.
I think we all suffer from a lack of humor at some point or other. Sigh.

Ed
2006-08-06
re: How to bash VB and/or MS Access in a Programming Forum
Some pre-emptive work here. Before someone writes that anyone can post "Jeff, Gotcha!" I want to clarify that when I said "only a real programmer could come up with a post like that" I was referring to my post of 6/11/2006 6:01 PM. Well, I guess the old saying "What goes around comes around" is true after all.
Finally, Jeff, I love your blog. It's been a tremendous source of knowledge for my colleagues and I. Keep up the great work! Happy coding everyone. I'm outta here.
Ed

Brett
2006-09-20
re: How to bash VB and/or MS Access in a Programming Forum
Jeff,

Great read, and the post comments are funny too.

Oh, and by the by people, Access doesn't kill people, people kill people

Aldo
2006-10-01
re: How to bash VB and/or MS Access in a Programming Forum
Hi Jeff! Nice article! I still have some applications with VB6 and MS-Access. What´s your suggestion to me? Is it better to update theses systems with VB.NET and SQL Server, or it´s better and fast to do that with VB6 and SQL Server? Thanx!

Myztacia
2006-10-19
re: How to bash VB and/or MS Access in a Programming Forum
*smacks forehead* I knew I was stupid 3 years ago when I signed up for those damned VB programming classes at the college...did you really have to remind me of this??? ;)

David Findlay
2007-03-29
re: Discussing VB and/or MS Access in a Programming Forum
Seriously though, why does MS Access and VBA have to make it so hard to access and manipulate data? Things that would be simple with perl or php accessing an SQL server become horribly painful to do, so what should be a simple db program becomes a nightmare.....

Ok I'm just ranting because I'm experiencing severe pain with vba here atm and know exactly how to do it in about 10 lines of code in perl and sql....

Christian R.
2007-05-19
re: Discussing VB and/or MS Access in a Programming Forum
I always thought that a dumb SQL server it is just a warehouse servant and not a compiler capable of flexible and autonomous action. In fact is quite slow considering that it needs a dedicated workstation. The volume or muscle size has nothing to do with being smart, large memory does not mean large brain. I would say the SQLSRV is the horse where MSACCESS is the rider. There is nothing to compare between a desktop application and a server application. MSACCESS can talk where MSSQL can only deliver what was instructed. I won’t process much information in servers, I prefer privacy, portability, and my choice on when to use the LAN or WAN. MSACCESS can control the SQL server and not the other way around. There is no need to be programmer to work with MSSQL server. Programmer means Pascal, C, C++, and maybe VB. Scripting is for database administrators and PC users.

bretfort
2007-07-09
re: Discussing VB and/or MS Access in a Programming Forum
ERT DFT DEK IS GOOD.IUYIXSX IOUYIUB AKJSIUB IHWIHB IS. SI IF ARE KJASUIYTUIGXGFDSAHGHG,ASKJGHSG KJTGAF LSIYGDB .I AM

Gary S.
2007-09-26
re: Discussing VB and/or MS Access in a Programming Forum
Its funny how so many people who have never created anything can sit back and otherwise criticize the few that do.....

No one has ever built a monument to a critic!

You all should be ashamed of yourselves....


Fred Harris
2007-10-07
re: Discussing VB and/or MS Access in a Programming Forum
VB.net and C#.net do produce identical code you strupid fool, people are refering to IL when discussing that, and on another note VB is just as fast as C# unless you import the System.VisualBasic namespace, which you can also import for C#.
And I think you have the wrong understanding of why people use MS Access and VB my friend, which is ease of use, the short learning curve and productivity; and MS Access has not yet been matched by any other DBMS for productivity, not sure if that also applies to VB.net, but I wouldnt be suprised if VB.net and C# were up there with the most productive languages available.

To sum things up, it sounds like you dont really know what your talking about....

Fred Harris
2007-10-07
re: Discussing VB and/or MS Access in a Programming Forum
By the way.

If vb.net is not a real programming language, neither is ASM, C, C++, C# and that would make Machine Code the only real programming language.

PS: Go fuck your selfs

Steve
2007-10-31
re: Discussing VB and/or MS Access in a Programming Forum

Seriously, how do people who don't get this exist in the real world? Do they actually interact with other humans?

Are these the people who sit in the office, glance at the front page of the paper and start railing about issues without actually reading anything?

If you didn't get the humor in this article, please keep away from customers.

TC
2007-10-31
re: Discussing VB and/or MS Access in a Programming Forum
I have 30 years experience as a professional software developer - largely in database systems. For example, I've led a team of analysts & programmers creating an Oracle/Unix system that took 10,000 hours of work over several years. So I do know what I'm talking about when it comes to database programming.

On that basis, I can say from personal experience, over more than 10 years usng t, that Access/Jet and VBA together form a remarkably powerful, flexible, reliable, fast, programmable relational database system. It's not an enterprise level, massive multi-user system like Oracle. But in a less demaning environment, it has just about whatever you need.

So maybe your OP was a joke, but the underlying point is not a joke. Access/Jet/VBA is a serious product that can be used by competent professional developers to produce serious, capable applications. I've done it myself. Anyone who says this is false, is simply deluding themselves, and/or, exposing their own lack of knowledge and/or competence.

Just my 2c ...

Jeff
2007-10-31
re: Discussing VB and/or MS Access in a Programming Forum
TC -- you won't get an argument from me, I completely agree.

joe
2009-05-05
re: Discussing VB and/or MS Access in a Programming Forum
Access is great for small databases less that 1.* GB per database. It is not a web database. It is not designed for supersized systems or thousands of users.

I have made money programming Access...so it must be good.

Fred
2009-05-05
re: Discussing VB and/or MS Access in a Programming Forum
a noobe $$ and don't like Bill$
I think you are B$ing about VB and ACCESS. Have created an ACCESS 97 DB in 1997 which has over 1/2 million records and is relational. Object when developing was to ask one person to explain access and 15 minutes later began development. Second objective was not to read the book(s). Third objective was not to write any VB code (or minimal such as a query def routine). Have multiple systems running for over a decade with no failure. Up to five users in a network using Server 2003. Have upgraded all to 2000 then to 2003 and now going to 2007. I have actually done on-line ACCESS development through interaction with the live customers on the other end (different state) while they watched the writing of VB. it works and they get what they want.

If I could learn to read, I would take more time reading your BLOG.

Fred



Prakash.S
2009-07-01
re: Discussing VB and/or MS Access in a Programming Forum
Can anyone tell how to share ms-access database over network with vb front end. I developed a feespackage software with single machine. Iam having a control table with that mdb file. A field in that has to be updated for receipt no whenever receipt is cut. I want to share along the network. How can I do that ? Please reply.


NO1 Online Casino
2010-06-14
re: Discussing VB and/or MS Access in a Programming Forum
Funny one Jeff ;)