Witam
Cały dzień spędziłem na wydawałoby się banalnej rzeczy a mianowicie połączeniu z ODBC przez JDBC
Mój program kopiuje plik access'a we wskazane przez użytkownika miejsce, a następnie "uzupełnia" bazę access'a danymi z programu. W ten sposób rozwiązałem problem eksportu do pliku access'a. Wszystko działa z poziomu eclipse, natomiast problem pojawia się w momencie wyeksportowania pliku do *.jar

Oto moja część programu która odpowiedzialna jest za błąd:
[Microsoft][Menedżer sterowników ODBC] Nie można odnaleźć nazwy źródła danych, a nie ma podanego sterownika domyślnego

 
public Connection getJDBCConnection(){
		Connection con = null;
		String plik=getSciezkaPlikuUzytkownika();
		String url2 = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ="+plik;
		shutdown();
		JOptionPane.showMessageDialog(null, plik,"Uwaga",JOptionPane.WARNING_MESSAGE );
		try {
			Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");	

		} catch(java.lang.ClassNotFoundException e) {
			InfoDialog.infoArea.append("Błąd!!!   "+e.toString()+"\n");
			czyBlad=true;
		}

		try {
		   con = DriverManager.getConnection(url2,username2, password2);
		} catch(SQLException ex) {
			ex.printStackTrace();
			InfoDialog.infoArea.append("Błąd!!!   "+ex.toString()+"\n");
			czyBlad=true;
		}

		return con;
	}

Choć to nie raczej nie wina kodu bo wszystko działa jak najlepiej z poziomu Eclipse.

Więc co zrobiłem do tej pory:

  1. Na kompie z winXP zarejestrowałem bazę danych. Na Win 7 niestety nie mogę tego zrobić bo nie widzi innych sterowników niż tylko SQL server - nie ma "Baza Access". Tak więc wyeksportowałem najpierw plik, później zarejestrowałem ten plik w narzędziach administracyjnych ... a następnie znowu wyeksportowałem do tego samego pliku. Oczywiście nie zadziałało.
  2. Dołączyłem do *.jar wszystkie biblioteki, zaznaczyłem również aby eksportował biblioteki java.
  3. Do build path projektu dodałem także rt.jar w którym podobno jest właśnie sun.jdbc.odbc.JdbcOdbcDriver

Tak więc kombinowałem na różne sposoby i nic nie wychodziło. Może ktoś podzieli się ze mną jakąś radą bo poziom zdenerwowania u mnie osiągnął maksimum.

[Edit:] Dalej problem nie rozwiązany, ale może komuś przyda się wyjaśnienie dwóch sposobów połączenia z bazą Access. Co prawda artykuł stary ale dalej wkleję również linka do Win 7.
http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=2691&lngWId=2
http://devpinoy.org/blogs/comgen/archive/2010/11/28/windows-7-64bit-microsoft-access-2007-problem-solved-quot-architecture-mismatch-between-the-driver-and-application-quot.aspx

[Edit2:] To jednak musi być jakaś niezgodność pomiędzy wersjami Java zainstalowanymi w systemie. Ponieważ jak zmieniłem wersję javy w projekcie Eclipse to program również przestał działać z poziomu tego programu. Dodam że mam Win 7 64bit, JRE 1.6 64bit i eclipse 64bit.