Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

MS Access hat einen Datensatz wegen Sperrverletzungen nicht akt.

149 views
Skip to first unread message

Amin

unread,
Jan 16, 2005, 4:27:03 PM1/16/05
to
Hi,

ich verlinke mit DAO drei Tabellen einer MYSQL-DB mit Access.
Das Auslesen der Tabellen funktioniert ohne Probleme.

Nun möchte ich eine Aktualisierungsabfrage nach gleichem Schema durchführen
und erhalte folgende Fehlermeldung:

"MS Access konnte nicht alle Datensätze aktualisieren, die von der
Aktualisierungabfrage betroffen sind.

MS Access hat ... einen Datensatz wegen Sperrverletzungen nicht
aktualisiert..."

Ich habe mir das abgesetzte SQL Statement mit Debug.Print angezeigt und
erfolgreich mit dem MySQL Client ohne Fehler ausgeführt.

Kann mir jemand sagen, woran das liegen könnte?
Aufgefallen ist mir, dass die Datensätze der Tabelle als gelöscht in der
Tabellenansicht dargestellt werden. Muss ich die Tabelle refreshen oder geht
das prinzipiell nicht?

Danke.

Amin

(Access 2000 SP3)

Denke nicht, dass es am code liegt:

Sub ok_click()
Dim intnewQueue As Integer
Dim strTicketnr As String
Dim g_strQUERY As String
intnewQueue = 15
strTicketnr = "123456"
g_strQUERY = "update ticket set Queue_ID = " & intnewQueue & "" _
& " where tn = '" & strTicketnr & "'"
DoCmd.RunSQL g_strQUERY
End Sub

Henry Habermacher [MVP Access]

unread,
Jan 17, 2005, 4:53:19 AM1/17/05
to
Hallo Amin

Amin <Am...@discussions.microsoft.com> wrote:

> Kann mir jemand sagen, woran das liegen könnte?
> Aufgefallen ist mir, dass die Datensätze der Tabelle als gelöscht in
> der Tabellenansicht dargestellt werden. Muss ich die Tabelle
> refreshen oder geht das prinzipiell nicht?

Grund liegt vermutlich daran, dass Du Access nicht mitgeteilt hast,
welches der Eindeutige Schlüssel über der Tabelle ist (ich denke es ist
strTicketNr oder ist dieser evt. nicht eindeutig?). Falls es da keinen
gibt, solltest Du da einen anlegen, sonst hat Access probleme, den
Update durchzuführen.

Des weiteren:

Dim db as Database
set db = CurrentDB
db.Execute strSQL, dbFailOnError

gibt Dir weit bessere Möglichkeiten, herauszufinden, was passiert ist.

Gruss
Henry


--
Keine E-Mails auf Postings in NGs senden!
Don't send e-mails to postings in newsgroups!
KB: http://support.microsoft.com/default.aspx
FAQ: http://www.donkarl.com (neu mit Suchfunktion!)
OH: Online Hilfe von Microsoft Access (Taste F1)
Downloads: http://www.dbdev.org

Amin

unread,
Jan 17, 2005, 7:37:01 AM1/17/05
to
Hallo Henry,

danke für die Antwort.
Der Primärschlüssel ist ein anderes Feld, welches ich nicht zwangsläufig für
die Abfrage benötige. Leider finde ich keine Informationen, wie ich bei einer
verknüpften Tabelle Access mitteilen kann, welche Spalte den Primärschlüssel
enthält. Gibt es vielleicht einen Link um dies nachlesen zu können?

Ich habe bei diesem Problem bereits mit SQL-Pass-Through-Abfragen
experimentiert. Select-Statements kann ich ohne Probleme ausführen.
Allerdings habe ich keine Quellen finden können, wie man ein Update Statement
ausführt. Dazu bräuchte ich nur mal eine Idee, wo ich dazu was was nachlesen
kann, bzw. ein Beispiel finde.

Danke und Grüsse,

Amin Abu Soud

stefan hoffmann

unread,
Jan 17, 2005, 7:43:58 AM1/17/05
to
tach Amin,

Amin schrieb:


> Der Primärschlüssel ist ein anderes Feld, welches ich nicht zwangsläufig für
> die Abfrage benötige. Leider finde ich keine Informationen, wie ich bei einer
> verknüpften Tabelle Access mitteilen kann, welche Spalte den Primärschlüssel
> enthält.

Z.B. als SQL:
"CREATE INDEX IndexName ON Tabelle(Feldliste) WITH PRIMARY;"

> Ich habe bei diesem Problem bereits mit SQL-Pass-Through-Abfragen
> experimentiert. Select-Statements kann ich ohne Probleme ausführen.
> Allerdings habe ich keine Quellen finden können, wie man ein Update Statement
> ausführt.

Anstatt einer SELECT-Anweisung eine UPDATE-Anweisung als CommandText.

mfG
--> stefan <--

Amin

unread,
Jan 17, 2005, 7:45:08 AM1/17/05
to
Hallo Henry,

wenn ich die Codezeile
"DoCmd.RunSQL strSQL"
durch
"db.Execute strSQL, dbFailOnError"
ersetze, führt Access das Update entsprechend aus.

Danke.

0 new messages