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

いつもお世話になっております。
また、ご助言お願いします。

WIN7
ACCESS2010

工事台帳を作成しております。
親フォーム[F顧客入力]
顧客ID(主キー)
顧客名
顧客住所等、顧客に関する基本事項

子フォーム[F現場CD](顧客IDでリンクさせて親フォームに埋め込み)
作成日
得意先CD
現場CD(以前、質問させていただいた複雑な自動採番)(主キー)
備考等

一人の顧客に対して、社内の複数部門が携わる事があるので
一つの現場CDごとに工程管理や詳細を記入する [工事詳細]という
フォームを開き、リンクさせたいのですがうまくいきません。

具体的には、子フォーム内に[詳細入力]というボタンを作り

Private Sub コマンド詳細入力_Click()

DoCmd.RunCommand acCmdSaveRecord

If IsNull(Forms![F顧客入力]![現場CD].[Form]![現場CD]) Then Exit Sub

DoCmd.OpenForm "F工事詳細", , , "現場CD ='" & Forms![F顧客入力]![現場CD].[Form]![現場CD] & "'"
End Sub

「フィールド'現場CD'とキーが一致しているレコードをテーブル'T現場CD'で探すことができません」
というエラーがでます。
都度、手入力で現場CDを入力させればよいのですが...。

現場CDでリンクさせ、別フォームを開くようにしたいです。
(フォームヘッダー部分に現場CDと顧客名を表示できるようにもしたいので)

どうかご助言お願いいたします。

A 回答 (1件)

> 具体的には、子フォーム内に[詳細入力]というボタンを作り



ということなので、自分のフォームにあるものを参照する時には Me が楽です。
また、レコードを確定後でも何らかのエラーで確定できていない時もあるので Dirty 判別を入れておいた方が良いかも・・・

Private Sub コマンド詳細入力_Click()
  DoCmd.RunCommand acCmdSaveRecord

  If (Me.Dirty Or IsNull(Me.現場CD)) Then Exit Sub

  DoCmd.OpenForm "F工事詳細", , , "現場CD ='" & Me.現場CD & "'"
End Sub

として、どうなりますか


なお、上記のフォーム起動の方法では、Filter をかけて絞り込むものとなっているので、
「現場CD」がレコードソース上で得られている必要があります。

ただ「現場CD」を渡せれば良い・・・場合は、引数 OpenArgs 部分を使って受け渡しします。
(ヘルプに例があったと思います)

この回答への補足

30246kiku様

お礼とご報告が遅くなりました事をお詫びいたします。

ご助言いただきましたとおり、試しましたがうまくいかず、
試行錯誤を繰り返していました。
本日、フォームを構成するクエリを変更したところ
うまくいきました。
が、詳細をクリックするとパラメーターを求められます。
無視して、空白のまま進めると(ENTERキー)希望通りの
結果が出ています。

補足日時:2013/02/07 17:54
    • good
    • 0
この回答へのお礼

補足の件ですが、自己解決できました。
お礼が大変遅くなりまして大変申し訳ございませんでした。
これで、次の作業に取り掛かることができます。
この度は、どうもありがとうございました。

お礼日時:2013/02/12 17:36

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