「SQL Server Express と ADO、Excel と VBA を使って課題管理表を作ってみよう」をプログラム公開します。VBAプロジェクトにはパスワードをかけていませんので参考にして下さい。プログラムはスキルアップが目的ですので使用に制限は設けませんが、使用して発生した不具合に対して作者は一切責任を持ちませんので宜しくお願い致します。
ダウンロード
以下のリンクでファイルをプログラム公開します。
SqlExcelKADAIKANRIHYOU.zip
zipファイルの中に「SQL-Excel課題管理表.xlsm」が入っています。
使用方法
使用準備としてデータベースとテーブルの準備が必要です(少し下側を参照)。ここでは操作の手順について説明します。
最新データ取得
「最新取得」ボタンをクリックする事で最新情報のみを取得する事ができます。
データ登録
バッチ(C列)に「追加」「更新」「削除」を入れ、「データ登録」ボタンをクリックすることでその行をデータベースに登録します。改行のデータは保存されますが、色等の文字修飾は保存されません。
- 追加
新しい「No」を採番してデータベースにその行のデータを新規登録します。 - 更新
その行の「No」を使用してデータベースにその行のデータを追加登録します。 - 削除
その「No」を持つ全てのレコードに削除フラグを立てます。
「最新取得」ボタンでは以後その「No」は表示されなくなります。
全件表示
「全件表示」ボタンをクリックする事で過去の登録履歴を全件表示することができます。
削除フラグが立っているものであっても全件表示では表示されます。
使用時VBA修正ポイント
基本的にデータベース関係だけで大丈夫です。VBAのプログラムは全て「標準モジュールのModule1」に入っています。
- Visual Basic Editer で Microsoft ActiveX Data Objects 2.8 Library を参照可能にする。
- 標準モジュール – Module 1 – connect() を接続する SQL Server に合わせて修正する。
解説へのリンク
- データベース設計
テーブルの作成スクリプトは以下ですCREATE TABLE [dbo].[T_課題管理表]( [ID] [int] IDENTITY(1,1) NOT NULL, [No] [int] NOT NULL, [分類] [nvarchar](50) NULL, [課題] [nvarchar](max) NULL, [対応進捗] [nvarchar](max) NULL, [担当者] [nvarchar](50) NULL, [責任者] [nvarchar](50) NULL, [更新日] [date] NULL, [完了予定日] [date] NULL, [完了日] [date] NULL, [削除フラグ] [nvarchar](50) NULL, [更新時間] [datetime] NULL )
- データベース接続テスト
- 登録ボタンクリック時の処理
- 全件表示ボタンクリック時の処理
- 最新取得ボタンクリック時の処理
まとめ
プロジェクトごとに1つテーブルを使ってしまうのはExpressエディションとは言えSQL Serverでは辛い事かもしれませんね。ダウンサイジングしたAccess – Excelの方が使いやすいかもしれません。規模的にちょうど良いかと。
SQL Serverを使うのであれば、プロジェクトの表題と課題管理の明細の2段階にテーブルを正規化して作る方が良いと思います。少し考えてみます。
このプログラムの疑問点や質問などありましたら、お気軽にコメントからどうぞ。分からない範囲は「分かりません。」としか回答できませんが、可能な限り適切な回答をする様に努めます。
この記事へのコメントはありません。