Access '07, MS SQL Server 2005 und Foreign Keys ?

Guten Tag,

Ich sitze hier nun schon seit Stunden vor meinem Access mit einem kleinen pikanten Problem, dass vermutlich auch auf meine mangelnde Kenntnis im Umgang mit MS Access zurückzuführen ist. :smile:

Folgendes:
Ich habe eine Datenbank auf dem MS SQL Server 2005 am laufen. Nun habe ich eine ODBC-Verbindung zur Datenbank eingerichtet, die auch zu funktionieren scheint. Der gewählte Treiber ist „SQL Server“.

Nun will ich mir in Access 2007 ein kleines Frontend dazu bauen, mit dem ich Daten in die Datenbank eingeben und manipulieren kann. Mein Vorgehen in Access 2007 zum nachvollziehen (ob ich das so richtig mache):
Menü > Öffnen > ODBC-Datenbanken ()

Im neuen Fenster Datenquelle auswählen dann:
Tab „Computerdatenquelle“ > Meine eingerichtete ODBC-Verbindung doppelt angeklickt.
Im neuen Fenster meine zuvor im SQL Server angelegten Tabellen mit bereits deklarierten Primary- und Foreign Keys selektiert > OK

Dann kommt schon für mich das erste verwirrende. Da ich in meiner Datenbank einige n:m Beziehungen habe, die ich natürlich über zwischentabellen lösen muss, die Foreign Keys beinhalten, werde ich überall darauf aufmerksam gemacht, einen eindeutigen Datenbezeichner auszuwählen. Würde ich die Spalten nun auswählen, würde mir Acces diese Schlüssel also als Primary Keys deklarieren, so viel steht schonmal fest. Das will ich aber nicht, also quitiere ich alles mit OK.

Wenn ich nun die Beziehungen anzeigen lassen möchte, kommt da freilich nur Krautsalat raus, der mit meinem Datenbankmodell nichtsmehr gemeinsam hat.

Wie bekomme ich Acces dazu, mir die Foreign Keys so zu importieren, dass auch die Beziehungen stimmen? Die Foreign Keys fehlen natürlich auch in anderen Tabellen, bei denen ich 1:n Relationen abgebildet habe und diese werden mir natürlich ebenfalls nicht angezeigt.

Ich bin für jede Hilfe dankbar.

Gruß,

Eric

Hallo,

ich verstehe das nun so, dass in den m:n-Tabellen kein Primärschlüssel existiert, sondern nur die Fremdschlüssel.

Insofern erstell in diesen Tabellen ein weiteres Feld, das als PS fungiert, oder das lediglich einen Index ohne Duplikate besitzt, wenn die Kombination der Fremdschlüssel selber den PS darstellen.

Viele Grüße vom Bodensee
Franz , DF6GL

PS: Feedback erwünscht!

Hi,
die Fremdschlüssel sind in einer m-n Beziehung der zusammengesetzte Primärschlüssel. Dann kannst du ihn in Access auch als solchen benutzen bzw. beim Verlinken entsprechend deklarieren.

btw: wenn man Access als Frontend nimmt ist es immer gut in jeder eingebundenen Tabelle ein timestamp Feld zu definieren.

Gruss
Joey

Hallo,

das würde für mich also bedeuten, dass ich auf keinen Fall drum rum komme, die Beziehungen quasi in Access neu aufzubauen (in beiden fällen)?

Hi,
Access hält die Struktur und die Beziehung einer eingebundenen ODBC Tabelle immer lokal gespeichert wg. Abfragen und Optimierungen. Mehr aber auch nicht.

Insofern verstehe ich dein Problem nicht.

Gruss
Joey