Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Autowert spnnt

Begonnen von Jonny, Mai 08, 2013, 10:56:49

⏪ vorheriges - nächstes ⏩

Jonny

Hallo,
ich habe folgende Situation:
Tabelle
ID = Autowert
WagenNr = Zahl
Beides zusammen ist der Primärkey.

Jetzt kommen von einen anderen Rechner DS dazu die sich in der WagenNr unterscheiden.

Angefügt wird mittels SQL-String.

Sporadisch passiert jetzt das danach bei einen neuen DS der Autowert nicht die höchste Zahl hat.
Reparieren klappt nicht.
Tabelle kopieren, alte Tabelle löschen, neue Tabelle umbenennen und jetzt ist der Autowert wieder ok.

Gruß

Johann

MzKlMu

Hallo,
ZitatBeides zusammen ist der Primärkey.
Ein Autowert zusammen mit einer Zahl ist unsinnig. Der Autowert ist schon eindeutig und als alleiniger PK geeignet.
Gruß Klaus

Jonny

Hallo MzKlMu,

der Autowert ist als Duplikate Ja definiert da folgendes passiert:
PC1
Autowert
1  WagenNr 1
2  WagenNr 1
3  WagenNr 2
4  WagenNr 1


PC2
Autowert
3  WagenNr 2
4  WagenNr 1
5  WagenNr 2
6  WagenNr 2

Bei der Übernahme PC2 nach PC1 wird geprüft ob der Autowert und die WagenNr vorhanden sind.
Wenn Ja dann EDIT sonst DS anfügen.
Umgekehrt bei der Übernahme von PC1 nach PC2

Das klappt auch die DS werden korrekt gemischt.

Ach ja, Acc 2007.

Gruß

Johann

MzKlMu

Hallo,
das Vorhaben ist mir sehr suspekt. Du kannst keine 2 Tabellen mit Autowerten sinnvoll mischen. Die Autowerte laufen doch nicht syncron.

Der Sinn des Vorhaben habe ich auch nicht ganz begriffen. Kannst Du das mal etwas deutlicher beschreiben?

Sind die beiden PCs unabhängig oder über eine Netzwerk verbunden?
Gruß Klaus

Jonny

Hallo,

natürlich laufen die Autowerte nicht syncron.
Ich muss aber auf jeden PC, die können nicht vernetzt werden, einen eindeutigen Schlüssel für die Tabellen haben.
Mit eindeutig meine ich jetzt nicht innerhalb der Anwendung auf den einzelnen PC´s sondern PC übergreifend.
Deshalb einen Zähler und die WagenNr. Die WagenNr gibt es nur auf den jeweiligen PC.
Andere Felder eignen sich nicht für die Schlüsselgeschichte, da alle Felder Duplikate haben können.

Die PC´s sind in Fahrzeuge eingesetzt. Diese sind auch da unterwegs wo es keine Internetverbindung gibt.
Höchstens eine Satellitenverbindung.

Die so erfassten Daten müssen in der Zentrale zusammengeführt werden.

Soweit die Erklärung, aber leider bin ich mit dem verkörksten Autowert nicht weiter.

Überlege schon ob ich nicht einfach ein Zahlenfeld nehme. dieses bei einen neuen DS plus 1 und gut ist.

Gruß

Johann

database

#5
Hallo Jonny,

ZitatMit eindeutig meine ich jetzt nicht innerhalb der Anwendung auf den einzelnen PC´s sondern PC übergreifend
Dann stelle statt AutoWert/Zahl einmal AutoWert/ReplikationsID ein, der Schlüssel ist WELTWEIT eindeutig, wenn im 'Erzeuger-PC' eine Ethernetkarte eingebaut ist, ein Duplikat auf einem anderen PC sollte damit ausgeschlossen sein.
Wenn du in der Primärschlüssel-Tabelle zusätzlich ein Feld zum chronologischen Sortieren der DS benötigst hänge an diese Tabelle ein Datumsfeld an und vergib als Standardwert Now()

Alternativ zur GUID kannst du aber auch den Startwert des ID-Feldes ändern:

Alter Table [DeineTabelle] Alter Column [DeinAutowertFeld] Counter(1000000,1)

Im Abfrageentwurf in die SQL-Ansicht eintragen und einmalig ausführen.
Access wird danach veranlaßt die Zählung des Autowertes bei 1.000.000 mit einer Schrittweite von 1 zu beginnen.
Für dich würde das bedeuten, dass am 2. PC erst mal 1 Mio Datensätze eingegeben werden müssten bis die Möglichkeit eines Duplikats gegeben sein kann.