Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
AutoWert Problem beim Anlegen eines neuen Datensatzes
zurück: Abfrage Werte in ein Formular weiter: Sehr komplexe Datenbank mit vielen m:n Beziehungen Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Antwort Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
Montgomery
Im Profil kannst Du frei den Rang ändern


Verfasst am:
13. Jul 2007, 19:02
Rufname:

AutoWert Problem beim Anlegen eines neuen Datensatzes - AutoWert Problem beim Anlegen eines neuen Datensatzes

Nach oben
       Version: Office 2003

Hallo,
Ich habe eine Tabelle Mitglieder mit einem Feld Mitglieds_ID (Primärschlüssel und AutoWert).
Wenn ich in meinem Mitlgieds-Formular einen neuen Datensatz anlegen möchte bekomme ich folgende Fehlermeldung:
"Die von Ihnen vorgenommenen Änderungen an der Tabelle konnte nicht vorgenommen werden, da der Index, Primärschlüssel od. die Bezeichnung mehrfach vorkommende Werte enthalten würden. Ändern Sie die Daten in den Feldern, die gleiche Daten enthalten, entfernen Sie den Index od. definieren Sie den Index neu, damit doppelte Einträge möglich sind und versuchen Sie es erneut"

Das liegt daran, dass Access - nachdem ich eine DB-Komprimierung gemacht habe- die Autowert-Zähler auf 0 zurückgesetzt hat und somit die vorgeschlagene Mitglieds_ID gleich einer bereits vergebenen ist.
Wie kann ich eine solchen Fehler (auch in der Zukunft) beheben?
stpimi
Moderator Access


Verfasst am:
13. Jul 2007, 20:40
Rufname:
Wohnort: Graz


AW: AutoWert Problem beim Anlegen eines neuen Datensatzes - AW: AutoWert Problem beim Anlegen eines neuen Datensatzes

Nach oben
       Version: Office 2003

Servus!
Zitat:
die Autowert-Zähler auf 0 zurückgesetzt hat
Und da bist du dir ganz sicher? Das wäre mir in einer nicht leeren Tabelle völlig neu ...

Wenn dem wirklich so ist und nicht irgendwo ein Fehler in den Beziehungen vorliegt, könnte Autowert zurücksetzen (der Code von Dalmatinchen bzw. die verbesserte Version von Willi Wipp) helfen.

_________________
Lg, Michael

Dein Feedback hilft auch anderen - vergiß es nicht!
Montgomery
Im Profil kannst Du frei den Rang ändern


Verfasst am:
20. Jul 2007, 15:58
Rufname:

AW: AutoWert Problem beim Anlegen eines neuen Datensatzes - AW: AutoWert Problem beim Anlegen eines neuen Datensatzes

Nach oben
       Version: Office 2003

Ja, hat den Zähler auf 0 zurückgesetzt und da ich natürlich im unteren Bereich die IDs bereits vergeben hab, kommt es zu diesem Fehler.
Möchte das jetzt am Liebsten selber mit VBA lösen. Dazu hab ich mir gedacht, dass ich eine Ereignisprozedur schreibe, die beim Anlegen eines neuen Datensatzes überprüft, ob das von Access vorgeschlagene (Autowert)ID-Feld bereits in der ID-Spalte der Tabelle vorkommt. Wenn die ID bereits verwendet wurde, soll die größte vorhandene ID der Tabelle +1 als ID gewählt werden. Also ungefähr (ungetestet) so:
Code:
    Dim lngId As Long
    Dim rs As ADODB.Recordset
    Dim strSQL As String
    Dim lngAnz As Long
   
    lngId = Me!Veranstaltungs_ID
    strSQL = "SELECT * FROM Veranstaltungen " & _
              "WHERE Veranstaltungs_ID= '" & lngId & "'"
    Set db = CurrentDb()
    Set rs = db.OpenRecordset(strSQL, dbOpenSnapshot)
    lngAnz = rs.RecordCount
    If lngAnz = 0 Then
        strSQL = "SELECT Max(Veranstaltungs_Id) FROM Veranstaltungen"
        Set rs = db.OpenRecordset(strSQL, dbOpenSnapshot)
        lngId = rs.Fields(0)
        Me!Veranstaltungs_ID = lngId
    End If
