Accessプロジェクト (進行状況memo)

以下、新しいものを上に書き足してゆきます。
さらっと書いてありますが、成功するまでに、膨大な時間と労力を費やしています。
大量のサイトをgoogle検索し、試行錯誤をし、失敗を積み重ね・・・。
(4月12日現在、サイトにはお助けいただいておりません)

受注登録で

新規受注フォームを開くとき、
今まさにお電話をいただいているお客さまのIDで、
かつ、
受注テーブルは新規IDで、
開いたらなぁ~。

割引率の計算

新規受注フォームのサブフォームで割引率を設定すると、
すべてのレコードに同じ割引率が設定されてしまう。

ACCDEの作成

お手本のAccessを開いていたら、動作のおかしなものがあり、
いったいどうなっているのか調べたいと思ったけれど、デザインビューで開けない。
よく見ると、拡張子が、.mde になっている。
 (なるほどねぇ~。ーー;)
フリーのAccessデータベースで.mdeのものは、どういう仕組なのかを解析できないのが残念。

Access2007の場合、.accde で保存すると、以下ができなくなります。
 (Access2003の.mde = Access2007のaccde)

  • フォームをデザインビューで開く(クエリはデザインビューで開ける)
  • Visual Basicを開く など

編集されたくない、見られなくない場合にお勧め。
(詳細はこちらのMicrosoft公式サイトをご覧ください)
いったん.accdeで保存したファイルは、.accdbに戻せないので要注意です。

新規受注登録フォーム作成

顧客詳細フォームの受注登録ボタンをクリックすると、新規受注登録フォームが開く。

その際、顧客名はそのまま残して、受注IDは新しいレコードで開く。
そうすれば、手間がないのにな。
と思ったが、お手本にそういうものがなく、不可能?

新規顧客入力フォーム作成

ボタンをクリックしたときに、空欄の状態で開かれるといいなと思い、
フォームの[プロパティ]、[イベント]、[開くとき]に、以下の埋め込みマクロを設定。

  • アクション:レコードの移動
  • オブジェクトの種類:フォーム
  • レコード:新しいレコード
クイックリンク作成

ショートカットキーも使えます。

顧客情報編集フォーム

コード、都道府県、市区郡は編集不可に設定。
都道府県、市区郡は、郵便番号を編集すべし。
備考欄には、改行の方法について補足を記入。
編集した内容は、テーブルに反映される。

顧客情報編集ボタン

顧客詳細フォームにある、編集ボタンを押すと、編集フォームが表示される。
当然、開いている顧客データとマッチした編集フォームが開く。
顧客詳細フォームに戻るボタンなどがある。

顧客詳細フォーム

ヘッダーにテキストボックスを入れ、以下の式を入力。

=IIf(Nz([得意先名])=””,”Untitled”,[得意先名]& “様”)

詳細ボタン

検索で抽出された顧客のIDをクリックすると、顧客詳細が表示される。
ノースウィンド2007の埋め込みマクロを解析し、あてはめた。
Where条件式 =”[ID]=” & Nz([ID],0)

検索システム

壊れた原因が判明し、修正。
OR検索をするならば、こうしなきゃダメじゃん。どうりで。

壊れた検索システムを修復

検索システムが壊れていることに気づいた。
茨城と入力し、東京都も表示される。
こまめに別名で保存しるのでひとつずつ開いてみたら、今朝1番のバックアップですでに破壊していることが判明。
原因不明。
昨夜のバックアップバージョンに、きょう作ったクエリやVisual Basicなどをインポート。
検索システム復活。

顧客詳細フォームの作成

全画面で開きます。
上に顧客情報(所在地など)が一覧で表示され、
下にサブフォームとして、受注履歴(商品、数量、金額など)の一覧が表示。

読み取り専用。編集不可に設定。
編集したい場合は、顧客情報編集ボタンをクリック。

[メインパネルに戻る]ボタンを作りました。

メインパネル

顧客検索のボタンをクリックすると、顧客検索フォームが開く。
顧客検索フォーム内の「トップページへ」というボタンをクリックすると、
顧客検索フォームを閉じて、メインパネルに戻る。
それぞれのフォームは、最大化&ポップアップの状態で開く。

埋め込みマクロで設定

電話番号 OR検索

ご要望で、電話番号検索に、OR検索を追加。
電話番号が複数登録されている顧客があるため、
登録された3つの電話番号を、検索の対象に含める。

クリアボタンの作成

ご要望で、顧客検索フォームにクリアボタンを作成。
5つの検索ボックスのデータを、ワンクリックで一括消去。

Private Sub クリア_Click()
Me!漢字検索 = “”
Me!カナ検索 = “”
Me!電話検索 = “”
Me!都道府県検索 = “”
Me!市区郡検索 = “”
Me.Requery
End Sub

検索ボタンの作成

ご要望で、顧客検索フォームに、検索ボタンを作成

部分一致検索

ご要望で、前方一致から部分一致検索に修正

Like IIf(IsNull([Forms]![FD_検索]![電話検索]),”*”,“*” & [Forms]![FD_検索]![電話検索] & “*”)

  • 青い斜体文字部分がなければ、前方一致
  • クエリのデザインビューの[抽出条件]行に条件を記入
  • UTF-8の関係か?、そのままコピペすると二重引用符が全角になっている場合があるのでご注意ください
第二次納品
  • データベースを開くと、フォームが全画面で表示される
  • ナビゲーションウィンドウは表示されない
  • 顧客名、フリガナ、電話番号、都道府県、市区郡で、複合検索(前方一致)
  • 五十音検索
  • しぼりこんでの検索が可能
  • 結果は同一フォーム内、下部に一覧表示
  • 土台にさせていただいたのはこちら(フリーウェア)の[「選択クエリー」を利用した複合検索例]

検索項目を入力しやすくするため、タブオーダーを設定。

完成イメージのお預かり

Wordでの完成イメージをお預かりの上、以下、具体的なご希望をお聞きしました。

  • 検索結果が、(別枠ではなく)フォームの下部に一覧で表示される
  • 一覧の中から該当するレコードの詳細ボタンをクリックすると、顧客情報が表示される
  • 受注登録ボタンをクリックすると、受注登録フォームが表示される
第一次納品
  • 検索ボタン5つ
  • クリックするとフォームがあらたに開く
  • フォームは、パラメータクエリを元に作成
  • 検索ボタンの数だけ、パラメータクエリとフォームが必要(使いまわし不可)
メモ
  • ナビゲーションウィンドウ、メニューなどを表示させない設定にしたものを
    通常モードで開きたい場合は、Shiftを押さえながら。