1

I am using this program for connecting with the Ms Access 2007 and getting Exception please help me out.The Exception is, I have checked many tutorials but not getting the best solution.

java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] Could not find file '(unknown)'.

at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6956)
at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7113)
at sun.jdbc.odbc.JdbcOdbc.SQLDriverConnect(JdbcOdbc.java:3072)
at sun.jdbc.odbc.JdbcOdbcConnection.initialize(JdbcOdbcConnection.java:323)
at sun.jdbc.odbc.JdbcOdbcDriver.connect(JdbcOdbcDriver.java:174)
at java.sql.DriverManager.getConnection(DriverManager.java:579)
at java.sql.DriverManager.getConnection(DriverManager.java:221)
at multithreading.dbAccess.main(dbAccess.java:14)

import java.sql.*;
public class dbAccess
{
public static void main(String[] args)
{
    try
    {
        Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
        String database = 
          "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=payroll.mdb;";
        Connection conn = DriverManager.getConnection(database, "", "");
        Statement s = conn.createStatement();

        // create a table
        String tableName = "myTable" + String.valueOf((int)(Math.random() * 1000.0));
        String createTable = "CREATE TABLE " + tableName + 
                             " (id Integer, name Text(32))";
        s.execute(createTable); 
        // enter value into table
        for(int i=0; i<25; i++)
        {
          String addRow = "INSERT INTO " + tableName + " VALUES ( " + 
                 String.valueOf((int) (Math.random() * 32767)) + ", 'Text Value " + 
                 String.valueOf(Math.random()) + "')";
          s.execute(addRow);
        }
        // Fetch table

        String selTable = "SELECT * FROM " + tableName;
        s.execute(selTable);
        ResultSet rs = s.getResultSet();
        while((rs!=null) && (rs.next()))
        {
            System.out.println(rs.getString(1) + " : " + rs.getString(2));
        }

        // drop the table
        String dropTable = "DROP TABLE " + tableName;
        s.execute(dropTable);
        // close and cleanup
        s.close();
        conn.close();
    }

    catch(Exception ex)
    {
        ex.printStackTrace();
    }
}
}`

1 Answer 1

2

You can refer this. It will help

Also, goto Control panel-> Administrative Tools-> Data Sources-> Add-> Microsoft Access Drivers(*mdb,*accdb)-> Ok-> Ok-> Ok. It might work for ODBC connection.

Also, you have to provide the correct path to payroll.mdb in

DBQ=payroll.mdb

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.