none
Access -> SQL-Server: Tabellen unter der Haube austauschen RRS feed

  • Frage

  • Sehr geehrte Damen und Herren,

    ##### Situation #####
    wir nutzen Microsoft Access mit Frontend und Backend für eine interne Verwaltungssoftware (VS). Die Ladezeiten der VS sind sehr langsam, wir nehmen an wegen ineffizienten Datenbankzugriffen. Deswegen soll die Datenbank umgestellt werden auf Microsoft SQL-Server. Ich bin ein Masterstudent und aus Sicht der Firma "extern eingekauft" und habe keine Erfahrung mit Microsoft Access, vollziehe learning by doing.

    ##### SMAA #####
    Wir wissen, dass ein Migrationstool dafür existiert, sehen aufgrund der Vorbedingungen an die DB aber derzeit keine Möglichkeit das Tool SMAA anzuwenden. Außerdem möchten wir die DB grundlegend überdenken und normalisieren. Statt SMAA haben wir uns überlegt die Datenbank händisch in SQL-Server nachzubilden und diese neu im Access Frontend zu verlinken.

    ##### Grundproblem #####
    Wir möchten alle, also 20-40 Tabellen in SQL-Server abbilden und im Access Frontend statt der bisherigen benutzen. "dbo_Projekte" haben wir probeweise über Externe Daten -> ODBC-Datenbank hinzugefügt. Diese soll "Projekte" ersetzen. (Bild 1)



    Über Datenbanktools -> Objektabhängigkeiten sind wir der Meinung alle Vorkommnisse der Tabelle herausfinden zu können. Wir denken auf jedes Formular doppelklicken zu müssen, in dem Eigenschaftenblatt unter dem Dropdownfeld "Formular" auszuwählen und dann bei Datensatzquelle mit rechtsklick auf die "..." mithilfe der Zoom-Funktion die Tabelle beim SQL-Befehl hinter "FROM" umbenennen müssen von "Projekte" auf "dbo_Projekte". (Bild 2)



    ##### Frage #####
    Dies erscheint sehr mühsehlig und Fehleranfällig.
    Was ist Ihrer Meinung nach der beste und sicherste Weg, um die Migration durchzuführen?
    Ist es beispielsweise möglich die Tabelle / Datenbank direkt unter der Haube zu ersetzen ohne im "Quelltext" Änderungen machen zu müssen? Also sodass die Tabelle "Projekte" auf den SQL-Server zugreift anstatt auf die Access-Backend Datei? (Bild 3)



    Dankeschön


    Michael

    Dienstag, 8. Dezember 2020 01:19

Antworten

  • Am 08.12.2020 schrieb Enomine88:

    ##### Situation #####
    wir nutzen Microsoft Access mit Frontend und Backend für eine interne Verwaltungssoftware (VS). Die Ladezeiten der VS sind sehr langsam, wir nehmen an wegen ineffizienten Datenbankzugriffen.

    Es ist sicherlich besser, zuerst eine Analyse zu erstellen, ob das was
    ihr angenommen habt, auch die wirkliche Ursache ist.

    Deswegen soll die Datenbank umgestellt werden auf Microsoft SQL-Server. Ich bin ein Masterstudent und aus Sicht der Firma "extern eingekauft" und habe keine Erfahrung mit Microsoft Access, vollziehe learning by doing.

    Denkbare schlechte Voraussetzung.

    ##### SMAA #####
    Wir wissen, dass ein Migrationstool dafür existiert, sehen aufgrund der Vorbedingungen an die DB aber derzeit keine Möglichkeit das Tool SMAA anzuwenden. Außerdem möchten wir die DB grundlegend überdenken und normalisieren. Statt SMAA haben wir uns überlegt die Datenbank händisch in SQL-Server nachzubilden und diese neu im Access Frontend zu verlinken.

    OK.

    ##### Grundproblem #####
    Wir möchten alle, also 20-40 Tabellen in SQL-Server abbilden und im Access Frontend statt der bisherigen benutzen. "dbo_Projekte" haben wir probeweise über Externe Daten -> ODBC-Datenbank hinzugefügt. Diese soll "Projekte" ersetzen. (Bild 1)
    <https://i.ibb.co/m0B0K70/Tabellenaustausch-1.png>

    OK, funktioniert auch. Sollte man aber IMO automatisiert abändern
    lassen.

    Über Datenbanktools -> Objektabhängigkeiten sind wir der Meinung alle Vorkommnisse der Tabelle herausfinden zu können. Wir denken auf jedes Formular doppelklicken zu müssen, in dem Eigenschaftenblatt unter dem Dropdownfeld "Formular" auszuwählen und dann bei Datensatzquelle mit rechtsklick auf die "..." mithilfe der Zoom-Funktion die Tabelle beim SQL-Befehl hinter "FROM" umbenennen müssen von "Projekte" auf "dbo_Projekte". (Bild 2)

    <https://i.ibb.co/DYB0jV2/Tabellenaustausch-2.png>

    Sicher dass es keine SQL Statements in Kombinationsfeldern gibt?

    ##### Frage #####
    Dies erscheint sehr mühsehlig und Fehleranfällig.
    Was ist Ihrer Meinung nach der beste und sicherste Weg, um die Migration durchzuführen?

    Alles neu machen. Das Frontend sollte dann IMO ohne Tabellen sein,
    immer nur per Funktion die Daten vom SQL Server holen, die man
    braucht. Ist viel Arbeit, aber geht. Und man muss natürlich die
    Performance eines SQL Servers nutzen, d.h. Du arbeitest mit
    StoredProcedures und Views auf dem SQL Server. Aber ich verknüpfe
    keine Tabellen vom SQL Server mehr in Access.

    Ist es beispielsweise möglich die Tabelle / Datenbank direkt unter der Haube zu ersetzen ohne im "Quelltext" Änderungen machen zu müssen? Also sodass die Tabelle "Projekte" auf den SQL-Server zugreift anstatt auf die Access-Backend Datei? (Bild 3)

    <https://i.ibb.co/vDY5j9F/Tabellenaustausch-3.png>

    Das könnte möglich sein, hab ich so noch nie probiert.

    Servus
    Winfried


    Community Forums NNTP Bridge: http://communitybridge.codeplex.com/
    Access-FAQ: http://www.donkarl.com/AccessFAQ.htm Access-Stammtisch: http://www.access-muenchen.de

    Mittwoch, 9. Dezember 2020 16:51