Frage 1: Was haltet ihr von dem Vorgehen?
Frage 2: Welchem Ereignis soll ich die Prozedur zuordnen? Es soll ausgeführt werden, wenn ein neuer DS angelegt wird, d.h. am Ende des Formulars gesprungen wird, die Werte eingetragen werden und dann gespeichert wird.
Willi Wipp
Moderator


Verfasst am:
20. Jul 2007, 16:27
Rufname:
Wohnort: Raum Wiesbaden

Re: AutoWert Problem beim Anlegen eines neuen Datensatzes - Re: AutoWert Problem beim Anlegen eines neuen Datensatzes

Nach oben
       Version: Office 2003

Hi Montgomery,

nicht viel Wink
Ich wuerde das Autowert als Primaerschluessel verwenden.
Diesen wuerde ich weder zuruecksetzen, noch sonst etwas.
Den Primaerschluessel muss kein Anwender je zu Gesicht bekommen.
Wenn Du ein zusaetzliches Feld mit einer "durchgehenden und eindeutigen" Nummer haben willst,
dann verwende dafuer einfach ein zusaetzliches Feld eventuell mit eindeutigem Index.

_________________
Eine kurze Rueckmeldung waere nett
SL Willi Wipp

(Anleitung fuer das Anhaengen von Dateien: Klicke links auf [www], Gaeste muessen sich dafuer anmelden)
Montgomery
Im Profil kannst Du frei den Rang ändern


Verfasst am:
20. Jul 2007, 16:51
Rufname:

AW: AutoWert Problem beim Anlegen eines neuen Datensatzes - AW: AutoWert Problem beim Anlegen eines neuen Datensatzes

Nach oben
       Version: Office 2003

Das Autowert-Feld ist ja mein Primärschlüssel. Das ist ja das Problem. Leider hat Access dieses Feld irgendwann zurückgesetzt und bietet mir beim Anlegen eines neuen Datensatzes jetzt kleine Werte an, die natürlich schon längst benutzt wurden, also dann doppelt in der Tabelle stehen würden, warum dann eben diese tolle Fehlernachricht kommt mit dem doppelten Primärschlüssel.
Willi Wipp
Moderator


Verfasst am:
20. Jul 2007, 17:43
Rufname:
Wohnort: Raum Wiesbaden

Re: AutoWert Problem beim Anlegen eines neuen Datensatz (II) - Re: AutoWert Problem beim Anlegen eines neuen Datensatz (II)

Nach oben
       Version: Office 2003

Hi Montgomery,

aber da sollte doch ein einziger Aufruf der Funktion FnSetzeAutowertZurueck ausreichen.
Die ermittelt ja intern das Maximum und setzt den naechst hoeheren Wert als kuenftigen Startwert.
Danach sollte der Autowert wieder selbst hochzaehlen Wink

_________________
Eine kurze Rueckmeldung waere nett
SL Willi Wipp

(Anleitung fuer das Anhaengen von Dateien: Klicke links auf [www], Gaeste muessen sich dafuer anmelden)
Montgomery_
Gast


Verfasst am:
21. Jul 2007, 12:32
Rufname:

AW: AutoWert Problem beim Anlegen eines neuen Datensatzes - AW: AutoWert Problem beim Anlegen eines neuen Datensatzes

Nach oben
       Version: Office 2003

Montgomery am 20. Jul 2007 um 18:42 hat folgendes geschrieben:
ah ja gut. Danach habe ich gesucht.
Leider bekomme ich beim Aufruf der Funktion folgenden Fehler:
Feld
Zitat:
Veranstaltungs_Id" kann nicht geändert werden. Es gehört zu einer oder mehreren Beziehungen
an der Stelle:
Code:
    CurrentDb.Execute "ALTER TABLE " & sTable & _
                     " ALTER COLUMN " & sFeld$ & " COUNTER(" & lNeu& & ",1)"
Was ja auch stimmt, da die Tabelle über das ID-Feld mit einer anderen Tabelle (per Fremschlüssel verbunden ist). Funktioniert die Lösung mit solchen Feldern, die als Fremdschlüssel in anderen Tabellen dienen nicht?

