2009-05-22 3 views
0

Ich habe ein Problem in Microsoft Dynamics GP aufgetreten und bin Forschung, um zu sehen, ob dies die Ursache ist, aber dies könnte ein Access to SQL Server-Problem sein. GP speichert Daten in SQL Server und MS Access wird verwendet, um auf die Tabellendaten zuzugreifen. Einige Daten scheinen in der Produktionsdatenbank zu fehlen. Leider weiß ich nicht, was mit Access gemacht wird, da mir das nicht mitgeteilt wird. Eine einfache Lösung wäre, ihnen zu sagen, dass sie aufhören sollen, Access zu verwenden, um zu überprüfen, ob noch Daten verloren gehen, aber ich würde gerne irgendwelche dokumentierten Probleme wissen, bevor ich dies vorschlage.Gibt es Probleme beim Verbinden von MS Access mit einer SQL Server-Datenbank, die ich beachten sollte?

Also in einem Versuch, eine bestmögliche Schätzung zu geben, was passiert, was macht Access, wenn es mit SQL Server als Backend verbunden ist? Sperrt es die Tabellen? Was müsste getan werden, damit Daten fehlen oder gelöscht werden? Wenn Access die Ursache ist, welche Schritte sollten zur Lösung unternommen werden?

+0

Klingt wie ein Job für Microsoft Support ;-) – lothar

Antwort

3

Ist es Ihre Absicht, dass Access Daten ändern oder löschen darf?

Wenn nicht, haben Sie in Betracht gezogen, eine Benutzer-ID für die Verwendung durch Access einzurichten, die schreibgeschützten Zugriff zulässt (kein Wortspiel beabsichtigt)?

In jedem Fall besteht eine bewährte SQL Server-Methode darin, sicherzustellen, dass Benutzerkonten die minimalen Zugriffsrechte haben, die zur Erfüllung der Geschäftsanforderungen erforderlich sind. Bitte geben Sie nicht jedem den Account mit einem leeren Passwort.

EDIT:

Denken von Access wie SQL Server Management Studio, mit anderen Worten ein interaktives Tool, ein um die Datenbank abzufragen und ändern in einer praktisch unbegrenzten Art und Weise nutzen können Ihr Konto über die Berechtigungen zur Verfügung gestellt, damit Sie tun Das. Da es sich um eine interaktive Umgebung handelt, in der man eine Tabelle hochziehen kann, ist das Löschen einer Zeile so einfach wie das Klicken auf diese Zeile und das Drücken der Löschtaste. Das Ändern eines Datenwerts ist ebenso einfach wie das Klicken auf diese Zeile und Spalte und das Eingeben eines neuen Wertes.

Natürlich ist das Löschen von etwas so einfach wie versehentliches Drücken der Löschtaste.

Es überrascht mich nicht, dass, wenn Sie Benutzern ein solches Tool und ein Konto ohne Zugriffsbeschränkungen geben, dass Daten am Ende geändert werden, sei es durch Absicht, Unfall oder anderweitig.

+0

Danke. Ich bin bei einem ISV.Deshalb habe ich keine Ahnung, was sie mit Access machen. – Kinze

2

Auf SQL Server-Daten wird normalerweise in MSACCESS mithilfe von verknüpften Tabellen zugegriffen, bei denen es sich um ODBC/OLEDB-Verbindungen handelt. Während diese Technologie etwas antiquiert und nicht vollständig fehlerfrei ist, kann ich mir nichts in der zugrunde liegenden Technologie vorstellen, die das verursachen könnte.

Greifen Ihre normalen Benutzer auf diese Tabellen mit einer ODBC-Datenquelle oder einer Verbindungszeichenfolge zu, die eine Administrator-ID und ein Kennwort für die SQL Server-Datenbank enthält (d. H. Uneingeschränkte Rechte)? Wenn dies der Fall ist, werden fehlende Daten gegeben sein. Das Löschen von Zeilen in einer offenen verknüpften MSACCESS-Tabelle ist so einfach wie das Löschen von Zeilen in Excel.

Datensatzsperrung in MSACCESS/SQL-Verbindungen ist in der Regel optimistisch (sofern Sie es nicht ändern). In den alten Tagen unter SQL Server 2000 bedeutete dies, dass, wenn zwei Personen denselben Datensatz zur gleichen Zeit editierten, die Person, die zuletzt speicherte, (still) gewann. Heutzutage wird dem letzten Benutzer mitgeteilt, dass jemand anders den Datensatz bearbeitet hat, während er Änderungen vorgenommen hat, und bietet zwei Optionen: Meine Änderungen verwerfen oder die Änderungen der anderen Person überschreiben.

In jedem Fall sollte die Bereitstellung von schreibgeschütztem Zugriff auf die Tabellen viel Sodbrennen lindern.

Verwandte Themen