2017-01-06 4 views
0

TLDR: Ich habe die lange Frage am Ende der Frage zusammengefasst.Ms Access, die Excel verwendet, um Tabellen zu ändern; Umgang mit ID Autonummer

Mein Unternehmen verwendet eine Ms Access DB ordnungsgemäß mit Beziehungen, PKs und FKs festgelegt. Manchmal muss ich größere Änderungen an den Tabellen vornehmen (Felder hinzufügen, Spaltenoperationen durchführen, weißt du, Dinge, von denen ich glaube, dass sie nur Excel ausführen kann: Zeichenfolgenoperationen (LINKS, RECHTS, usw.), INDEX/MATCH (VLOOKUPS)) Felder, etc ...

Was ich dann tue ist, ich exportiere die Tabellen in Excel zu gelten, führen Sie die Änderungen. Mein Problem entsteht, wenn ich fertig bin und ich die Tabellen zurück importieren will. Ich bekomme ein Problem mit IDs und der AutoNumber-Funktion in Access.Wenn ich die Tabelle importiere, kann ich die vorherige ID-Spalte nicht verwenden und muss eine neue erstellen, damit ich eine funktionierende AutoNumber-ID-Spalte erhalten kann. Das Problem ist, dass, wenn es Änderungen gab Die Reihenfolge der Datensätze oder die Anzahl der Datensätze (dh, wenn einige Datensätze gelöscht wurden), dann sind die neuen automatisch generierten IDs nicht die gleichen wie die alten, was zu Problemen mit meinen Beziehungen. Die FKs zeigen nicht mehr auf die richtigen PKs.

Ich habe versucht, auf Möglichkeiten zu suchen, um dieses Problem zu behandeln, aber nichts gefunden, als ob niemand anderes dieses Problem haben. Ich mache es wahrscheinlich nicht richtig, denke ich.

Kurzversion: PK/FK Problem, wenn ich Tabellen exportieren-importieren Access-Excel. Während des Imports kann ich meine ursprüngliche PK-Spalte nicht als AutoNumber verwenden und erstelle daher eine neue ID-Autonummerspalte, was zu dem Problem führt, dass sich einige IDs ändern und Probleme mit FKs (Beziehungen) verursachen.

+1

Ich wäre geneigt, Wege zu finden, Ihre Aktualisierungen direkt in Access zu tun, anstatt nach Excel exportieren zu müssen. Access kann auch viele Zeichenfolgenoperationen (LINKS, RECHTE MITTLERE, usw.) und Nachschlagevorgänge ausführen (prüfen Sie DLOOKUP oder verwenden Sie einfach nur Tabellenverbindungen in den Spalten, die Sie suchen). Sie sind sich nicht sicher, ob Sie in Excel viel tun können, was in Access nicht möglich ist, obwohl Sie gelegentlich eine VBA-Funktion schreiben müssen. Wenn Sie alles in Access behalten, sollten Sie Ihre PK/FK-Probleme loswerden. – Skippy

+0

Danke für Ihre Einsicht. Es ist wahr, dass das Bleiben in Access das Problem löst. Der heutige Problemfall umfasst jedoch das Hinzufügen vieler Spalten zu einer vorhandenen Tabelle. Im Wesentlichen habe ich meinen Kunden webseitenbezogene Attribute (Benutzername, Benutzerrolle und andere benutzerbezogene Attribute) hinzugefügt. Ich denke, ich könnte eine neue Tabelle erstellen, die 1: 1 mit meiner Kundentabelle verknüpft ist, was leider keine elegante Lösung ist –

Antwort

1

Angenommen, Ihr Hinzufügen neuer Felder ist eine einmalige (oder seltene) Operation, dann erstellen Sie diese Felder manuell in der vorhandene Tabelle zuerst. Importieren Sie alle Ihre neuen Daten (Benutzername, Rolle, andere Attribute) in eine temporäre Tabelle. Verwenden Sie dann Aktualisierungsabfragen, um die relevanten Daten in die neuen Spalten in Ihrer ursprünglichen Tabelle zu übernehmen, und verbinden Sie die beiden Tabellen auf der Grundlage des Abgleichs, den Sie in Excel vorgenommen hätten. Sie können alle Zeichenfolgenoperationen in Ihren neuen Daten in Excel vor dem Importieren ausführen, wenn Sie damit vertrauter sind, aber Ihre temporäre neue Datentabelle muss eine oder zwei Spalten enthalten, die genau mit dem in Ihrer vorhandenen Tabelle übereinstimmen können Führe die Aktualisierungen durch.

0

PK/FK Probleme bei der Synchronisation normalerweise durch den Import alle notwendigen Daten aus Excel temporäre Tabelle mit nicht Autowert-ID-Spalte gelöst und tun dann 3 Anfragen:

  • Verbuchungssätze, wo IDs sind die gleichen
  • löschen von Zeilen in Zieltabelle, wenn Ziel-ID nicht in der Quelle nicht vorhanden ist
  • Zeilen einfügen, um Zieltabelle, wenn die Quelle-ID nicht in Ziel existiert

Wenn Sie sicher sind, dass die importierten ID-Daten eindeutig sind, können Sie IDs sogar in das Feld "autonumber" einfügen, indem Sie INSERT SQL verwenden. Dies ist jedoch keine gute Lösung. Es wäre besser, eine separate Schlüsselspalte für Excel ID zu verwenden.

Ab einem Problem mit mehreren Spalten können Sie eine Tabelle mit Attribut-Wert-Spalten verwenden. In diesem Fall ist es egal, wie viele Attribute Sie haben.

Excel ist gut zum Sammeln von Informationen von Benutzern und für primäre Datenanalyse, aber Hauptberechnungen wäre es besser in Access zu tun, es hat sehr mächtige Werkzeuge. Mit Hilfe von Abfragen, Formulare und VBA können fast alle implementiert werden, was in Excel und vieles mehr getan werden kann

Verwandte Themen