Also, das Ganze geht wirklich nur, wenn die Spalte nicht als Fremdschlüssel in einer Beziehung (zu einer anderen Tabelle) benutzt wird. Wenn ich alle Beziehungen des ID-Felds lösche und den Code ausführe, klappts wunderbar.
Gibt's für das Problem einen Work-Around? Gibt es z.B. vielleicht einen Befehl in VBA, der Beziehungen zwischen Tabellen löscht bzw. wiederherstellen kann, damit man das Ganze nicht händisch machen muss? Oder vielleicht eine andere Alternative?
Willi Wipp
Moderator


Verfasst am:
22. Jul 2007, 19:57
Rufname:
Wohnort: Raum Wiesbaden


Re: AutoWert Problem beim Anlegen eines neuen Datensatz(III) - Re: AutoWert Problem beim Anlegen eines neuen Datensatz(III)

Nach oben
       Version: Office 2003

Hi Montgomery,

im Prinzip sollte das schon ueber de Auflistung Relations machbar sein.
Die Frage ist ob der Aufwand wirklich noetig ist.
Wie gesagt mir ist noch nicht klar wann und wie der Autowert auf einen ungueltigen "Startwert" gesetzt wurde.

_________________
Eine kurze Rueckmeldung waere nett
SL Willi Wipp

(Anleitung fuer das Anhaengen von Dateien: Klicke links auf [www], Gaeste muessen sich dafuer anmelden)
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Diese Seite Freunden empfehlen

Seite 1 von 1
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen

Verwandte Themen
Forum / Themen   Antworten   Autor   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Access Tabellen & Abfragen: Buchstaben mit AutoWert verbinden 3 Julietta_M 2307 05. Jul 2006, 18:25
Willi Wipp Buchstaben mit AutoWert verbinden
Keine neuen Beiträge Access Tabellen & Abfragen: Daten mit AutoWert exportieren 8 Frankie 888 22. Jun 2006, 13:25
Frankie Daten mit AutoWert exportieren
Keine neuen Beiträge Access Tabellen & Abfragen: Autowert wieder von 1 beginnen? 1 Svenman_1 892 31. Mai 2006, 16:57
Willi Wipp Autowert wieder von 1 beginnen?
Keine neuen Beiträge Access Tabellen & Abfragen: Autowert defekt 2 Uli 1081 24. Mai 2006, 23:26
Uli Autowert defekt
Keine neuen Beiträge Access Tabellen & Abfragen: Frage zum Theme AutoWert 15 TorstenErd 1402 25. Apr 2006, 11:41
Nouba Frage zum Theme AutoWert
Keine neuen Beiträge Access Tabellen & Abfragen: Suchfunktion mit anzeige des datensatzes 0 hannibal160383 589 28. März 2006, 23:42
hannibal160383 Suchfunktion mit anzeige des datensatzes
Keine neuen Beiträge Access Tabellen & Abfragen: Feld mit AutoWert sinnvoll? 1 Schneehasal18 706 21. März 2006, 10:09
stpimi Feld mit AutoWert sinnvoll?
Keine neuen Beiträge Access Tabellen & Abfragen: Autowert für Datenbankweitergabe auf Null setzen 1 siena 2192 13. März 2006, 14:02
jens05 Autowert für Datenbankweitergabe auf Null setzen
Keine neuen Beiträge Access Tabellen & Abfragen: Autowert in eine Tabelle übertragen... 4 Mr.E 1602 27. Okt 2005, 08:53
Mr.E Autowert in eine Tabelle übertragen...
Keine neuen Beiträge Access Tabellen & Abfragen: Abfrage eines datensatzes 3 labor 684 23. Okt 2005, 19:02
rita2008 Abfrage eines datensatzes
Keine neuen Beiträge Access Tabellen & Abfragen: autowert auf 0 setzen 2 heirnele 4353 21. Jul 2005, 12:39
heirnele autowert auf 0 setzen
Keine neuen Beiträge Access Tabellen & Abfragen: ind.CreateField: Zuweisung Felddatentyp "AutoWert" 3 RoWi 4450 30. Jun 2005, 15:16
RoWi ind.CreateField: Zuweisung Felddatentyp "AutoWert"
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: HTML CSS