| |  | Online-Kurs: Grundlagen des 3D-Druck-Designs für Industrieingenieure , ein Kurs
|
Autor
|
Thema: prob ... datensatz gesperrt (3712 mal gelesen)
|
BloodyMess Mitglied Applicationingenieur
  
 Beiträge: 604 Registriert: 06.06.2002 AutoCAD Map 3D 2005 Win XP pro
|
erstellt am: 05. Okt. 2004 16:02 <-- editieren / zitieren --> Unities abgeben:         
Hallo, habe eine Datenbank aufgeteilt in ein Front- und ein Backend. Es funktioniert auch alles bestens, doch mit der Größe der Datenbank scheinen auch immer mehr Fehler im Code aufzulaufen. Das größte Problem bisher ist, das wenn ein User einen Datensatz anlegt und er als einziger mit dem Backend verbunden ist, es eine Fehlermeldung like 'Datensatz kann nicht gepeichert werden, da dieser schreibgeschützt ist'. Beim zweiten Anlauf funktioniert es allerdings problemlos. Ich versuche an dieser Stelle ein update auf einen Datensatz durchzuführen. Wie gesagt, beim zweiten Mal funktioniert es. Hat jemand eine Idee, wie man das umgehen könnte? Vielen Dank und Gruß TP
------------------ Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
BloodyMess Mitglied Applicationingenieur
  
 Beiträge: 604 Registriert: 06.06.2002 AutoCAD Map 3D 2005 Win XP pro
|
erstellt am: 02. Nov. 2004 22:45 <-- editieren / zitieren --> Unities abgeben:         
|
WolfgangE Mitglied
   
 Beiträge: 1006 Registriert: 29.01.2003 Compass2000 in (fast) allen Ausbaustufen: Easy, Pro, Jobserver, ACM, Replikator, DBQ- und SQL-Programmierung. Administration, Wartung und Programmierung von MS-SQLServer 2000 und -datenbanken. Grundkenntnisse in AutoLisp-Programmierung.
|
erstellt am: 03. Nov. 2004 07:59 <-- editieren / zitieren --> Unities abgeben:          Nur für BloodyMess
Damit nicht ganz ohne Antwort bleibst: leider keine Ahnung. Hatte zwar mal geringfügig mit Excel zu tun, aber nur mit reinem Excel, keine Trennung oder so. Kann mir auch nicht ganz vorstellen, wo dein Problem liegen könnte. Gibt's irgendwelche Protokollfunktionen oder Ähnliches, die du aktivieren kannst? Wäre nämlich interessant, ob deine Datenbank-Befehle beim ersten Versuch tatsächlich gleich aussehen wie beim zweiten, wenn's dann funktioniert. Also nicht der Befehl, den du im Programm geben möchtest, sonder der, der effektiv abgesetzt wird. Ciao, WolfgangE ------------------ An Optimist Is A Person Who Has Not Been Shown All The Facts Yet!!! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
BloodyMess Mitglied Applicationingenieur
  
 Beiträge: 604 Registriert: 06.06.2002 AutoCAD Map 3D 2005 Win XP pro
|
erstellt am: 03. Nov. 2004 23:58 <-- editieren / zitieren --> Unities abgeben:         
Hallo Wolfgang, Access hat keine Protokollfunktionen - soweit mir bekannt ist. Kann mir den Befehl anschaeun, bevor er abgeschickt wird, aber nicht, wie er bei der Datenbank ankommt. Wieso sollte er beim ersten Mal anders aussehen, als beim zweiten Mal? Wie kann sowas denn kommen? Als die DB kleiner war, hat ja alles noch wunderbar getan .. ich muss die Datensaetze nochmal reduzieren und das dann nochmal ausprobieren. Alles sehr ominoes, was M$ Access da macht. Trotzdem Danke fuer deiner Hilfe .. Gruss TP ------------------ Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
WolfgangE Mitglied
   
 Beiträge: 1006 Registriert: 29.01.2003 Compass2000 in (fast) allen Ausbaustufen: Easy, Pro, Jobserver, ACM, Replikator, DBQ- und SQL-Programmierung. Administration, Wartung und Programmierung von MS-SQLServer 2000 und -datenbanken. Grundkenntnisse in AutoLisp-Programmierung.
