Readdy Write  
0,00 €
Your View Money
Views: Count
Self 20% 0
Your Content 60% 0

Users by Links 0
u1*(Content+Views) 10% 0
Follow-Follower 0
s2*(Income) 5% 0

Count
Followers 0
Login Register as User

ok Timestamp Access Fehlermeldung: Schreibkonflikt: Dieser Datensatz wurde seit Beginn der Bearbeitung von einem anderen Benutzer geändert

07.01.2020 (👁11058)

ok Timestamp Access Fehlermeldung: Schreibkonflikt: Dieser Datensatz wurde seit Beginn der Bearbeitung von einem anderen Benutzer geändert

Fehlermeldung

Schreibkonflikt:

Dieser Datensatz wurde seit Beginn der Bearbeitung von einem anderen Benutzer geändert. Wenn Sie den Datensatz speichern, werden Sie die Änderungen des anderen Benutzers überschreiben.

Kopieren Ihrer Änderung in die Zwischenablage ermöglichte es Ihnen, die Änderungen des anderen Benutzers anzusehen und dann Ihre Änderungen einzufügen, wenn Sie es wünschen

->In Zwischenablage kopieren

->Eigene Änderungen verwerfen

Lösung

Man muss / sollte in SQL Server eine Spalte vom Typ timestamp einfügen

Dadurch wird es für den Server oder Client einfacher, einen geänderten Datensatz zu erkennen.

Verbesserung bei Access:

Mit einer Spalte timestamp muss nur die ID als primary key plus der wert in Timestamp geprüft werden um zu erkennen, ob ein Datensatz gerade bearbeitet wird.

Vor allem beim Löschen oder ändern von großen Datenmengen mit Query Abfragen kann es dadurch zu verbesserungen kommen.

SQL Server: Timestamp Feld

Unter Datentyp gibt es in SQL Server speziell ein Datentyp Feld vom Typ: timestamp. Dieses hat die Größe von binär 8 Byte

Eingabe

Unter Microsoft MS Access erscheinen eingebundene Timestamp Felder als <Binärdaten>

SQL-Server einbinden in MS Access

Zugriff über ODBC

Dann in externe Daten ODBC Datenbank

->Erstellen Sie eine Verknüpfung zur Datenquelle, indem Sie eine verknüpfte Tabelle erstellen

Dann muss man nur eine neue Datenquelle unter Computerdatenquelle mit dem Button: Neu erstellen und den Typ der neuen Datenquelle als SQL Server zuweisen

Der neuen Datenquelle für SQL Server bindet man den lokalen SQL Server .\sqlexpress oder einen externen SQL Server mit einer vorgegebenen SQL Connectionstring zu

In der Quelle wählt man die Standarddatenbank von master auf die Datenbank (hier Test), welche man verwenden möchte

Dann werden alle Tabellen, View Abfragen und interne Tabellen angezeigt zur Einbindung in MS Access.

Folgen erkennt man in MS Access in den verknüpften Tabellen aus SQL Server, dass die eingebundenen Timestamp Tabellen vom Typ: Binär in MSAccess gehandelt werden.

Änderung in MS Access gleichzeitig von 2 Benutzern oder zwei gleichzeitigen Anwendungen

Normalerweise kommt die Meldung:

Microsoft Access

Die Daten wurden geändert.

Ein anderer Benutzer hat diesen Datensatz bearbeitet und die von ihm vorgenommenen Änderungen gespeichert, bevor Sie versucht haben, Ihre Änderungen zu speichern.

Bearbeiten Sie den Datensatz neu

Oder die Fehlermeldung

Schreibkonflikt:

Dieser Datensatz wurde seit Beginn der Bearbeitung von einem anderen Benutzer geändert. Wenn Sie den Datensatz speichern, werden Sie die Änderungen des anderen Benutzers überschreiben.

Kopieren Ihrer Änderung in die Zwischenablage ermöglichte es Ihnen, die Änderungen des anderen Benutzers anzusehen und dann Ihre Änderungen einzufügen, wenn Sie es wünschen

->In Zwischenablage kopieren

->Eigene Änderungen verwerfen

Diese Tabelle hat zum Beispiel noch kein Timestamp Feld

http://support.microsoft.com/kb/128808

Timestamps

On servers that support them (such as Microsoft SQL Server), timestamp fields make updating records more efficient. Timestamp fields are maintained by the server and are updated every time the record is updated. If you have a timestamp field, Microsoft Access needs to check only the unique index and the timestamp field to see whether the record has changed since it was last retrieved from the server. Otherwise, Microsoft Access must check all the fields in the record. If you add a timestamp field to an attached table, re-attach the table in order to inform Microsoft Access of the new field.

and

http://www.sql-server-performance.com/2007/access-sql/ 

One way to increase performance of DELETEs or UPDATEs made by your Access front-end to a SQL Server backend is to ensure that the table on SQL Server has a timestamp column. If a table does have a timestamp column, then when Access DELETEs or UPDATEs a row, Access will automatically check the timestamp column to see if it has changed during the time that the transaction begun and the current time that the deletion or update is being made. If the timestamp column has changed, then the DELETE or UPDATE will be aborted. If a timestamp column does not exist in the table, then Access will have to compare all the field values when the transaction begun to their current value to determine if there were any changes. This is much slower for Access to perform than checking the timestamp column.

Create SQL Transact

SQL Anweisung zur SQL Server Tabellen mit TimeStamp Spalte

USE [Test]

GO

/****** Object:  Table [dbo].[tblTimeStamp]    Script Date: 07.01.2020 16:01:11 ******/

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

CREATE TABLE [dbo].[tblTimeStamp](

       [ID] [int] IDENTITY(1,1) NOT NULL,

       [Eingabe] [nvarchar](50) NULL,

       [tmp] [timestamp] NULL,

 CONSTRAINT [PK_tblAccess] PRIMARY KEY CLUSTERED

(

       [ID] ASC

)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]

) ON [PRIMARY]

GO