Supportnet / Forum / Datenbanken
Verbindung Access, MS SQL-Server
Frage
Hallo,
Ich habe eine Datenbank in Access in die Benutzer über Formulare Daten eingeben können. Ich möchte die Datenbank nun in den MS SQL-Server importieren. Die Eingabe von Daten über das Access Formular soll aber weiterhin möglich sein.
Weiß jemand wie so was geht?
Vielen Dank für Eure Antworten,
Yuna
Antwort 1 von xmatrix
Tabellen im SQL-Server können per ODBC verknüpft werden.
Vorgehen bei Access 2000:
- Datei | Externe Daten | Tabellen verknüpfen
- im Dateityp "ODBC-Datenbanken" auswählen
- Suchen in "Data Sources" oder Schaltfläche "Neu" und den entsprechenden Treiber für den Microsoft SQL-Server wählen
Den dann folgenden Dialog kann ich leider nicht nachvollziehen, da wir eine Oracle-Datenbank haben.
Es sollten jedoch Abfragen zum Datenbanknamen und den Zugriffsrechten folgen. Diese Angaben sollte ein Datenbankadmin eigentlich alle kennen.
Vielleicht kennt jemand anderes die konkreteren Angaben dazu?
Sind dann die Tabellen in den SQL-Server exportiert und mit einer Access-Datenbank verknüpft, fehlt eventuell nur noch eine Anpassung des verknüpften Tabellennamens, damit die Formulare weiterhin funktionieren.
Vorgehen bei Access 2000:
- Datei | Externe Daten | Tabellen verknüpfen
- im Dateityp "ODBC-Datenbanken" auswählen
- Suchen in "Data Sources" oder Schaltfläche "Neu" und den entsprechenden Treiber für den Microsoft SQL-Server wählen
Den dann folgenden Dialog kann ich leider nicht nachvollziehen, da wir eine Oracle-Datenbank haben.
Es sollten jedoch Abfragen zum Datenbanknamen und den Zugriffsrechten folgen. Diese Angaben sollte ein Datenbankadmin eigentlich alle kennen.
Vielleicht kennt jemand anderes die konkreteren Angaben dazu?
Sind dann die Tabellen in den SQL-Server exportiert und mit einer Access-Datenbank verknüpft, fehlt eventuell nur noch eine Anpassung des verknüpften Tabellennamens, damit die Formulare weiterhin funktionieren.
Antwort 2 von firefox
Ab der Version 9.0 (Access2000) gibt es in Access die sogenannten Access Projekte (adp).
Diese erlauben einen direkten Zugriff auf den SQL Server und sind viel bequemer zu handhaben als ODBC.
Diese erlauben einen direkten Zugriff auf den SQL Server und sind viel bequemer zu handhaben als ODBC.
Antwort 3 von yuna
Hallo,
Vielen Dank für Eure Anworten.
Ich habe das Problem nun so gelöst:
Ich habe eine neue (leere) Datenbank mit dem Enterprise Manager erstellt. Dann die Daten von Access in diese Datenbank importiert. In Access bin ich dann auf neue Datenbank und habe die Option "neues Projekt mit bestehenden Daten erstellen" gewählt. Die Formulare habe ich von der alten Access Datenbank rüberkopiert. Leider funktionieren noch nicht alle VBA Prozeduren. Ich hatte in der alten Datenbank ein Formular in dem Personen anhand des Geburtsdatums gesucht werden konnten. Nun kommt bei der Suche die Fehlermeldung: "Typen unverträglich" Hier ein Auschnitt aus dem Programmiercode:
Dim db As Database
Dim rs As Recordset
Dim geburtsdatum As Date
Set rs = Me.RecordsetClone
rs.FindFirst "geburtsdatum = #" & Format(Me!txtSuchfeld, "mm/dd/yyyy") & "#"
Me.Bookmark = rs.Bookmark
Der Fehler liegt wahrscheinlich an den verschiedenen Datumsformaten von acces und SQL-Server. Weiß vielleicht irgendjemand eine Lösung um das Teil zum Laufen zu bringen.
Mfg,
yuna
Vielen Dank für Eure Anworten.
Ich habe das Problem nun so gelöst:
Ich habe eine neue (leere) Datenbank mit dem Enterprise Manager erstellt. Dann die Daten von Access in diese Datenbank importiert. In Access bin ich dann auf neue Datenbank und habe die Option "neues Projekt mit bestehenden Daten erstellen" gewählt. Die Formulare habe ich von der alten Access Datenbank rüberkopiert. Leider funktionieren noch nicht alle VBA Prozeduren. Ich hatte in der alten Datenbank ein Formular in dem Personen anhand des Geburtsdatums gesucht werden konnten. Nun kommt bei der Suche die Fehlermeldung: "Typen unverträglich" Hier ein Auschnitt aus dem Programmiercode:
Dim db As Database
Dim rs As Recordset
Dim geburtsdatum As Date
Set rs = Me.RecordsetClone
rs.FindFirst "geburtsdatum = #" & Format(Me!txtSuchfeld, "mm/dd/yyyy") & "#"
Me.Bookmark = rs.Bookmark
Der Fehler liegt wahrscheinlich an den verschiedenen Datumsformaten von acces und SQL-Server. Weiß vielleicht irgendjemand eine Lösung um das Teil zum Laufen zu bringen.
Mfg,
yuna
Antwort 4 von firefox
Allgemein:
Achtung bei ADP´s - hier wird eigentlich nur noch ADO genutzt - DAO nur in speziellen Fällen.
Da du im obigen Beispiel DAO nutzt werden erstmal alle Daten übertragen und danach erst auf Clientseite gefiltert. Arbeitest du also mit vielen Daten, ist der Perfomancegewinn des SQL Servers schnell weg.
Den alten VBA Code 1:1 übernehmen würde ich nicht anraten. Am besten eine Lektüre zulegen (gibt da z.b. ein Buch von Microsoft Press mit Access+SQL Server).
In deinem obigen Problem vergleichst du also gar nicht direkt mit dem SQL Server sondern Access Intern. Dennoch kann sich beim Datum das Format geändert haben. Standardmäßig ist bei einem deutschen SQL Server das Format "dd.mm.yyyy hh:mm:ss" im Gebrauch.
Achtung bei ADP´s - hier wird eigentlich nur noch ADO genutzt - DAO nur in speziellen Fällen.
Da du im obigen Beispiel DAO nutzt werden erstmal alle Daten übertragen und danach erst auf Clientseite gefiltert. Arbeitest du also mit vielen Daten, ist der Perfomancegewinn des SQL Servers schnell weg.
Den alten VBA Code 1:1 übernehmen würde ich nicht anraten. Am besten eine Lektüre zulegen (gibt da z.b. ein Buch von Microsoft Press mit Access+SQL Server).
In deinem obigen Problem vergleichst du also gar nicht direkt mit dem SQL Server sondern Access Intern. Dennoch kann sich beim Datum das Format geändert haben. Standardmäßig ist bei einem deutschen SQL Server das Format "dd.mm.yyyy hh:mm:ss" im Gebrauch.
Antwort 5 von peter1979
Hallo,
wenn ich das bisher richtig verstanden habe, kann man mit ADP´s ganze MSSQL-Server-Datenbanken mit Access verknüpfen.
Nun möchte ich aber gerne nur einige Tabellen der Datenbank auf dem MSSQL-Server haben, einige andere Tabellen sollen jeweils lokal in der Access-Datenbank liegen.
Meine Frage also: gibt es auch eine Möglichkeit, einzelne MSSQL-Server- Tabellen mit Access zu verknüpfen?
Dankbar für jede Antwort,
Peter
wenn ich das bisher richtig verstanden habe, kann man mit ADP´s ganze MSSQL-Server-Datenbanken mit Access verknüpfen.
Nun möchte ich aber gerne nur einige Tabellen der Datenbank auf dem MSSQL-Server haben, einige andere Tabellen sollen jeweils lokal in der Access-Datenbank liegen.
Meine Frage also: gibt es auch eine Möglichkeit, einzelne MSSQL-Server- Tabellen mit Access zu verknüpfen?
Dankbar für jede Antwort,
Peter