It depends.
If your users are on a single LAN, you can easily create a front-end/back-end database. (keep the tables in a single, common database file, and distribute the front end, with mapped access to the back end tables, to any user that needs it. The key point to remember is that accessing an MDB file requires drive-letter access, or UNC naming over a LAN. (YOu can also map a drive letter to a LAN UNC name.)
However, when you want to allow users to access the data file over the internet, though, you have problems. If you place the Access file in an FTP server, apps exist which will map a drive letter to the FTP location. However, unless the users have read-only access, a local copy of the file will be made at the client's end (behind the scenes), and the remote (ftp) file is locked, until the client user is done with the file, at which time any data updates are completed, and the ftp hosted file is unlocked. Multi-user, but only one at a time...
If you are distributing an executable
VB-based "front-end" and an MDB file containing the data to the users, go for it. As long as your
VB program doesn't access the data by automating MS access, but instead use ADO or DAO to interface to the MDB file, the individual users won't need Access installed on their computers. And, if they are disconnected from the Access file, (not running the front-end executable) you could send them a copy of the data (MDB) file, they could replace their copy with the MDB file with the updated copy and go. (assuming that you have made no changes to the table formats which will cause their front-end to not be able to work properly.
It's important to always use full SQL expressions to update, rather than bypassing the field definitions.
i.e.
Rather than a SQL statement
Code:
Update Table1 Values ('A', 'B', 'C')
which requires that there be exactly three fields in Table1, instead use
Code:
Update Table1 (Field1, Field2, Field3) Values ('A', 'B', 'C')
This way, even if you later add a 4th and 4th optional field to the table, the SQL code won't bomb.
All bets are off if your "
VB code" is actually VBA running within Access. IN this case, you WILL need Access in order to intrepret your VBA code, and the users will need a copy of access on their computers. (Note - I believe the developer version of Office allowed you to create copies of your database that could be opened without a copy of Access on the client computer.
If you can, avoid using Excel as the 'database.' Excel makes a
very poor database. (Even though you CAN interface to an excel file, using JET and ADO.)