|
erstellt am: 04. Nov. 2004 07:36 <-- editieren / zitieren --> Unities abgeben:          Nur für BloodyMess
Wie so was kommen kann? Nun ja, ein Beispiel: viele deiner Befehle werden vermutlich im Frontend dynamisch bzw. variabel zusammengestückelt. Wenn jetzt z.B. eine Variable beim ersten Durchlauf noch nicht belegt ist, ist der Befehl fehlerhaft. Erst beim zweiten Durchlauf funktioniert's dann. Teilweise ist es tatsächlich so, dass bei größeren Datenmengen diverse Zeitabstände zur Laufzeit des Frontend zu groß sind, um wirklich alles sequentiell abarbeiten zu können. Könnte weiters sein, dass z.B. ein Ergebnis einer Datenbankabfrage länger braucht als sonst und eben diese beschriebenen Dinge verursacht. Usw. ------------------ An Optimist Is A Person Who Has Not Been Shown All The Facts Yet!!! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
DetlefTeuteberg Mitglied Solution Developer und Application Manager

 Beiträge: 37 Registriert: 07.03.2001
|
erstellt am: 05. Nov. 2004 10:52 <-- editieren / zitieren --> Unities abgeben:          Nur für BloodyMess
Hallo, ist ja schon ne Weile her, mit Access hantiert zu haben, aber kann mich an solche Probleme auch noch gut erinnern. Das Coding an der Stelle könnte gut helfen. Kann es sein, dass Du versuchst den Datensatz in einer veschachtelten Abfrage zu speichen? Also Abfragen mit Left- oder Right-Joins? Wobei das dann auch beim Update nicht gehen dürfte!! Aber möglicherweise fehlt ihm einfach eine Information zur Identifikation, also ein Index der nicht über Autowert automatisch belegt wird?? Aber Du siehst schon, eigentlich gibt es noch zu wenig Informationen um annähernd gute Ratschläge abgeben zu können... viele Grüße, Detlef Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
BloodyMess Mitglied Applicationingenieur
  
 Beiträge: 604 Registriert: 06.06.2002 AutoCAD Map 3D 2005 Win XP pro
|
erstellt am: 05. Nov. 2004 11:20 <-- editieren / zitieren --> Unities abgeben:         
Hallo Wolfgang Hallo Detlef, jetzt wird´s interessant ..  Hab mittlerweile auch mal wieder etwas rumgesucht, hab aber immer noch keine brauchbare Lösung gefunden. Der Fehler tritt immer nur dann auf, wenn i betimmte Aktionen durchlaufe! Der Datensatz existiert auch schon in der DB, wenn er ihn speichern soll. Als erstes kommt dieser Fehler hoch! Wenn ich nun einen Schritt weitergehe, dann kommt dieser Fehler der dazugehörige Code ist dann ...
Code: Private Sub Arbeiten_zur_Durchführung_AfterUpdate() Dim neueID As Integer neueID = DMax("ID", "ausfuehrende_arbeiten") + 2 DoCmd.SetWarnings False DoCmd.RunCommand acCmdSaveRecord 'hier hängt er dann!!! DoCmd.RunSQL ("insert into ausfuehrende_arbeiten ( ID, Arbeit) values ('" & neueID & _ "', '" & Arbeiten_zur_Durchführung.Value & "');") If Not (neueID - 2 = DMax("ID", "ausfuehrende_arbeiten")) Then DoCmd.OpenForm "frm_insert_ausfuehrende_arbeiten", , , "ID = " & neueID End If Me.lvArbeiten.Requery Arbeiten_zur_Durchführung.Requery DoCmd.SetWarnings True End Sub
Es ist verflixt! Immer nur, wenn ich einen bestimmten Weg gehe. Hatte gestern noch damit rumprobiert, aber das tat´s auch nicht.
Code: DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70
Gruß TP ------------------ Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
WolfgangE Mitglied
   
 Beiträge: 1006 Registriert: 29.01.2003 Compass2000 in (fast) allen Ausbaustufen: Easy, Pro, Jobserver, ACM, Replikator, DBQ- und SQL-Programmierung. Administration, Wartung und Programmierung von MS-SQLServer 2000 und -datenbanken. Grundkenntnisse in AutoLisp-Programmierung.
