|
|||||
ち〜な〜み〜に〜 |
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
ACCESS(アクセス)データベースを使用し、フォームとクエリにより期間でデータを抽出(日付のFROM〜TOで絞込)するサンプルです。 プログラム初心者には難しいVBAは1行だけ「リストボックス名.Requery」覚えてください。 DAO版はこちらです。SQLサーバーとも接続出来ます。 ADO版はこちらです。SQLサーバーとも接続出来ます。 実行結果はこんな感じです。2007/06/01〜2007/08/31までの受注担当者と受注金額の一覧です。 (1)まずサンプルのテーブルを作成します。テーブルのデザインビューはこんな感じです。 テーブル名は「受注テーブル」にしてください。 受注番号(テキスト型)、受注日(日付/時刻型)、受注担当(テキスト型)、受注金額(数値型) 主キー(鍵のマーク)も付けましょう。主キーは重複出来ません。 (2)サンプルのテーブルにデータを入力します。データシートビューはこんな感じです。 抽出(絞込)が上手くいったかどうか判断出来るように日付を散りばめて。 (3)次にデータ抽出するクエリを作成します。SQLビューはこんな感じです。 「受注テーブル.*」は「*」で良いです。「forms!」は固定で「フォーム1!date1」や「フォーム1!date2」はフォームで指定する名前です。 SELECT * FROM 受注テーブル WHERE iif(isnull(forms!フォーム1!date1),True,受注日>=forms!フォーム1!date1) And iif(isnull(forms!フォーム1!date2),True,受注日<=forms!フォーム1!date2); (4)フォームを作成します。 テキストボックス(date1、date2と命名)とリストボックス(list1と命名)を追加します。 date1、date2、list1はラベル名では無く変数名なので注意してください。プロパティで開いた時の名前です。 フォームのデザインビューはこんな感じです。 (5)フォームのリストボックス(list1)のプロパティはこんな感じです。 「値集合タイプ=テーブル/クエリ」と「値集合ソース=クエリ1」に注目!! (イメージ画像はありませんが、date1とdate2のIME入力モードをオフにした方が使いやすいです) (また、フォームのフォーム(詳細では無い)のプロパティの移動ボタンはいいえにした方がよいでしょう。 (また、フォームのフォーム(詳細では無い)のプロパティのレコードセレクタはいいえにした方がよいでしょう。 (6)フォームをデザインビューで開いて、受注日Fromを右クリックし「イベントのビルド」を選択します。 「コードビルダ」を選択し、以下のVBAコードを入力します。 Private Sub date1_BeforeUpdate(Cancel As Integer) list1.Requery End Sub Private Sub date2_BeforeUpdate(Cancel As Integer) list1.Requery End Sub (7)完成です。 ACCESS(アクセス)のフォームとクエリを使用し期間抽出するサンプル プログラム初心者には難しいVBAは1行だけ「リストボックス名.Requery」・・・ ACCESS(アクセス)のフォームとDAOを使用し期間抽出するサンプル DAOというライブラリを使ったVBAプログラムに挑戦してみましょう・・・SQLサーバーも・・・ ACCESS(アクセス)のフォームとADOを使用し期間抽出するサンプル ADOというライブラリを使ったVBAプログラムに挑戦してみましょう・・・SQLサーバーも・・・ ACCESS(アクセス)のテーブルとEXCEL(エクセル)を使用し期間抽出するサンプル1 ACCESS(アクセス)の抽出データをEXCEL(エクセル)のシートに取り込むサンプル・・・ ACCESS(アクセス)のテーブルとEXCEL(エクセル)を使用し期間抽出するサンプル2 ACCESS(アクセス)の抽出データをEXCEL(エクセル)のシートに取り込むサンプル・・・ 今まで色々なソフトウェアの勉強をして来ましたがACCESSの勉強をした事は有りませんでした。VBもVBAも似たようなものだと思っていました。 ある時、ACCESSのデータを期間抽出する事になったのですが、意外と難しい事に気付きました。なぜ今、ACCESSなのか?と思いつつ経験不足 を否定出来ませんでした。そこで、「ACCESS(アクセス)のフォームとクエリを使用し期間抽出するサンプル」を作ろうと思いました。初心者は プログラムに恐怖心を持っているかもしれないので、「プログラム初心者には難しいVBAは1行だけ」というフレーズを付けてみました・・・ しかしACCESSデータベースを使っていてVBAを避けて通れるとは思えないのでDAO、ADOのサンプルも用意しました。ADOが必要だと思った理由は、 今はACCESSで充分でも将来的にはSQL SERVERやORACLEの存在が無視出来ないと思うからです。業務分野としては、想像しやすいストーリーとして 受注業務(営業業務)を採用しました。受注テーブルの日付カラムをFROM〜TOの期間でデータ抽出(検索と言うべきか絞込と言うべきか)し、 抽出した受注番号、受注日、担当、金額を表示するという仕様にしました。 〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜 |