# .mdb-Datei auslesen und beschreiben



## taik84 (27. Juli 2005)

Servus Leutz!

Ich wollte ein Programm für mich schreiben, mit der ich ausgeliehene Bücher, CD's und DVD's verwalten kann. Ich bin mir sicher, dass es auch einfache Möglichkeiten gibt dies aus mit eine einfachen Excel-Tabelle zu machen, aber es reizt mich mit einem Java-Programm und einem Access-Datenbank-Datei (.mdb) zu realisiren. Ich möchte auch das Programm so gestalten, dass die mdb-Datei mit dem dazugehörigen Java-Programm auch auf ein Stick gepackt werden kann um überall, wo Java-VM installiert ist, ausführen zu können ohne es zuerst installieren zu müssen. Ich weiss nicht ob es klappen könnte, ohne den Access-Datei beim ODCB anzumelden zu verwalten. Wenn mein Vorhaben überhaupt nich klappen sollte, würde ich gerne vielleicht ein paar Empfehlungen von euch bekommen was man anders machen könnte. Falls aber die mdb-Datei auf diese Art und Weise sich verwalten lässt, würde ich gerne ein paar kleine Code-Beispiele bekomme, da ich nicht viel im Internet finden konnte (Es war zum Teil zu umfangreich).

Danke im Voraus für eure Hilfe.

Gruß

Taik

PS: Die mdb-Datei ist bereits erstellt und und Tabellen sind schon angelegt, bevor das Programm gestartet wird. Also wird es darum gehen die Tabellen zu beschreiben, und auszulesen. Die Einträge in der Tabelle sollten gelöscht werden können. Aber es müssen z.B. keine Datenbanken erstellt werden oder die Tabellen gelöscht und erstellt werden. Also relativ simple Aufgaben. Ich hoffe es kann ohne große Umstände realisierbar sein.

Aber wie gesagt, bin ziemliech offen was Alternativen angeht. ;-)


----------



## lb4ne (27. Juli 2005)

Vielleich so?

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

Connection con = DriverManager.getConnection("jdbcdbcriver={MicroSoft Access Driver (*.mdb)};DBQ=c:/deine.mdb","Administrator","");


----------



## taik84 (27. Juli 2005)

Danke. Ich wusste, dass es eine einfache Lösung geben muss. Wusste aber nicht genau, wie das geht und von ein paar anderen Teilnehmern gehört, dass es überhaupt nicht funktioniert.

Ist es ok, wenn ich es so schreibe: "{MicroSoft Access Driver (*.mdb)}"  Oder sollte ich da was anderes Einfügen?

Ich Probiere es gleich aus.

Danke.

Gruß

Taik 

PS: Ist das hier gemeint: "odbc:2Driver" wobei 2 da nicht reingehört? Oder steht da etwas anderes.


----------



## taik84 (27. Juli 2005)

import java.sql.*;
public class Access1 {
  public static void main(String [] args) {
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    Connection con = DriverManager.getConnection("jdbcdbcriver={MicroSoft Access Driver (*.mdb)};DBQ=C:/mpr/prj/pro/glossary.mdb","Administrator","");
  }
}

Wenn ich es ausführe, meldet mir der Compiler folgende fehler:
Compiliere C:\mpr\prj\pro\Access1.java mit Java-Compiler
Access1.java:4: unreported exception java.lang.ClassNotFoundException; must be caught or declared to be thrown
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
                         ^(dat hier zeigt auf die erste Klammer)
Access1.java:5: unreported exception java.sql.SQLException; must be caught or declared to be thrown
    Connection con = DriverManager.getConnection("jdbcdbcriver={MicroSoft Access 
                                                                         ^(dat hier zeigt auf die erste Klammer)
Driver (*.mdb)};DBQ=C:/mpr/prj/pro/glossary.mdb","Administrator","");

2 errors


Das Programm sollte einfach keine fehler geben, wenn sie sich mit der datenbank verbinden kann.

Habe ich etwas vergessen?

Gruß  Taik


----------



## lb4ne (28. Juli 2005)

Auf jeden Fall solltest du einen 
try
{
 ...
}
catch (SQLException e)
{
 ...
}
Block einrichten


----------



## taik84 (28. Juli 2005)

Ich habe diese try-catch-Verzweigung eingebaut aber der Compiler gibt immer noch einen Fehler an:

Compiliere C:\mpr\prj\pro\Access1.java mit Java-Compiler
Access1.java:5: unreported exception java.lang.ClassNotFoundException; must be caught or declared to be thrown
      Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
                   ^(zeigt auf die erste Klammer)
1 error

Egal was ich ausprobiere taucht dieser Fehler schon seit längerem auf. Fehlt mir dieser Driver? Wo bekomme ich es?

Gruß

Taik


----------



## Bernd1984 (28. Juli 2005)

Hallo,

  versuchs mal so: 
	
	
	



```
import java.sql.*;
  
  public class AccessTest
  {
  
  	public static void main(String[] args)
  	{
  		try {
  			Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
 		 Connection con = DriverManager.getConnection("jdbc:odbc:-)river={MicroSoft Access Driver (*.mdb)};DBQ=C:/mpr/prj/pro/glossary.mdb","Administrator","");
  			con.close();
  		}
  		catch (SQLException e1)  { e1.printStackTrace(); }
  		catch (ClassNotFoundException e2)   { e2.printStackTrace(); }
  	}
  }
```


----------



## taik84 (28. Juli 2005)

Danke! Es funktioniert!!


----------

