none
Access MySQL und referentielle Integrität

    Frage

  • Hallo zusammen,

    ich fange grade an mich mit Access zu beschäftigen und möchte es gerne als Forntend für meine MySQL-Datenbank einsetzen.
    Hierbei haben sich ein paar Fragen ergeben, die der eine oder andere erfahrene Access-Benutzer hier bestimmt beantworten kann.

    In der MySQL-Datenbank (Version 5.0.33) sind in den Tabellen (InnoDB) sind die Beziehungen via Primary-Key und Foreign-Key definiert, die MySQL-Tabellen habe ich als ODBC-Verknüpfungstabelle in Access eingefügt. Anschließend habe die Beziehungen in Access definiert, hierbei kann ich keine 'referentielle Integrität' auswählen, weshalb?
    Sobald ich versuche in ein Foreign-Key-Feld einen ungültigen Wert einzutragen meckert der MySQL-Server (zurecht), nur würde ich auch gerne ein wissendes Frontend haben.

    Getestet habe ich das mit Access 2007 und 2013.

    Viele Grüße,

    Crazy

    Dienstag, 16. Juni 2015 09:23

Antworten

  • Hallo,

    verknüpfte Tabellen sind für MS Access eigenständige Objekte, wo es keine direkte Relation zwischen finden kann. Wenn Du 5 verknüpfte Tabellen hast, könnten die aus 5 verschiedenen Datenbanken kommen, entsprechend kann MS Access hier nie eine referenzielle Integrität sicher stellen.


    Olaf Helper

    [ Blog] [ Xing] [ MVP]

    Dienstag, 16. Juni 2015 10:19
  • Du brauchst in Access keine Beziehungen zu setzen. Die Beziehungen und die referentielle Integrität ist vollständig Sache des MySQL Servers, und sie werden im Frontend automatisch beachtet.

    Du kannst das Form_Error Ereignis benutzen, um den Fehler 3146 "ODBC-Aufruf fehlgeschlagen" abzufangen. Leider ist es nicht ganz einfach, dort nähere Informationen zur Art des Fehlers zu erhalten.

    Matthias Kläy, Kläy Computing AG

     
    Dienstag, 16. Juni 2015 10:18

Alle Antworten

  • Du brauchst in Access keine Beziehungen zu setzen. Die Beziehungen und die referentielle Integrität ist vollständig Sache des MySQL Servers, und sie werden im Frontend automatisch beachtet.

    Du kannst das Form_Error Ereignis benutzen, um den Fehler 3146 "ODBC-Aufruf fehlgeschlagen" abzufangen. Leider ist es nicht ganz einfach, dort nähere Informationen zur Art des Fehlers zu erhalten.

    Matthias Kläy, Kläy Computing AG

     
    Dienstag, 16. Juni 2015 10:18
  • Hallo,

    verknüpfte Tabellen sind für MS Access eigenständige Objekte, wo es keine direkte Relation zwischen finden kann. Wenn Du 5 verknüpfte Tabellen hast, könnten die aus 5 verschiedenen Datenbanken kommen, entsprechend kann MS Access hier nie eine referenzielle Integrität sicher stellen.


    Olaf Helper

    [ Blog] [ Xing] [ MVP]

    Dienstag, 16. Juni 2015 10:19