まりふのひと

完成実績検索で実績が表示されない

下松市のFS社から、Accessで作った「完成実績検索」システムで、「ある製造番号の実績が表示されない」という連絡を受けた。
全て表示されないのであればプログラムミス(プログラムが壊れた)であろうが、そうではないところから、「データに何らかの問題点がある」と思われるので、実績を表示する過程を追った。

フォームデザイン

サブフォームを3っ使っている。

  1. 親フォーム
    • 名前: F_完成実績検索
  2. サブフォーksfm実績 ‥‥ 問題となっている実績を表示するフォーム
    • ソースオブジェクト: F_完成実績検索実績
      • レコードソース: Q_完成実績検索実績
        • [D_作業受付]⇔≪受付No≫⇔ [D_作業日報]⇒≪作業者コード≫⇒[T_社員名簿]
          • 抽出条件: is社員 = True
    • リンク子フィールド: ID
    • リンク親フィールド: txtID
  3. 親フォームのテキストボックス: txtID
    • コントロールソース: =Forms!F_完成実績検索!sfm一覧.Form!txtID
    • 可視: いいえ
  4. サブフォーlの: sfm一覧
     詳細部のサブフォーム: sfm明細(ソース:F_完成実績検索明細)の裏に隠れている。(重なっている)
    親フォームの Form_Load() 時、下記モジュール F_SubForm(1) を call している。
    • ソースオブジェクト: F_完成実績検索一覧
      • レコードソース: Q_完成実績検索一覧
        • [D_作業指図]⇔≪受付No≫⇔[D_作業受付]⇔≪受付No≫⇔[W_is印刷]
    • リンク: なし

原因の推定

  1. クエリー:Q_完成実績検索実績 の抽出条件である“is社員 = True” が利いているのではないだろうか?
    • この件につき、メールで問い合わせ中‥‥
       この条件はFS社の強い要求で 2006/05/29 に改修したもの。

モジュール

※ F_SubForm
Private Sub F_SubForm(argStatus As Integer)
Dim mbTitle As String

    mbTitle = MYObjName & "/F_SubForm"
    Select Case argStatus
      Case 1
        With Me.sfm一覧
            .Width = 1440
            .Height = 1440
            .Top = 0
            .Left = 0
            .Width = CLng(200 * PC_constMtoT)
            .Height = CLng(60 * PC_constMtoT)
            .Visible = True
        End With
        With Me.sfm明細
            .Width = 1440
            .Height = 1440
            .Top = 0
            .Left = 0
            .Width = CLng(200 * PC_constMtoT)
            .Height = CLng(60 * PC_constMtoT)
            .Visible = False
        End With
      Case 2
        Me.sfm一覧.Visible = False
        Me.sfm明細.Visible = True
      Case 3
        Me.sfm一覧.Visible = True
        Me.sfm明細.Visible = False
     Case Else
        MsgBox PC_msgSystemError, vbCritical, mbTitle
        Exit Sub
    End Select
End Sub