Access as multi-user database - ms-access

We have used an Access database located in shared network drive for a few years. There are about six simultaneous users, not all of them active all the time.
What is best practice to use Access as work group database?
We haven't faced any problems other than when opening database it gives this error:
Microsoft Access                                                             ×
? You do not have exclusive access to the database at this time.
    If you proceed to make changes, you may not be able to see them later.
                                    OK  
It can be bypassed by clicking the error note like 20 times! Then it works just fine.
It's quite a simple database based on few forms which users will use.

It can be bypassed by clicking the error note like 20 times!
That's Access trying to perform 'Name Autocorrect'. You should have the database settings "Track name AutoCorrect info" and "Perform name AutoCorrect" both turned off.
Also, Access was originally designed as a multi-user database, with the form and report designs stored as records in the database. It no longer uses that storage design, and files that contain forms and reports should not be opened in shared mode (another database option that should be set/reset).
The original decision to move away from shared-mode form and report design was influenced by a file-corruption bug in SMB on NT5.0, but having made that decision MS never felt the need to re-implement the original functionality.

use a split Access db into a Front End file and Back End file. all users have their own individual FE file....and all those FE files link to the single common BE file. This is the standard deployment method for multiple user and works fine. we have Access apps with 40+ users.

Related

Problems using Neo4j ETL CLI tool to Load from MySQL database

I'm trying to use the following tool to load data from a MySQL (MariaDB, technically) database into Neo4j (both running on same Centos 7 Linux Machine).
https://github.com/neo4j-contrib/neo4j-etl
I've got it downloaded and I've got a root user on the MySQL database with privileges granted across all databases/schemas.
Because I'm using MySQL, I shouldn't need to manually load and configure a JDBC (according to the link above, it is built-in to the latest version of the Neo4j-ETL software).
I'm executing the following command to try and run the executable (as root user):
./neo4j-etl export --rdbms:url jdbc:mysql://localhost:3306 --rdbms:user root --rdbms:password password --destination /var/lib/neo4j/data/new_databases/graph.db --import-tool /usr/bin/ --csv-directory /var/lib/neo4j/import --debug
This command results in the following messages:
INFO: Skipping reading import options from file because file [] doesn't exist.
FINE: Connecting to database...
SEVERE: Could not connect to the host database. Please check your credentials
java.sql.SQLException: The server time zone value 'EDT' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zone value if you want to utilize time zone support.
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:89)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:63)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:73)
at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:76)
at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:835)
at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:455)
at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:240)
at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:207)
at java.sql.DriverManager.getConnection(DriverManager.java:664)
at java.sql.DriverManager.getConnection(DriverManager.java:247)
at org.neo4j.etl.sql.DatabaseClient.<init>(DatabaseClient.java:65)
at org.neo4j.etl.cli.rdbms.ImportFromRdbmsCli.run(ImportFromRdbmsCli.java:134)
at org.neo4j.etl.util.CliRunner.run(CliRunner.java:42)
at org.neo4j.etl.util.CliRunner.run(CliRunner.java:35)
at org.neo4j.etl.NeoIntegrationCli.main(NeoIntegrationCli.java:43)
Caused by: com.mysql.cj.exceptions.InvalidConnectionAttributeException: The server time zone value 'EDT' is unrecognized or repres ents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zone value if you want to utilize time zone support.
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:61)
at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:85)
at com.mysql.cj.util.TimeUtil.getCanonicalTimezone(TimeUtil.java:132)
at com.mysql.cj.protocol.a.NativeProtocol.configureTimezone(NativeProtocol.java:2234)
at com.mysql.cj.protocol.a.NativeProtocol.initServerSession(NativeProtocol.java:2258)
at com.mysql.cj.jdbc.ConnectionImpl.initializePropsFromServer(ConnectionImpl.java:1319)
at com.mysql.cj.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:966)
at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:825)
... 10 more
java.sql.SQLException: The server time zone value 'EDT' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zone value if you want to utilize time zone support.
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:89)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:63)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:73)
at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:76)
at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:835)
at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:455)
at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:240)
at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:207)
at java.sql.DriverManager.getConnection(DriverManager.java:664)
at java.sql.DriverManager.getConnection(DriverManager.java:247)
at org.neo4j.etl.sql.DatabaseClient.<init>(DatabaseClient.java:65)
at org.neo4j.etl.cli.rdbms.ImportFromRdbmsCli.run(ImportFromRdbmsCli.java:134)
at org.neo4j.etl.util.CliRunner.run(CliRunner.java:42)
at org.neo4j.etl.util.CliRunner.run(CliRunner.java:35)
at org.neo4j.etl.NeoIntegrationCli.main(NeoIntegrationCli.java:43)
Caused by: com.mysql.cj.exceptions.InvalidConnectionAttributeException: The server time zone value 'EDT' is unrecognized or repres ents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zone value if you want to utilize time zone support.
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:61)
at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:85)
at com.mysql.cj.util.TimeUtil.getCanonicalTimezone(TimeUtil.java:132)
at com.mysql.cj.protocol.a.NativeProtocol.configureTimezone(NativeProtocol.java:2234)
at com.mysql.cj.protocol.a.NativeProtocol.initServerSession(NativeProtocol.java:2258)
at com.mysql.cj.jdbc.ConnectionImpl.initializePropsFromServer(ConnectionImpl.java:1319)
at com.mysql.cj.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:966)
at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:825)
... 10 more
It seems 'java' command is not available.
Please check your JAVA_HOME environment variable.
Also check if you have a valid Java 8 environment
When I run 'java -version', I get the following, which leads me to believe that my java is okay, despite the error messages:
[root#NEO42 bin]# java -version
openjdk version "1.8.0_222"
OpenJDK Runtime Environment (build 1.8.0_222-b10)
OpenJDK 64-Bit Server VM (build 25.222-b10, mixed mode)
Both the Neo4j database and the MySQL database live on the server which I'm executing from (localhost). I've tried creating another user in MySQL (which I also granted all privileges for) but when executing the command, I receive the same errors.
Does anyone have any ideas on what my problem could be here? Any tips, suggestions or pointers would be much appreciated.
Figured out where I went wrong. I was specifying the wrong path for the import tool and in the connection URL, I needed to specify the database requested for extraction and import and also needed to specify timezone. Look at the command below for the changes:
./neo4j-etl export --rdbms:url jdbc:mysql://localhost:3306/db?serverTimezone=EST --rdbms:user root --rdbms:password password --destination /var/lib/neo4j/data/new_databases/graph.db --import-tool /usr/share/neo4j/bin/ --csv-directory /var/lib/neo4j/import --debug
Unfortunately, while this mainly answers my question here, there another issue and it seems like it might be a version incompatibility issue, specifically the error I'm seeing is below:
Input error: Missing argument 'into'
Caused by:Missing argument 'into'
java.lang.IllegalArgumentException: Missing argument 'into'
at org.neo4j.kernel.impl.util.Converters.lambda$mandatory$0(Converters.java:43)
at org.neo4j.helpers.Args.interpretOption(Args.java:542)
at org.neo4j.tooling.ImportTool.main(ImportTool.java:408)
at org.neo4j.tooling.ImportTool.main(ImportTool.java:360)
', DurationMillis: 322 }]
I'm going to create another question for this issue to focus the area of questioning on my problem.

Internal OLE Automation errors

I've got a legacy project which runs some queries every minute to an Access database. All the queries work fine but after a certain amount of time (multiple weeks) and then all of a sudden Internal OLE Automation errors start appearing left and right. It first starts with one query giving an error and then slowly but surely all the queries will generate the error.
My gut feeling says this is a timeout issue but I don't have any clue where to start.
In advance: I know Access databases are horrible and that I shouldn't be using the JDBC-ODBC bridge in production environments but as I said this is a legacy project which we're still supporting.
Please do let me know if you need any additional information or code snippets.
Edited to add: The error is always java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] Internal OLE Automation error For this specific server we use Java 6, Tomcat 6, Windows Server 2012 and the ms access driver native in Windows on version 6.03.9600.17415. They are all the 32 bit versions.

MS Access 2016 won't open an .accdb file because it 'was created in a previous version'. Is there a fix?

We are testing existing MS Access DBs with Access 2016. Some DBs were set up to use Workgroups. Given the age of the DBs, I assume they were created in Access 97. During previous upgrades, they were converted to the 'Access 2000-2003'format. This format should be compatible with MS Access 2016, but it refused to open the files with the message 'Cannot open a database created with a previous version of your application'. I opened the DBs in Access 2007, and converted them to that format (from .mdb to .accdb), but MS Access 2016 continues to report 'Cannot open a database created with a previous version of your application'. Has anyone any suggestions?
Many thanks, Kevin

MySQL2 prevent from Rails migration

I am trying to run heroku rake db:seed for my Rails app in Heroku. It has a lot of queries involve. I got this error message:
rake aborted!
Mysql2::Error: User '222ad0ef2670fe' has exceeded the 'max_questions' resource
(current value: 3600)
What does current value 3600 means? (queries/hours?) and how can I change it to, say, 10,000?
Thank you.
The reason for the error is you have reached max number of queries per hour. In this case you can wait an hour if you're in developer mode or upgrade your plan.
View the corresponding FAQ
I'm getting an error message saying that I have exceeded the
'max_questions' resource for my database. What can I do?
The max_questions resource is defined by how many queries you may
issue to your database in an hour. Our free plans start with 3,600
queries per hour and increase to 18,000 upon purchasing a paid plan
with us. Larger plans have larger QPH limits. We recommend that you
upgrade your database with us to lift this limitation off of your
database
.
Since your issue is with heroku you will need to contact their support team. In order to change the max_questions variable you need to have root access to the db. See http://www.mkyong.com/mysql/how-to-modify-the-max_questions-resource-value-in-mysql/ for exactly how to do it.
max_questions is the amount of queries an account on the SQL server can make per hour.
You will also want to check max_updates, max_connections, and max_user_connections to make sure they line up with the expected traffic load for your app.
See http://dev.mysql.com/doc/refman/4.1/en/user-resources.html for more detail
Upgrade your db. I was on Cleardb ignite, perfect for cheapskates, and I would typically max out max_questions after loading a couple thousand rows during a nightly import. I bumped up to 'punch' ($9.99/month) and haven't experienced the issue since.

jdbc odbc driver

When i go to data sources in control panel and click on ms access driver. I get an error.. i.e.
setup routines for ms access driver odbc driver cannot be found? Wha'ts wrong?
Try re registering ODBCCONF.DLL by running the command “regsvr32 odbcconf.dll”. We had this on one computer once and it fixed it so might work for you