|
erstellt am: 05. Nov. 2004 11:32 <-- editieren / zitieren --> Unities abgeben:          Nur für BloodyMess
|
DetlefTeuteberg Mitglied Solution Developer und Application Manager

 Beiträge: 37 Registriert: 07.03.2001
|
erstellt am: 05. Nov. 2004 13:31 <-- editieren / zitieren --> Unities abgeben:          Nur für BloodyMess
grusel ;-) jepp, diese Meldung kenn ich - wobei ich sie nur bei Access-Frontends mit mySQL-Backenddatenbanken hatte. Hier ließ sich das Problem einfach lösen durch ein weiteres einfügen einer Spalte in der betreffenden Tabelle. Diese konnte heißen wie sie wollte und musste eben nur vom Typ Timestamp sein. Aber wenn ich das noch richtig im Kopf habe, hast Du ja eine Access-Datenbank?? Aber auch hier würde ich einmal nachsehen, ob es nicht so einen Datentyp gibt und ob das nicht einfach das Problem löst. Darüber hinaus... was tut DoCmd.RunCommand acCmdSaveRecord?? Und Du ermittelst die höchste ID der Tabelle ausfuehrende_arbeiten, addierst sie mit 2 und fügst den Datensatz dann neu in die Tabelle ein?? Wobei - soweit kommt er ja noch gar nicht, wenn ich das richtig verstanden habe... nun denn... werde bei Gelegenheit hier wieder reinschauen... viele Grüße, D. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
pablo Mitglied Techniker
 
 Beiträge: 453 Registriert: 23.01.2002 Win10 Office 365 SE 2020
|
erstellt am: 05. Nov. 2004 13:32 <-- editieren / zitieren --> Unities abgeben:          Nur für BloodyMess
BloodyMess, ich vermute, irgendwo im Lauf der Ereignisse hat sich dein Record verändert, mit einer Schleife, in der du für jedes Feld den UnderlyingValue mit dem OriginalValue vergleichst, solltest du feststellen können, warum er meckert. HTH pablo Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |

| IT-Systemadministrator (m/w/d) | Wir sind entegra. Seit über 25 Jahren treiben wir technische Innovationen voran und gehören zu den führenden Experten für die Implementierung und Betreuung von Autodesk CAD-Lösungen. Mit unserem umfassenden Portfolio in den Bereichen Maschinenbau, Architektur und Bauwesen gestalten wir aktiv die digitale Zukunft.
Unsere Eigenentwicklung primtech ist eine wegweisende ... | Anzeige ansehen | Feste Anstellung |
|
BloodyMess Mitglied Applicationingenieur
  
 Beiträge: 604 Registriert: 06.06.2002 AutoCAD Map 3D 2005 Win XP pro
|
erstellt am: 08. Nov. 2004 23:55 <-- editieren / zitieren --> Unities abgeben:         
Hallo, erstmal vielen Dank für Eure zahlreichen Antworten. Leider muss ich dieses Thema für mich erstmal etwas zurückstellen, da es noch nicht akut genug ist. Der Thread läuft auch gerade ganz gut, aber ich kann mich leider erst in zwei Wochen wieder darum kümmern. Ich werde mich auf jeden Fall wieder melden! Im Moment hat leider eine andere Arbeit die Position Nummer 1 übernommen. Sorry. Gruß TP ------------------ Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
 |