Access を用いた構造の問題(その 2)

このQ&Aのポイント
  • Accessを使用して輸入の船積みデータを管理する際に、国境通過のデータをどのように入力するかについてわからない。
  • クエリやフォームを使用して、国境通過フィールドがブランクのレコードを選び、データを入力または変更する際、新しい別個のテーブルとして保存する必要があるかがわからない。
  • 国境通過テーブルを作成し、ブランクのレコードを開いてサブフォームに船積みデータを表示させ、選択する際に国境通過のデータが残るようにしたいが、具体的な方法がわからない。
回答を見る
  • ベストアンサー

Access を用いた構造の問題(その 2)

以前 Access に関し質問した者です。ご面倒でなければ下記をご覧下さい。質問の仕方も悪く明確な回答を頂けなかったで改めて質問します。 http://okwave.jp/qa4477357.html 【前提】輸入の船積みのデータの管理。船積(shipment)は各サプライヤーから送られ、米国とメキシコの国境にある倉庫に一時保管される。これらの船積から逐次いくつか選び、トラックにて簡易通関がされ、国境通過となる(つまり、トラック 1台に就き複数の shipment が該当します)。更に、週にいくつかあるこれらトラックの国境通過に対し、毎週確定の通関手続きがなされる。 【質問】shipment のデータを登録するのは、shipment と言うフォーム(invoice number、supplier name などのデータを登録)を作り、そこに出て来るサブフォーム shipment details(パートナンバー、個数などのデータを登録し、shipment ID にてリンクさせる)事で問題ありません。しかし、これら shipment のデータから(この時点では国境通過のフィールドはブランクになっている)選んで国境通過のデータ(日付なら日付け)をどう入れるかが判りません。 例えば、クエリを使って「国境通過フィールドがブランクになっているレコードを選ぶ」と言う事は小生でも何とか出来ると思います。ところが、そのクエリをベースにしたフォームを開き、そこに国境通過のデータ(例えば今日通過させたい shipment を選び、今日の日付)を入力すると、元データにその入力は反映されるのでしょうか。そのクエリ(及びそのクエリをベースにしたフォーム)を使い、データを入力若しくは改変したら、新しい別個のテーブルとしてセーブする必要があるのでしょうか(その方法は?)。 もっと具体的に言えば、例えば「国境通過」と言うテーブルから出来たフォームを作り、そこでブランクのレコードを開き(新しいレコードのデータ入力画面)で、サブフォームに shipment のデータを表示させ、選べるようにしたい訳ですが、どうすれば良いでしょうか。繰り返しになりますが、当然選択する際には shipment のテーブルでは国境通過のデータはブランクであり、選択した後には「国境通過」のフィールドに通過した日の日付がデータとして残されることになります。 色々判らない事が多く困っています。どなたかご親切な方ご教授願いたくお願いします。また、説明が貧しく判らないと言う場合、補足致します。

質問者が選んだベストアンサー

  • ベストアンサー
noname#140971
noname#140971
回答No.1

開発手順 1、データを3つに分類。 (1)基礎データ。 (2)台帳データ。 (3)伝票データ。 2、入力画面と出力画面・出力帳票のレイアウトの検討。 クエリ云々はさておいて、先に入力と出力とを検討。 3、実際の開発。 (1) 各種ライブラリ。 (2) 入力作法の確立。 (3) 出力作法の確立。 (4) 個々の開発。 で、質問は、一足飛びにある特殊な入力フォームに焦点があっているようですね。 まず、上記の台帳データですが、これには2種類あります。 一つは、いわゆるマスターと言われるものです。 二つは、いわゆる管理台帳系のものです。 で、この管理台帳系の入力フォームというのは一般の入力フォームとは多少趣が違っているものです。 例えば、テーブル「「国境通過管理台帳」なるものを用意したとしましょう。 例えば、カレンダーとコマンド釦を配置したフォーム「国境通過管理」を用意したとしましょう。 フォーム「国境通過管理」には、サプライヤーを絞り込むコンボボックスを配置することもあるでしょう。 ともかく、これで「国境通過管理台帳」の抽出条件に見合ったフォーム「国境通過管理」を仮定。 「当日、国境通過管理データ入力」なるコマンド釦をクリック。 そうすると、フォーム「国境通過管台帳」がオープン。 フォームの上部には、抽出した日付、抽出したサプライヤーが表示されているかも知れません。 ここで、サプライヤーを選び直す機能があれば便利かも知れません。 フォームの下部には、通過番号を入力する欄があるかも知れません。 通過番号を入力する欄が一桁入力する度に候補が絞りこまれますので、それを表示してもいいでしょう。 で、確定すれば、台帳の所定位置をスクロール表示。 上方に隠れていれば台帳画面の最上部に表れるでしょう。 下方に隠れていれば台帳画面の最下部に表れるでしょう。 で、ブランクだった日付に通過日が書き込まれるでしょう。   Dim frmKTKDaicho As Form   Dim rstKTKdaicho As Recordset   Set frmKTLDaicho = Screen.ActiveForm   Set rstrstKTKdaicho = frmKTLDaicho.RecordsetClone   rstrstKTKdaicho.FindFirst XXXXXXXXX   If rstrstKTKdaicho=NoMatch Then     xxxxxxxx   Else     xxxxxxxxx   End If フォーム画面上で矢印キーを送出することで画面はスクロールさせることができます。 某工場の進捗管理台帳を、こういう感じで作成しました。 私は、管理台帳の上に更にフォーム「管理データ入力」を配置しました。 ※ここまで立ち入れば、正に、各自の作法というかアイデアの問題。 ※OKWave での質疑応答の範囲を越えていると思います。

その他の回答 (1)

noname#140971
noname#140971
回答No.2

補足: 管理台帳は伝票をもとに生成。 管理台帳原始データ・・・伝票入力。 管理台帳・・・・・・・・伝票入力フォームを閉じた後に生成。 二つは、分けて管理した方が良いと思います。 バックアップの意味もありますから・・・。

関連するQ&A

  • Access を用いた DB の構造

    Access 2007 で database を作ろうとしていますが、構造を考えていてこんがらがってしまいました。 具体的には、輸入の船積みのデータを管理したいのですが、船積は各サプライヤーから送られ、米国とメキシコの国境にある倉庫に一時保管されます。これらの船積から逐次いくつか選び、トラックにて簡易通関がされ、国境通過となります(つまり、トラック 1台に就き複数の shipment が該当します)。更に、週にいくつかあるこれらトラックの国境通過に対し、毎週確定の通関手続きがなされます。 Shipment に対し、supplier や商品データのテーブルからデータを拾うのは問題ないのですが、複数の shipment をどう「国境通過」(或いはトラックオーダー)にまとめるか、また、更に確定の通関手続きにどのように複数の「国境通過」を関連付けるか(具体的にどのようなフォームやクエリを使い、入力や管理をするか)判らなくなりました。 皆さんであればどのようにデータベースを構築されますか。また、データベースが効率よく機能(入力・閲覧・印刷など)出来るようにする為には、どのようなクエリやフォームを使われますか。 データベースに就いては殆ど初心者なので分かりやすく解説頂ければ幸甚です。

  • Access フォーム検索

    お世話になっております。 フォームに日付を入力した時に、フィールドに同じ日付があった場合、そのレコードのデータを表示するにはどのようにすればいいのでしょうか? テーブルは、[日付]を主キーにしたクエリテーブルです。 よろしくお願い致します。

  • アクセスのテキスト型フィールドの初期値

    アクセスのテーブルにテキスト型フィールド「●●日付」を作成しました。さらに、定型入力の方法として、日付(____/__/__)を指定しています。 このテーブルから、クエリでデータを取得する際、●●日付にデータを入力していないレコードのみを取得したいと思い、クエリの抽出条件として=""(ダブルクォーテーション)や=''(シングルクォーテーション)と記載したのですが、レコードが1件も抽出されません(もちろん●●日付にデータを入れていないレコードは複数あります)。一方で、<>""や<>''で、●●日付にデータが入力されているレコードを抽出しようとした場合は、●●日付にデータが入力されているレコードが抽出されます。 テキスト型フィールドにデータが入力されていないレコードを抽出するクエリはどのようにしたら作成できるのでしょうか?

  • アクセス作成について

     アクセスについて質問します。  フォームで入力する場合で、例えばテーブルのレコードを100までとし、101を超えた場合またレコード1にデータを入力することは可能でしょうか。 テーブル フィールド1 フィールド2  1       6  2       8   .      .   .      . 100       55 フィールド1は固定し、フィールド2にデータを入力していき101番目にデータを入力する時はまた1行目の6を上書きしてデータを更新していくようなことは可能でしょうか。(もちろんフィールド1、フィールド2を別テーブルとしクエリーを活用することでもok) アクセス初心者です。よろしくおねがいします。

  • アクセスのフォームでデータ元をテーブルからクエリにかえたい

    上手く表現できるかどうかわからないのですが、頑張って書きます。少々長いです。 アクセスでフォームを使ってデータ入力しています。これは単純で、あるテーブルへのデータ入力をフォームを使ってやるだけのことです。このテーブルの中に「都道府県」というフィールドがあります。ある事情からこのフォームを使ってデータ入力(または修正)をするレコードは、「都道府県」のフィールドが「福岡県」のものだけでよくなりました。 そこで、「都道府県」に「福岡県」を持っているレコードだけを取り出すクエリを作ります。このクエリを元にして、同じフォームでデータ入力したいのです。入力項目は全く同じです。「福岡県」をもっているレコードだけが全く同じフォームで表示されるようにしたいのです。 もとのテーブル名を「全データ」とし、クエリを「福岡県抽出クエリ」と呼ぶとすると、どこかで「全データ」を「福岡県抽出クエリ」に書き換えればすべてのテキストボックスのデータ元が入れ替わってくれると思うのですが、それでいいのでしょうか。その場合、どうやったらいいのでしょう。 なぜ一からファームを作り直さないかというと、テキストボックスの大きさや配置を決めるのに膨大な労力を費やしていて、全部をやり直したくないからです。 どうかお願いします。ご指導ください。

  • Access2010で・・・

    Access初心者です。 社内でデータベースを作ることになり、分からないながらもやっていて、いざデータの入力をしようとすると問題が起きてしまいました。 クエリやフォームでデータを入力しレコードを追加して、上書き保存し画面を閉じて、また開くとクエリやフォームにレコードが追加されていないんです。 テーブルには、ちゃんと追加されています。 この原因は何でしょうか? お教えください。

  • ACCESS 互換性の問題でしょうか?

    お世話になります。 ACCESS2003(OSはXP)でデータを作成しました。(ACCESS2000ファイル形式)そして、ACCESS2000(OSはWIN98)で使おうとしたんですが、不正な処理というメッセージがでて、ACESS自体が閉じてしまいます。そこで、再度ACCESS2003で使ってみたところ普通に動くようです。 詳しくは、社員リストをテーブルで作成。クエリでフォーム入力用に修正。フォーム作成してデータ入力。といった形で作成しました。 テーブルで入力する分には普通に動くのですが、クエリ・フォームで入力するとウインドウが閉じてしまいます。また、氏名、シメイ、誕生日等 フィールドに入力するとウインドウが閉じますが、同じテーブルであるメモというフィールドは入力しても閉じません。 いろいろリレーションシップやカナ自動入力等触ってみたのですが、うまくいきません。やはり、OSかACCESSのバージョンの互換性がうまくいっていないからでしょうか? うまく、説明できなくてすみませんが、よろしくお願いします。

  • アクセスで日付の表示

    アクセスのフォーム表示で困っています そのフォームはあるテーブルをデータソースにしています そのテーブルのあるフィールドが 日付型で定義されていますが 困っていることは、00:00:00、とゼロで入っているため 99-12-30、と表示されます こんな時、ブランクで表示するにはどうすればいいでしょうか 現在は書式:に、日付(M)、のフォーマットを使っています よろしくお願いします

  • アクセス 前レコード内容を、新レコードにコピー

    アクセスで、テーブルに [日付] と [内容] のフィールドがあって、フォームでデータを入力する際、新しいレコードに[日付]を入力した後、[内容]の項目で、前回に最後のレコードで入力した [内容] のデータを、そのまま新しいレコードに入力したい。コピー貼り付けでもできるが、コマンドボタンを押して、1発で前回のデータをコピーしたい。どんなにしたらできるのですか?よろしくお願いします。

  • アクセス メモ型 255文字以上入れられない

    アクセスでテーブルデザインでメモ型にしています。 そのフィールドには何文字でも入力できるようですが、 そのフィールドをフォームのテキストボックスのコントロールソースにすると なぜか255文字以上入力できません。 テーブルは一度クエリにして、フォームのレコードソースとしています。 ダイレクトにテーブルを開いて、そのメモ型のフィールドに情報を入れることは出来ますが フォームからは255文字以上は入力できません。 これを回避する方法をご教授ください。