スプレッドシートとデータベースを比較してドキュメントを生成する


1

私は定期的に作成しなければならない文書の作成を合理化しようとしています。それらを完成させる方法に関する詳細な指示に関連したタスクがあります、そして、これらの各々は様々なプロジェクトにわたって再利用される特定のID番号を持っています。私はアクセスデータベースにできる限り多くのタスクIDを吸い出しました。
プロジェクトごとに、他の誰かが、アクセスできない他のデータベースから必要なタスクすべてのリストを取得し、それらを標準形式のExcelブックに入れます。プロジェクトごとに、次のことが必要です。

  • すべての関連タスクをID番号で引き出す
  • タスクを完了するための手順やその他の情報が含まれている私のデータベースの標準リストと比較してください。
  • タスクに関する特定の情報を使用して特定のフォーマットで文書を生成する

Excelでマクロを書くのは大変な作業のように思えましたが、最善の策ですが、アクセスデータベースが常にそれが属する場所と同じ場所にあることを確信できません。データベースはすべてのプロジェクトで一貫した項目なので、Accessでマクロを記述し、スプレッドシートがどこで機能するかを尋ねるダイアログを表示することを考えましたが、2つのリストを比較するためにテーブルを使用するのは単純に比較シートを生成するよりも複雑です。優れています。私はWord内でマクロを書くことを実際には考えませんでしたが、それも可能性です。

私はこの設定を作成するための最も論理的な方法を見つけようとしています。 3つの異なるオフィスプログラムを使用することはかなり複雑に思えますが、私はこれを達成するために利用可能なソフトウェアに制限があります。

  • Office 2007
  • 比較を超えて
  • インストールされている他のプログラム(追加のソフトウェアをインストールすることはできません)は、このタスクに関連性があるとは限りません。

誰もがこれをどうやって行けばよいかについて何か考えを持っていますか?

回答:


1

Crystal Reportsがあれば、ExcelテーブルをAccessテーブルに結合できます。次に、2つのレポートを印刷します。1つはIDとデータが一致し、もう1つはIDが一致しないレコードをリストします。フォーマットは面倒です。レポート用にExcelファイルをOracleデータベースに結合するレポートを作成します。 ExcelファイルをACCESSに結合して、一致するIDフィールドが両方ともあると仮定して同じタイプのレポートを作成できるはずです。


0

2つのデータセットをリンクするためにODBC接続を使用することを検討しましたか?

ODBCとExcelのGoogle検索結果

ネイティブの作業環境がデータベースであり、それらの新しいデータフィールドの入力の自動化に取り組むことができる場合は、単純な照会を使用して、一致しない(新しい)データを選択してそこから作業することができます。最初のデータベースから自分のデータベースに単純にパンチアウトしたり、最初のデータエクスポートのセットで新しいデータまたは変更されたデータのCSVをエクスポートしたりすることができないのは残念です。

どちらの側でも、新しいデータを追加して既存のデータと比較することができます(Accessのクエリ、またはExcelのピボットテーブルを使用)。単純なブールフラグとして機能する新しい列/フィールドを作成すると、データセットを区別してそれらを同じテーブル/ドキュメントにマージすることができます。あるいは、毎週(またはどの期間でも)インポートするためのコードを適用して、将来のクエリでこの "flag"フィールドを使用できるようにします。

データベースクエリを使用するよりもスコープ段階で作業を早くできるので、ピボットテーブルが私の最初のコールポートになります。また、レポート/比較の要件を1つのビューで表示できます。

匿名化するためにデータを「洗う」ことができる場合は、より具体的な解決策の例をいくつか投稿してください。


0

あなたは簡単な比較を可能にするレコードセットとしてExcelのデータを取得することができます

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

これで、XLレコードセットを使用し、それを検索/ステップスルーして、データベースに情報を配置することができます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.