• 締切済み

AS400にてサブファイルレコードの再定義

現在RPGをはじめて3ヶ月程度のものです。 全体の流れ: 1.品目マスタを「作成日、注文番号、納期、品目番号」の順番で読み取る。 2.1をサブファイルレコードとして一覧表示する。 3.2の際に選択項目を設け、修正レコードを選択できるようにしてある。 4.選択項目を指定して実行すると修正画面に移動する。 5.修正項目は納期と納品数のみで、それ以外は表示のみを指定。 5.修正して実行すると、品目マスタが修正されて一覧の画面に戻る。 6.戻ってきた後の一覧画面は修正したレコードは修正した内容を表示して、   修正していないレコードはそのままにする。 という流れです。 上司のアドバイスではCHAINを使って、 再度品目マスタをユニークキーで読み取って、 修正した内容のみを読み取ればよいといいますが、 いまいちやり方が分かりません。 ただイメージとしては、 サブファイルを表示する際にS1という件数を表示する為の仮のフィールド?があり、 それをS1SEQNというサブファイル上のレコード件数を表示するフィールドとして使っています。 (Z-ADD S1 S1SEQN という具合です。) で、品目マスタ内のフィールドとしてE1SEQNというのがあります。 ですので、最初に順次アクセスする際に (Z-ADD S1 S1SEQN )の以外にも (Z-ADD S1 E1SEQN )を使って(現在はしていない)、UPDAT 品目マスタを行っておいて、 修正画面から戻ってきてから、S1SEQNと品目マスタ内のE1SEQNを引っ掛ければいけるのかと思っています。 ところがCHAINを使った場合の、このやり方がさっぱり分かりません。 もしかすると私のイメージ自体が間違っている可能性は凄く高いのですが、 どなたかアドバイスの程お願いします。

みんなの回答

回答No.1

かななか回答が付かないですね^^; 私は画面系は苦手なのでAS/400系の掲示板などのサイトをご紹介します。(全て日本語のページです) 教えてgooはAS関係の技術者が少ないのか質問も回答も少ないです。AS/400会議室で聞けば一発で答えて貰えると思いますよ。 【AS/400会議室】 http://www7.big.or.jp/~pinball/discus/as400/index.html 【AS-400 Tips&Techniques】 http://www.as400-net.com/ 【HRM】 http://hrm.fixa.jp/ 【くっすんの最強リンク集】 http://kusuda777.web.infoseek.co.jp/links/59.htm http://kusuda777.web.infoseek.co.jp/links/61.htm ご検討をお祈り申し上げます。

hikari_tai
質問者

お礼

アドバイスいただきありがとうございます。 自己解決できましたのでお知らせします。 わざわざすみませんでした。

