電子書籍の厳選無料作品が豊富!

こんにちは。

今、仕事で家庭用機器の商品の管理をしています。
ACCESSを使って各商品の詳細を入力しています。

オーディオ機器、DVD機器、モニター機器、オプション機器の4種類のテーブルがあり、それぞれに入力用フォームを作成してあります。
質問したいのは、型式の検索用フォームを作成して、検索を実行するとその型式がある入力用フォームを開き、データ(メーカー、値段、大きさなど)を表示させたいということです。

検索フォームで型式を入力
 ↓
検索
 ↓
型式が一致する入力用フォームを開き、
データを表示

テーブルやフォームが複数ある場合はどういう風に設定すればいいのでしょうか?
テーブルを1つにまとめた方がやりやすいのでしょうか?

分かりにくければ補足いたしますので、よろしくお願い致します。

A 回答 (4件)

入力用フォームはレコードソースを変えて4つ作成し


検索フォームにて
型式のテキストボックス
機器の種類選択のオプションボックスまたはコンボボックス
検索ボタン
を作成する。
検索ボタンクリックイベントに下記のような設定をする

Private Sub 検索_Click()
On Error GoTo Err_検索_Click

Dim stDocName As String
Dim stLinkCriteria As String

Select Case 機器の種類
Case 1
stDocName = "オーディオ"
Case 2
stDocName = "DVD"
Case 3
stDocName = "モニター"
Case Else
stDocName = "オプション"
End Select

stLinkCriteria = "[ID]=" & "'" & Me![型式] & "'"
DoCmd.OpenForm stDocName, , , stLinkCriteria

Exit_検索_Click:
Exit Sub
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
返答が遅れて申し訳ありませんでした。
早速やってみたところうまくいきました!!

お礼日時:2006/02/11 17:00

今までの回答とは少々違うかもしれませんが


登録処理と、検索処理を別々につくる。
1.「マスター」ファイルの作成
     機種・メーカー・購入先名
       マスターにて検索が確実になります。
   例:機種品名マスター
     入力時:ホップアップさせる。
         マスター以外入力できないようにする。
       例:DVD・TV・洗濯機・クーラー・等大分類です。
2.「メインファイル」の作成
 1)メインファイル(キーファイル)と詳細ファイルを分ける方法があります。
 2)メインフォーム上の項目(例です)
  機種、メーカ、商品名、型式、価格、購入日、購入先店名
  キーNO(自動発生させる)
3.「詳細ファイル」の作成
  1)キーNOにてメインファイルとリンクする。
  2)必要フィールドを作成する。
  3)1つのテーブルにした方が良いと思います。
4.「機種別表示マスタ」に表示させる項目のファイルをつくる。
    メイン登録の機種により詳細ファイルの表示させる項目を
    替えるためです。
5.登録処理
 1)スタートで、上部に「メインフォーム」下部に「詳細ファイル」を表示させる。
 2)上部のメインファイルにて登録してゆく
 3)終わった時点で詳細ファイルにメインにて発生した「キーNO」をフィルドにセットし画面に表示させる。
 4)詳細の項目:メインの機種により表示させる項目名をかえる。
 5)内容を登録してゆく。
6.検索・修正処理
 1)フォーム上部に型式を指定する項目をつくり、入力する。
   マスターをホップさせれば入力が省け、精度が上がる。
 2)メインファイルを検索し、同一データを下部に表示させる。
   メインファイルの「キーNO」にて詳細ファイルが自動的に検索できるので表示させる。
 3)同時に修正も可能にしておけば修正もできる。
7.一括問い合わせ処理
 1)敬作したい項目を上部につくる。
   一応は、メインファイルの項目を表示させる。
 2)入力された項目でメインファイルを検索し、「キーNO」にて詳細データも表示させる。
こういうやり方もいかがですか。
私は、VBAはあまりとくいではないので、「クエリー」の活用がメインでこれらを「マクロ」にてフォームにて処理するようにしています。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
返答が遅れて申し訳ありませんでした。
うまくいきました!!

お礼日時:2006/02/11 17:02

1.型式の検索用フォームを作成してください。


 (1)このフォームに型式を入力するためのテキストボックスを張付けます。
 (2)コマンドボタンを張付けます
  フォームの操作→フォームを開く→フォームを選択(オーディオ機器の入力フォーム)
→特定のレコードを表示するチェック
→検索フォームのテキストボックス名<->入力フォームの型式のフィールド名
→文字列選択→任意の名前(オーディオ機器)
 (3)コマンドボタンを張付けます。
DVD機器、モニター機器、オプション機器の4種(2)と同様あと3個作成します。
ご質問の内容のようになるかと思います。
テーブル1つにする方が良いかも知れません、(フイールド項目が同じなら)
より簡単になりそうですコンボボックスのするとか?
ご質問の趣旨と違ってましたらごめんなさい。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
返答が遅れて申し訳ありませんでした。
うまくいきました!!

お礼日時:2006/02/11 17:01

検索フォームのイメージが判りませんので、どうも...


仮に、[品種名][型番]というレコード情報が表示されるのであれば、
フォームにコマンドボタンを配置して、

Private Sub コマンド_入力フォームを開く()
On Error Resume Next
  Dim strDocName As String

  Select Case Me.[品種名]
    Case XXXX
       strDocuName = "オーディオ""
    Case XXXX
       strDocuName = "DVD"
    Case XXXX
       strDocuName = "モニター"
    Case XXXX
       strDocuName = "オプション"
    Case Else
       strDocuName = ""
  End Select
  DoCmd.OpenForm stDocName, , , "[型式]='" & Me![型式] & "'"
End Sub
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
返答が遅れて申し訳ありませんでした。
うまくいきました!!

お礼日時:2006/02/11 17:01

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!