Supportnet Computer
Planet of Tech

Supportnet / Forum / Datenbanken

Fehler beim Autowert ermitteln





Frage

Hallo Leute, greife über 2 PC´s (gleiche Access-Anwendung), die im gleichen Netz liegen, auf eine Datenbanktabelle (Access-Datenbank) zu, die ein Feld mit Autowert hat. Bekomme aber von beiden Anwendungen nicht die fortlaufenden Nummern geliefert. Nur wenn ich von einer Anwendung aus auf die Datenbank zugreife bekomme ich die richtigen fortlaufenden Nummern geliefert. Sobald die 2. Anwendung auf die Tabelle zugreift bekomme ich nicht mehr die fortlaufenden, sondern die 2. Anwendung beginnt dann z.B. bei 20 mit den fortlaufenden Nummern. Gibt es eine Möglichkeit das abzustellen, so dass beide Anwendungen mit den Autowert fortlaufend bekommen? Bitte helft mir. Ciao Roman

Antwort 1 von mapet

Hallo

Ich verstehen nicht ganz was Du damit meinst die zweite Anwendung beginnt mit 20.
Wenn Du einen neuen DS eingibst oder wenn Du die Daten in der Tabelle anschaust (unterschiedliche Sortierung in Forms oder Abfragen?)

mapet

Antwort 2 von Angel

Hallo mapet,
wenn ich mit der 2. Anwendung einen neuen DS erstelle wird er nicht mit der nächsten Nummer in der Datenbank erstellt sondern jede Anwendung zählt seine eigenen fortlaufenden Nummern hoch! Beide Anwendungen (Access MDE-Dateien) sind mit der Access Datenbank verknüpft, müssten eigentlich ja fortlaufend vergeben werden. Tun sie aber nicht.
Ciao Roman

Antwort 3 von mapet

Hallo Roman

Wenn Du die DS vergleichst also Anwendung eins DS erstellen HauptID z.B. 15 wird dieser in der 2.DB korrekt ausgegeben und werden sicher keine ID doppelt vergeben?

mapet

Antwort 4 von Angel

verstehe ich nicht :-)
- Habe 2 Anwendungen die mit einer Datenbank verknüpft sind.
- Die Tabelle mit dem Autowert wird am Monatsende aus der DB gelöscht und neu erstellt, so dass die Nummern im neuen Monat wieder mit 1 beginnen.
- Lösche ich nun die Tabelle in der Datenbank von meiner 1. Anwendung aus und erstelle sie Neu, so werden die Nummern über die 1. Anwendung richtig vergeben (Sie beginnen dann wieder mit 1). Will ich dann DS aus der 2. Anwendung aus erstelle, so zählt diese dann einfach weiter bei 289!(alter Monat endete bei 288) Obwohl beide Anwendungen ja mit derselben DB (Tabelle) verknüpft sind.
Hoffe du kannst mir helfen und ich habe dir das Problem jetzt besser erklärt :-)
Ciao Roman


Antwort 5 von mapet

Hallo

Das Problem ist mir jetzt klar, eine Lösung habe ich nicht aber ich vermute dass wenn Du die Tabelle aus der zweiten Anwendung löscht die erste weiterzählt. Dies wiederum würde bedeuten, dass die .mde den letzten Wert irgoendwo noch gespeichert hat und damit fortfährt wenn er nicht belegt ist?

Dies könntest Du eventuell umgehen wenn die Tabelle nicht gelöscht wird sondern nur die DS (fängt dann nicht mehr bei null an)

mapet



Antwort 6 von Angel

Vielen Dank aber die Tabelle muss am Monatsanfang wieder mit 1 beginnen, vielleicht hat ja noch ein anderer User eine Lösung auf Lager.
Werde nicht aufgeben. Ciao Roman

Antwort 7 von TheRealWhistler

Hi,

hier liegt ein Synchronisationsfehler vor. Normalerweise wird die Synchronisation automatisch von der Datenbank erledigt, egal wieviele Clients gerade mit der Datenbank verbunden sind, und mit dieser kommunizieren. Möglicherweise musst du die Access-Datenbank entsprechend konfigurieren, dass sie auch mit mehreren Clienten einwandfrei funktioniert (habe aber keine Ahnung wie). Bei Oracle beispielsweise reicht es aus einfach eine 2. Verbindung zur Datenbank einzugehen, um die Synchronisation der beiden echt-parallelen Verbindungen musst du dich nicht kümmern (automatischer wechselseitiger Ausschluss beim Zugriff auf die DB).

Bin mir nicht sicher ob das beim Access genaus so ist, aber versuche es mal mit "Auto Commit" auf true setzen. Auto Commit bewirkt, dass jedes SQL-Statement sofort von der Datenbank ausgeführt wird, es werden nicht erst mehrere gruppiert und dann als block ausgeführt. Auto Commit garantiert zwar keine atomaren (unteilbaren) SQL-Statements, es wäre aber ein Versuch wert.

Antwort 8 von TheRealWhistler

PS: Du verwendest sicherlich Access-Formulare um Datensätze bearbeiten zu können. Mann kann mit dem Access Assitenten synchronisierte Formulare erstellen.

Antwort 9 von Angel

Hi,
Ja ist richtig, ich verwende Access Formulare um auf die Datenbank zuzugreifen. Aber ein leeres Formular und erst beim speichern wird eine Anfügeabfrage mit Bildung des Autowertes erzeugt. Auto Commit habe ich in Access nicht gefunden.
Ciao Roman

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: