Probleme nach SQL Server Update

24/08/2009 - 17:29 von Michael Schörner | Report spam
Hallo allerseits,

Backend SQL Server 2005 (SQL Server 2k Kompatibilitàtsmodus), Frontend
Access 2003 adp.

Seit ich den SQL Server auf meinem Entwicklungsrechner auf den neuesten
Stand gebracht habe (derzeit 9.0.4035), funktioniert die Anwendung an
einigen Stellen nicht mehr wie vorher.
Beispiel: Subform basierend auf einer View, eindeutige Tabelle gesetzt, ist
auf einmal nicht mehr aktualisierbar ("Recordset nicht aktualisierbar").

Beim Kunden làuft die Version 9.0.1399. Und alle Funktionen laufen, wie sie
sollen.

Weiß jemand, ob Access-Projekte und SQL Server 2005 ab einer bestimmten
Version nicht mehr korrekt zusammen spielen? Das wàre der Mega-Gau für mein
Projekt, falls der Kunde seine SQL Server-Version aktualisiert.

Vielen Dank für jeden Hinweis.

Viele Grüße,
Michael
 

Lesen sie die antworten

#1 Christian Coppes
29/08/2009 - 10:12 | Warnen spam
"Michael Schörner" wrote:

Hallo allerseits,

Backend SQL Server 2005 (SQL Server 2k Kompatibilitàtsmodus), Frontend
Access 2003 adp.

Seit ich den SQL Server auf meinem Entwicklungsrechner auf den neuesten
Stand gebracht habe (derzeit 9.0.4035), funktioniert die Anwendung an
einigen Stellen nicht mehr wie vorher.
Beispiel: Subform basierend auf einer View, eindeutige Tabelle gesetzt, ist
auf einmal nicht mehr aktualisierbar ("Recordset nicht aktualisierbar").

Beim Kunden làuft die Version 9.0.1399. Und alle Funktionen laufen, wie sie
sollen.

Weiß jemand, ob Access-Projekte und SQL Server 2005 ab einer bestimmten
Version nicht mehr korrekt zusammen spielen? Das wàre der Mega-Gau für mein
Projekt, falls der Kunde seine SQL Server-Version aktualisiert.

Vielen Dank für jeden Hinweis.




Hallo Michael,

auf das gleiche Problem bin ich beim Update von SQL Server 2000 auf SQL
Server 2005 ebenfalls gestoßen (und bei Dir lief es ja im
Kompatibilitötsmodus).

Damit eine View aktualisierbar ist, muß Access einen eindeutigen Index
haben. Den sucht sich Access normalerweise automatisch heraus, i.d.R. der
Primary Key, und zwar beim ersten Verbinden mit der View. Kann es keinen
finden, wirst Du nach einem Feld gefragt, das einen eindeutigen Index
darstellt. Letzteres passiert aber nur, wenn Du die Tabelle/View per ODBC von
Hand verlinkst, bei einer DSN-losen Verbindung nicht. Aber Access bietet die
Möglichkeit, auf eine verlinkte Tabelle einen Index zu setzen. Dabei wird der
Index lediglich lokal erzeugt, auf dem Server àndert sich nichts.
Nàhere Infos siehe hier:
http://office.microsoft.com/de-de/a...91031.aspx

Darüber hinaus muß die View auf dem Server allerdings auch verànderbar sein.
Das kannst Du prüfen, wenn Du die View mit dem SQL Server Management Studio
öffnest und versuchst, einen Datensatz zu àndern.
In der Regel sind Views, die aus mehr als einer Tabelle zusammengesetzt
sind, nicht aktualisierbar. Bei einem Access Projekt kann man dazu dann im
Formular die Eigenschaft "Unique Table" auf diejenige Tabelle der View
setzen, die verànderbar sein soll, die Felder der externen Tabelle können
dann nicht geàndert werden.
Auf dem SQL Server hat man die Möglichkeit, der View einen eigenen Trigger
zu verpassen, den "INSTEAD OF"-Trigger. Dieser ersetzt die SQL-Server
Standardmethode, einen Datensatz zu aktualisieren, man hat damit die
Möglichkeit, in einer verlinkten View alle Felder aller beteiligten Tabellen
zu veràndern (der Trigger erhàlt zwei Tabellen vom SQL Server namens
"deleted" und "inserted" und daraus kann man die verànderten Daten
herauslesen und in die jeweiligen Tabellen mit UPDATE/INSERT/DELETE einfügen).

Infos dazu siehe hier:
http://msdn.microsoft.com/de-de/lib...75521.aspx

Und zuletzt: Vielleicht ist auch einfach der SQL 2000 Kompatibilitàtsmodus
nach dem Update abgeschaltet worden?

Gruß

Christian

Ähnliche fragen