関連するQ&A

  • レコード更新時にデータ値を自動入力したい

    たびたびすみません。また詰まってしまったので教えていただけませんでしょうか。 Accessでレコード更新時にある項目に自動的に値を代入したいです。 前提としてテーブルは消費者マスターと単価マスターがあります。 単価マスターはフィールドとして単価ランク(主キー)と単価(通貨型)があります。 消費者マスターのレコードをフォームを使って編集する際に単価ランクをキーに 単価マスターから単価を引っ張ってきて 料金 というフィールドに代入して画面に表示し、 必要に応じて 料金 を画面から変更する形にしたいと考えてます。 どのように指定すればよいでしょうか? それからこれは別の質問にした方がいいかもしれませんが、差し支えなければ 教えて下さい。 レコードの更新の際に 更新日 というフィールドに当日日付を自動的に代入したいのですが どうすればいいでしょうか?

  • ACCESS VBA テーブルデータにYES/NO

    ACCESSの表形式のフォームにYES/NOフィールドを足して 一覧フォームで任意のチェックボックスを選択して 選択されたデータのみを表示するようにしたいです。 しかしチェックボックスはレコードひとつひとつについてるのですが 認識されるチェックボックスは一番上のレコードのチェックボックスのみです。どうすればレコード別に判定できるのがわからないので 詳しい方ご教授お願いします。自分が書いたのは下記コードです。 Dim chkBln As Boolean chkBln = False If チェック50 = True Then chkBln = True MsgBox chkBln End If '検索結果の表示 DoCmd.OpenForm ("データ修正画面") '自身のレコードソースに設定 Forms("データ修正画面").RecordSource = "Select * From T_障害票マスタ WHERE チェック = " & chkBln & ""

  • ACCESS2000の帳票フォーム詳細欄でのコンボボックスについて

    まずは現状から説明します。 以下のテーブルがあります。 [細分類マスタ] 細分類ID(主キー) 細分類 [品目区分マスタ] 細分類ID(主キー/細分類マスタ参照) 品目区分ID(主キー) 品目区分 [品目マスタ] 細分類ID(主キー/細分類マスタ参照) 品目区分ID(主キー/品目区分マスタ参照) 品目ID(主キー) 品目 [台帳テーブル] 台帳明細ID(主キー) 細分類ID(細分類マスタ参照) 品目区分ID(品目区分マスタ参照) 品目ID(品目マスタ参照) 数量 やった作業: 1.台帳テーブルをレコードソースとした台帳フォーム(帳票フォーム)を作成 2.台帳フォームの詳細に 細分類、品目区分、品目のコンボボックスを作成  -------------------------------------台帳フォームの詳細欄イメージ  [細分類▽][品目区分▽][品目▽][数量]  -------------------------------------  コントロール名:cbo_saibunrui,cbo_hinmoku_kubun,cbo_hinmoku 3.それぞれの値集合ソースに  SELECT * FROM 品目区分マスタ WHERE 細分類ID=cbo_saibunrui;  SELECT * FROM 品目マスタ WHERE 細分類ID=cbo_saibunrui AND 品目区分ID=cbo_hinmoku_kubun; を設定(これにより絞込み) 4.コンボボックスがフォーカス取得時に自分自身をリクエリー 現象: 2レコード以降を追加しようとすると、それより以前のコンボボックスの内容が一斉に 変ってしまう。(リクエリーがかかるからあたりまえ?) なんとか、それぞれのレコードのコンボボックスが独立して働くようにしたいのですが。 無理なら、特にこの方法にこだわるのもではありません。 要は台帳フォーム(帳票フォーム)の詳細欄で効率よく品目を選択でき、 その画面上でそれまでに選択した品目が見えていればOKです。 現在納期に追われて非常に困っています。 表現がわからないところは突っ込んでください。すぐに補足します。 よろしくお願いします。

  • DetailsViewで指定されたレコード表示したい

    Visual Studio 2008で作業しています。 DetailsViewコントロールを使用してAcessDBのレコードの内容を表示しています。この画面は、他の画面で、レコードの一覧を表示し、その一覧で、あるレコードが選択されたときに呼び出されます。この画面で、そのレコードの詳細を表示したいと考えています。レコードには主キーがIDという名称で登録されています。この画面にきたとき、(他の画面で選択した)IDの値を取り出すところまでは、出来たのですが、このIDを指定して、SQL文を発行し、このレコードを取得する方法がわかりません。(現在のSQLステートメントは、select ID,項目1,項目2 ... from table_A のようになっており、 where 句をつけていません。取得したIDをテキストボックスにセットし、where (ID = TextBox1.[Text])のようにしたのですが、実行時に異常終了していまいました。) DetaisViewで、指定されたレコードを表示する方法をご存じのかたがおりましたら教えてください。

  • FileMaker5.5のスクリプト定義エラー

    FileMaker5.5でスクリプトを組もうとしていますが上手くいきません。 やりたいこととしては、全データの中から、2者択一のフィールドで真のデータを検索し、一覧表示するだけです。 スクリプトの組み方は 「全レコードを表示」→「検索モードに切り替え」→「フィールドへ移動」(不要かと思いますが一応)→「テキストを挿入」(ここでフィールドを指定して真の値”1”をフィールドに挿入しているつもり)→検索実行→「レイアウト切り替え」(で一覧表示のレイアウトへ切り替えます) です。 エラー表示は、 「この検索条件には有効なものがありません。検索する前に有効な検索条件を入力してください」 です。 FileMakerは近々Ver8が出るそうなので、Ver7へのアップグレードをせずに5.5で作っていますが、今回の質問に関連してその辺の事情もご存知でしたらお教えいただけるとありがたいです。

  • ACCESSでのクエリの作成

    初歩のことかと思いますが、どなたか教えてください。。 「Aテーブル」にはユーザ情報が入っていて、そこに誕生日として元号、年、月、日というフィールドを作りました。また、同じAテーブルに、入社年という項目があり、同じように元号、年を取るフィールドを作りました。テーブルの中にはこの「元号」の項目はテキスト型で01:昭和、02:平成といったように、コード部分を格納するようにしています。 この元号にはマスタがあるのですが、選択クエリで元号マスタを紐付けしたとき、たとえば「誕生日」は入力されていて、「入社年」は入力されていなかったときは、クエリ上にデータが表示されません。。 このようなどちらかにデータが入っていなくても、1レコードとして表示されるようにはできないでしょうか?

  • ACCESS クエリからテーブルへのコピペ

    Pzrivate Sub cmb品番_AfterUpdate() Dim Rst As DAO.Recordset Dim z As String z = DLookup("コード", "Q_コンポーネント", "専用コード='" & Me.tx専用コード & "'") Set Rst = CurrentDb.OpenRecordset("W_部品一覧", dbOpenTable) With Rst .AddNew .Fields("区分") = DLookup("部門", "Q_マスタ", "専用コード='" & z & "'") .Fields("分類1") = DLookup("分類1", "Q_マスタ", "専用コード='" & z & "'") .Fields("分類2") = DLookup("分類2", "Q_マスタ", "専用コード='" & z & "'") .Fields("品番") = DLookup("材料", "Q_マスタ", "専用コード='" & z & "'") .Fields("品名") = DLookup("品名", "Q_マスタ", "専用コード='" & z & "'") .Fields("コード") = DLookup("コード", "Q_マスタ", "専用コード='" & z & "'") .Fields("品種") = DLookup("品種", "Q_マスタ", "専用コード='" & z & "'") .Fields("重量") = DLookup("重量", "Q_マスタ", "専用コード='" & z & "'") .Update End With Rst.Close Set Rst = Nothing End Sub ------------------------------------------------------------ 上記のコードで「Q_マスタ」クエリの内容を「W_部品一覧」テーブルにコピペしています。 ※「W_部品一覧」テーブルはサブフォームです。 「Q_マスタ」クエリの専用コードフィールドには「z」と一致する値が複数あるのですが、上記コードではそのクエリ内の一番上の1レコード分しかコピペできていません。 「z」の値が一致している全てのフィールドを「Q_マスタ」→「W_部品一覧」にコピペするようにしたいです。 For~NextやDo While~Loopを使って処理回数を増やしてみたのですが、同じレコードの内容が繰り返しコピペされてしまいました。 どうすれば複数のレコードをコピペできるかご教示頂けますようお願いします。

  • Accessの選択クエリから最終日付のデータのみ抽出したい

    Access2002を使用しています。 初心者ですのでよろしくお願いします。 アクセスで選択クエリを作成しました。 このクエリのフィールドは「日付」と「金額」です。 この選択クエリから最終日付のレコードのみを抽出する選択クエリを作製したいのですが、何か方法はありませんでしょうか? 最終日付に対応する金額を抽出したいイメージです。 なお、レコードの作製順番は、必ずしも日付順とはなっていません。(例えば、7/2付でレコードを作成後、7/1付で次のレコードを作製している場合もあります。) 一つの方法として、選択クエリのデザインフォームで集計ボタンを押して日付フィールドの集計項目(グループ化)で「最後」を選択しているのですが、「金額」が全レコード表示されてしまいます。 また、同様にして、金額フィールドの集計項目で「最後」を選択すると、最後に作成したレコードが表示されてしまいます。(上記の例では、7/2ではなく7/1のレコードが表示されます。7/2に対応する金額を抽出したいのですが…) アドバイスよろしくお願いします。

  • MCアクセスで フォームフィルタで抽出

    MCアクセスです。 フォーム画面でフォームフィルタで抽出しようとするとき 1.条件を指定したいフィールドをクリックする。 2.「▽」をクリックする 3.一覧から条件とする項目を選択する。 この時、項目がコンボックス(?)のように出るフィールドと、項目が出ないフィールド(IsNull,Is Not Nullと出る)があります。 どのように設定したら、全てのフィールドで項目が出てくるのでしょうか? __

  • fp10 フィールド修正日の自動計算方法

    お世話になります。 ファイルメーカー10を利用しています。 修正日を自動計算で1つのフィールドに表示させたいのですが、レコード自体の修正日ではなく、レコードの中の特定のフィールドの修正日を表示させる方法はありますでしょうか。 どなたかお分かりになる方、教えていただけませんでしょうか。