Alle Antworten

  • Am 08.12.2020 schrieb Enomine88:

    ##### Situation #####
    wir nutzen Microsoft Access mit Frontend und Backend für eine interne Verwaltungssoftware (VS). Die Ladezeiten der VS sind sehr langsam, wir nehmen an wegen ineffizienten Datenbankzugriffen.

    Es ist sicherlich besser, zuerst eine Analyse zu erstellen, ob das was
    ihr angenommen habt, auch die wirkliche Ursache ist.

    Deswegen soll die Datenbank umgestellt werden auf Microsoft SQL-Server. Ich bin ein Masterstudent und aus Sicht der Firma "extern eingekauft" und habe keine Erfahrung mit Microsoft Access, vollziehe learning by doing.

    Denkbare schlechte Voraussetzung.

    ##### SMAA #####
    Wir wissen, dass ein Migrationstool dafür existiert, sehen aufgrund der Vorbedingungen an die DB aber derzeit keine Möglichkeit das Tool SMAA anzuwenden. Außerdem möchten wir die DB grundlegend überdenken und normalisieren. Statt SMAA haben wir uns überlegt die Datenbank händisch in SQL-Server nachzubilden und diese neu im Access Frontend zu verlinken.

    OK.

    ##### Grundproblem #####
    Wir möchten alle, also 20-40 Tabellen in SQL-Server abbilden und im Access Frontend statt der bisherigen benutzen. "dbo_Projekte" haben wir probeweise über Externe Daten -> ODBC-Datenbank hinzugefügt. Diese soll "Projekte" ersetzen. (Bild 1)
    <https://i.ibb.co/m0B0K70/Tabellenaustausch-1.png>

    OK, funktioniert auch. Sollte man aber IMO automatisiert abändern
    lassen.

    Über Datenbanktools -> Objektabhängigkeiten sind wir der Meinung alle Vorkommnisse der Tabelle herausfinden zu können. Wir denken auf jedes Formular doppelklicken zu müssen, in dem Eigenschaftenblatt unter dem Dropdownfeld "Formular" auszuwählen und dann bei Datensatzquelle mit rechtsklick auf die "..." mithilfe der Zoom-Funktion die Tabelle beim SQL-Befehl hinter "FROM" umbenennen müssen von "Projekte" auf "dbo_Projekte". (Bild 2)

    <https://i.ibb.co/DYB0jV2/Tabellenaustausch-2.png>

    Sicher dass es keine SQL Statements in Kombinationsfeldern gibt?

    ##### Frage #####
    Dies erscheint sehr mühsehlig und Fehleranfällig.
    Was ist Ihrer Meinung nach der beste und sicherste Weg, um die Migration durchzuführen?

    Alles neu machen. Das Frontend sollte dann IMO ohne Tabellen sein,
    immer nur per Funktion die Daten vom SQL Server holen, die man
    braucht. Ist viel Arbeit, aber geht. Und man muss natürlich die
    Performance eines SQL Servers nutzen, d.h. Du arbeitest mit
    StoredProcedures und Views auf dem SQL Server. Aber ich verknüpfe
    keine Tabellen vom SQL Server mehr in Access.

    Ist es beispielsweise möglich die Tabelle / Datenbank direkt unter der Haube zu ersetzen ohne im "Quelltext" Änderungen machen zu müssen? Also sodass die Tabelle "Projekte" auf den SQL-Server zugreift anstatt auf die Access-Backend Datei? (Bild 3)

    <https://i.ibb.co/vDY5j9F/Tabellenaustausch-3.png>

    Das könnte möglich sein, hab ich so noch nie probiert.

    Servus
    Winfried


    Community Forums NNTP Bridge: http://communitybridge.codeplex.com/
    Access-FAQ: http://www.donkarl.com/AccessFAQ.htm Access-Stammtisch: http://www.access-muenchen.de

    Mittwoch, 9. Dezember 2020 16:51
  • Hallo Michael

    So wie die Namen der Tabellen aufgebaut sind deutet das ganz darauf hin das du dieses auch in den Feldbezeichnungen haben wirst - Lehrzeichen Sonderzeichen.....

    ich würde das 1 x Komplett neu aufsetzen sonst hast du keine freude daran

    Kurzfristig sollte man sich evtl. die Indexe anschauen - sind die vernünftig gesetzt

    Basieren die Formulardaten auf Abfragen in der DB oder sind die SQL Strings beim formular hinterlegt

    Sind evtl. ungeschickte Sortierungen in den Abfragen

    Ich denke das "nur" der umstig auf den MSSQL der falsche weg ist - weil besonders dabei sollte man die DB kennen

    Gruss

    Michael

    Montag, 14. Dezember 2020 13:15
  • aber du kannst die tabelle Projekte doch wieder als Projekte einbinden - und nicht als dbo_Projekte

    dann sollte es zum testen so weiter laufen

    GANZ wichtig bei der ODBC Anbindung ist das du an jeder Tabelle einen Timestamp Feld in den MSSQL Tabellen anfügst

    Montag, 14. Dezember 2020 13:19