Announcement

Collapse
No announcement yet.

Accessdatenbank in SQLdatenbank umwandeln

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Accessdatenbank in SQLdatenbank umwandeln



    Guten Morgen,

    ich arbeite für eine Firma, die eine selbst entwickelte Software auf Accessbasis vertreibt. Auf Kundenwunsch wollen wir nun die gesamte Software auf eine SQLdatenbank umstellen, weil die schneller und flexibler ist als eine Accessdatenbank.

    Problem an der ganzen Angelegenheit ist nur, dass keiner bei uns sich mit SQL auskennt.
    Nach einigen Foren und Versuchen habe ich einen SQL Server 2005 installiert, weil nur dieser sich laut meiner Info mit Access 2007 beim upsizing verträgt.

    Dem ist allem Anschein nach auch so, denn mit allen anderen Servern, die neuer waren ging es nicht.

    Nach meinem bisherigen bescheidenen Wissen kann ich mit Access aus einer bestehenden Accessdatenbank eine SQLdatenbank erstellen über den Upsizingassistenten.

    Soweit so gut. Gesagt getan und .......hhm....ich bin mir nicht ganz sicher, ob dass jetzt auch funktioniert hat, denn meiner Meinung nach hat Access lediglich eine Verküpfung mit der Accessdatenbank (accdp) über die ODBC-Schnittstelle erstellt. Dateibezeichnung vorher accdp danach adp.

    Ist das dann schon eine SQLDatenbank? Ich glaube nicht, denn wenn ich
    diese Datei über SQL Managementstudio öffne, geht sofort Access auf.

    Ich entschuldige mich schon im Vorfeld für meine sicher ziemlich unqualifizierte Frage, aber ich brauche wirklich einen Rat dafür.

  • #2
    Hallo und Willkommen im Club!

    Originally posted by Software Blindflug View Post
    Auf Kundenwunsch wollen wir nun die gesamte Software auf eine SQLdatenbank umstellen, weil die schneller und flexibler ist als eine Accessdatenbank.
    Schneller=nein, Flexibler=jein
    Aber auf jeden Fall viel stabiler und bereit für größere Datenmengen. Grundsätzlich ein guter Plan!

    Originally posted by Software Blindflug View Post
    Problem an der ganzen Angelegenheit ist nur, dass keiner bei uns sich mit SQL auskennt.
    Das ist wirklich für dieses Vorhaben ein Problem, leider habe ich da keine besser Nachricht.

    Originally posted by Software Blindflug View Post
    Soweit so gut. Gesagt getan und .......hhm....ich bin mir nicht ganz sicher, ob dass jetzt auch funktioniert hat, denn meiner Meinung nach hat Access lediglich eine Verküpfung mit der Accessdatenbank (accdp) über die ODBC-Schnittstelle erstellt. Dateibezeichnung vorher accdp danach adp.
    ADP= Access - Projektdatei = Formulare im Access, Tabellen auf dem SQL- Server, Abfragen als VIEW auf dem SQL - Server (das konsequent, sorgt aber für die größten Migrationsprobleme)
    Das Upsizing hat damit also geklappt, es sollte zusätzlich zur *.adp auf dem Server eine entsprechend benannte Datenbank geben.
    ODBC sollte hier keine Rolle spielen, der Zugriff erfolgt standardmäßig direkt über ADO. Entsprechend dürfte es keine ODBC - Datenquellen geben.

    Originally posted by Software Blindflug View Post
    Ist das dann schon eine SQLDatenbank? Ich glaube nicht, denn wenn ich
    diese Datei über SQL Managementstudio öffne, geht sofort Access auf.
    Das glaube ich nun nicht, kann es sein, dass da noch was verwechselt wird? Im Managementstudio, unter dem Baum "Datenbanken" sollte es einen Eintrag mit der neuen DB geben. Wenn man diesen "entblättert" müßte man die Tabellen usw. sehen. Diese DB besteht hier imho völlig unabhängig von Access.


    Aus meiner Sicht gibt es 2 große Probleme bei diesem Vorhaben:
    1. wird im VBA - Code noch DAO verwendet? Wenn ja, dann muss das alles umgeschrieben werden, eine *.adp arbeitet wie gesagt über ado
    2. Gibt es Abfragen, die auf lokale Daten - z.B. Formularfelder - zurückgreifen bzw. Access - Funktionen wie NZ() oder IIF() verwenden? Diese müssen auch umgebaut werden, besonders problematisch ist hier die Parameterübergabe.

    Ein Kompromiß - Weg wäre ODBC.
    Dazu muss man eine entsprechende DSN anlegen und die Tabellen in das Original - Frontend (nicht die *.adp) über externe Daten -> ODBC einbinden (anschließend das 'dbo_' aus allen Namen entfernen.)
    Dann kommt man mit minimalen Änderungen am Frontend aus, der Teufel sittzt hier im Detail.
    Nachteil ist die Notwendigkeit, überall diese DSNs einrichten zu müssen. Außerdem ist das sehr langsam im Vergleich zur reinen Projektlösung. Auch hat ODBC so seine Eigenheiten. Trotzdem konnte ich auf diesem Weg bereits größere Anwendungen mit endlichem Aufwand migrieren.

    Viel Erfolg!
    Tino
    Ich habs gleich!
    ... sagte der Programmierer.

    Comment


    • #3
      Vielen Dank für die schnelle Antwort

      Hallo Tino,

      vielen Dank für die schnelle Antwort.

      Wie es scheint hatten wir uns die ganze Umstellung wohl etwas zu einfach vorgestellt.

      Im Moment bin ich dabei mir das SQL Handbuch zu Gemüte zu führen. Dabei bin ich auch gleich mal im Managementstudio auf besagte Datenbanken und Tabellen gestoßen.

      Was Deine beiden angesprochenen Probleme angeht, so bestehen diese in der Tat. Demnach bleibt uns wohl keine andere Möglichkeit, als einen Fachmann für die Anpassung zu besorgen.

      Ich danke Dir erstmal für die schnelle und informative Antwort.

      Ich halte Dich auf dem neusten Stand

      MfG

      Comment


      • #4
        Hallo Software Blindflug,

        Access-Dateien können mobil/on-the-fly verwendet werden.
        Mit MS-SQL-Datenbanken ist dies nicht möglich und müssen immer erst in eine SQL-Server-Instanz importiert werden.
        Der Kunde muss deshalb auch den SQL-Server installieren. Die abgespeckte Express-Version (nur ein CPU-Kern, max 10GB,..) ist kostenlos.
        Nur die extrem kastrierte (keine View, Index,...) SQL Server Compact kann wie eine Access-Datenbank ad-hoc genutzt werden.

        Außerdem kann der SQL Server 2005 standardmäßig nicht mit Office 2007-Dateien umgehen.
        So kann die Access 2007-Datenbank als SQL-Server-Datenbank gespeichert werden:
        1. Treiber nachrüsten 2007 Office System Driver
        2. das MS SQL Management Studio öffnen,
        3. eine neue Datenbank anlegen
        4. im Datenbank-Kontextmenü per "Task -> Daten importieren..." die Tabellen/Views einlesen.
        5. Als Datenquelle "Microsoft Office 12.0 Access Databas Engine..." auswählen
          und in den Eigenschaften den Dateipfad angeben (aus Sicht des Servers auf dem die SQL-Instanz/Server installiert ist)
        Und Falk Prüfer sprach: Formatierung von SQL in Beiträgen

        Comment


        • #5
          Originally posted by knoxyz View Post
          Hallo Software Blindflug,
          So kann die Access 2007-Datenbank als SQL-Server-Datenbank gespeichert werden:
          ....
          Hier erfolgt allerdings ein reiner Daten- und Strukturimport während der Upsizing - Assistent auch die referenzielle Integrität mit übernimmt - wahlweise über DRI (Foreign Keys) oder Trigger.
          Wenn man in Access keine Beziehnungen definiert hat, spielt das natürlich keine Rolle und man kann das "Versionsgetue" von Access vermeiden, ansonsten ist der Access - Assistent mein Favorit.

          Grüße
          Tino
          Zuletzt editiert von tinof; 20.06.2011, 17:49. Reason: Rechtschreibung
          Ich habs gleich!
          ... sagte der Programmierer.

          Comment


          • #6
            SQL mein bester Freund

            @ knoxyz:

            so wie Du es mir beschrieben hast, haben wir es heute auch versucht.

            Es scheint zu funktionieren, allerdings übernimmt er wie tinof schon sagte:

            nur "ein reiner Daten- und Strukturimport" Trigger und Keys fehlen gänzlich.

            Wir sind im Moment dabei mit einem Script diese zu übernehmen.

            Außerdem sind wir im Internet noch auf ein Programm gestoßen, welches wie der Upsizingassistent aber noch effizienter die gesamten Daten in SQL umwandelt. Getestet haben wir es noch nicht, denn beim ersten Versuch war der benutzte Rechner deutlich überfordert.

            Naja, Versuch macht klug.
            Wir haben übrigens auch herausgefunden, dass die umzuwandelnde Tabellenzahl bei SQL auf 64 begrenzt ist, was uns neue Probleme bereitet, weil wir 245 Tabellen im Programm benutzten.

            Wir kommen langsam voran..... JUHU...

            Comment


            • #7
              Hallo Software Blindflug,

              wirklich ärgerlich, das die MS Produkte sogar untereinander immer wieder so inkompatibel sind.

              Wie ist denn euer aktuelle Stand?
              Habt Ihr eine Lösung gefunden?
              Und Falk Prüfer sprach: Formatierung von SQL in Beiträgen

              Comment


              • #8
                Originally posted by knoxyz View Post
                Hallo Software Blindflug,

                wirklich ärgerlich, das die MS Produkte sogar untereinander immer wieder so inkompatibel sind.

                Wie ist denn euer aktuelle Stand?
                Habt Ihr eine Lösung gefunden?
                Hallöchen,

                ja wir haben eine Lösung gefunden. Allerdings nicht allein, wir haben noch einen Informatiker hinzu ziehen können. Derzeit ist die Datenbank bereits in SQL umgewandelt und es läuft bis auf einige kleine Fehler ganz gut.

                Vielen Dank nochmal für die Hilfe.

                Schöne Woche noch.

                Comment


                • #9
                  Wäre sehr nett wenn du uns verraten würdest wie bzw. womit (Software, eigenes Skript,...) Ihr es genau geschafft hab.

                  Vielleicht benötigt es noch jemand anderes.
                  Und Falk Prüfer sprach: Formatierung von SQL in Beiträgen

                  Comment

                  Working...
                  X