Vergleichen Sie die Tabelle mit der Datenbank, um ein Dokument zu erstellen

Vergleichen Sie die Tabelle mit der Datenbank, um ein Dokument zu erstellen

Ich versuche, die Erstellung eines Dokuments zu rationalisieren, das regelmäßig erstellt werden muss. Es gibt Aufgaben, die mit detaillierten Anweisungen zur Erledigung verknüpft sind, und jede dieser Aufgaben hat eine bestimmte ID-Nummer, die in verschiedenen Projekten wiederverwendet wird. Ich habe so viele dieser Aufgaben-IDs wie möglich in eine Access-Datenbank aufgenommen.
Für jedes Projekt zieht jemand anderes eine Liste aller erforderlichen Aufgaben aus einer anderen Datenbank, auf die ich keinen Zugriff habe, und fügt sie in eine Excel-Arbeitsmappe mit einem Standardformat ein. Für jedes Projekt muss ich Folgendes tun:

  • Alle relevanten Aufgaben nach ID-Nummer abrufen
  • Vergleichen Sie sie mit der Standardliste in meiner Datenbank, die die Schritte zum Abschließen der Aufgabe und einige andere Informationen enthält
  • Erstellen Sie ein Dokument mit einem bestimmten Format unter Verwendung der spezifischen Informationen zu den Aufgaben

Das Schreiben eines Makros in Excel schien viel Arbeit zu sein, aber die beste Lösung. Allerdings kann ich nicht sicher sein, dass die Access-Datenbank immer an derselben Stelle bleibt, an die sie gehört. Da die Datenbank in allen Projekten das konsistente Element ist, dachte ich darüber nach, ein Makro in Access zu schreiben und einen Dialog mit der Frage, wo sich die Tabelle befindet, einzuschalten. Die Verwendung einer Tabelle zum Vergleichen der beiden Listen schien mir jedoch komplexer, als einfach ein Vergleichsblatt in Excel zu erstellen. Ich habe nicht wirklich daran gedacht, ein Makro in Word zu schreiben, obwohl das auch eine Möglichkeit ist.

Ich versuche, den logischsten Weg zu finden, um dieses Setup zu erstellen. Die Verwendung von 3 verschiedenen Office-Programmen scheint ziemlich kompliziert, aber ich bin in der Software, die mir dafür zur Verfügung steht, eingeschränkt:

  • Büro 2007
  • Unvergleichlich
  • Die anderen installierten Programme (ich kann keine zusätzliche Software installieren) scheinen für die Aufgabe nicht im Entferntesten relevant zu sein

Hat jemand eine Idee, wie man das angehen soll?

Antwort1

Wenn Sie Crystal Reports hätten, könnten Sie die Excel-Tabelle mit den Access-Tabellen verknüpfen und dann zwei Berichte drucken, einen mit Datenübereinstimmung bei der ID und den anderen Bericht, um Datensätze ohne ID-Übereinstimmungen aufzulisten. Die Formatierung ist fantastisch. Ich schreibe Berichte, in denen ich Excel-Dateien für die Berichterstellung mit einer Oracle-Datenbank verbinde. Sie sollten in der Lage sein, die Excel-Datei mit ACCESS zu verknüpfen und denselben Berichtstyp zu erstellen, vorausgesetzt, beide haben die ID-Felder, die übereinstimmen müssen.

Antwort2

Haben Sie darüber nachgedacht, die beiden Datensätze über eine ODBC-Verbindung zu verknüpfen?

Google-Ergebnisse für ODBC und Excel

Wenn Ihre native Arbeitsumgebung die Datenbank ist und Sie an der Automatisierung der Eingabe dieser neuen Datenfelder arbeiten können, können Sie einfache Abfragen verwenden, um die nicht übereinstimmenden (neuen) Daten auszuwählen und von dort aus weiterzuarbeiten. Es ist schade, dass Sie nicht einfach aus der ersten Datenbank in Ihre eigene wechseln oder den ersten Satz Datenexporte einfach eine CSV mit neuen oder geänderten Daten exportieren können.

Auf beiden Seiten können Sie die neuen Daten anhängen und mit den vorhandenen vergleichen (mit Abfragen in Access oder einer Pivot-Tabelle in Excel). Wenn Sie eine neue Spalte/ein neues Feld erstellen, das als einfaches Boolesches Flag fungiert, können Sie zwischen Datensätzen unterscheiden und sie in derselben Tabelle/dem selben Dokument zusammenführen. Alternativ können Sie einen Code für wöchentliche (oder beliebige andere) Importe anwenden, sodass Sie dieses „Flag“-Feld für zukünftige Abfragen verwenden können.

Die Pivot-Tabelle wäre meine erste Anlaufstelle, da Sie in der Scoping-Phase schneller arbeiten können als mit Datenbankabfragen und Ihre Berichts-/Vergleichsanforderungen in einer Ansicht anzeigen können.

Wenn Sie Ihre Daten „waschen“ können, um sie zu anonymisieren, veröffentlichen Sie bitte einige Beispiele für spezifischere Lösungen.

Antwort3

Sie können die Excel-Daten als Datensatz abrufen, was einen einfachen Vergleich ermöglicht

Dim xldb As New adodb.Connection
Dim xlcmd As New adodb.Command
Dim XL As New adodb.Recordset

With xldb
    .Provider = "Microsoft.ACE.OLEDB.12.0"
    .ConnectionString = "Data Source=" & FileName & ";Extended Properties=""Excel 12.0 Xml;HDR=YES;ReadOnly=True"";"
    .Open
End With

Set xlcmd.ActiveConnection = xldb
xlcmd.CommandType = adCmdText
xlcmd.CommandText = "Select * from [Sheet1$]"
XL.CursorLocation = adUseClient
XL.CursorType = adOpenDynamic
XL.LockType = adLockOptimistic
XL.Open xlcmd

Jetzt können Sie den XL-Recordset verwenden, ihn durchsuchen/durchgehen und die Informationen in Ihre Datenbank einfügen

verwandte Informationen