過去ログ

                                Page     661
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫   
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 ▼条件式の設定が・・  mini 04/6/8(火) 14:57
   ┗Re:条件式の設定が・・  クロ 04/6/8(火) 17:24
      ┗Re:条件式の設定が・・  mini 04/6/9(水) 0:26
         ┗Re:条件式の設定が・・  mini 04/6/9(水) 10:36
            ┗Re:条件式の設定が・・  クロ 04/6/9(水) 10:51
               ┗Re:条件式の設定が・・  mini 04/6/9(水) 17:16

 ───────────────────────────────────────
 ■題名 : 条件式の設定が・・
 ■名前 : mini <mini_hm0220@yahoo.co.jp>
 ■日付 : 04/6/8(火) 14:57
 -------------------------------------------------------------------------
   みなさん、こんにちは。自分なりに考えてみたんですが、
解決策が見つからないのでアドバイス下さい!

ACCESS2000を使用してまして、売上を入力する
フォームを作成中です。

フォームの入力するところは、

メインフォーム
伝票日付
得意先コード
注文番号
直送先コード

サブフォーム
品番
数量

の6項目です。

得意先コードは得意先マスタ(テーブル)の得意先コードを
コンボボックスで選択するようになってます。

直送先コードも直送先マスタ(テーブル)の直送先コードを
コンボボックスで選択するようになってます。

それ以外に店舗マスタA(テーブル)と店舗マスタB(テーブル)
がありまして、内容は

店舗マスタA
直送先コード(←直送先マスタテーブルの直送先コードとイコール)
店舗コード
店舗名
企業名
企業コード

店舗マスタB
直送先コード(←直送先マスタテーブルの直送先コードとイコール)
店舗コード
店舗名
担当者名

です。この店舗マスタA・Bはレポートを作成するとき
に必要な情報で、
店舗マスタAは得意先コードが23000から23999
店舗マスタBは得意先コードが38000から38999
それ以外の得意先コードの時は必要なし
となります。

で、悩んでいる所は売上フォームの直送先コードを入力
した時、

得意先コードが23000から23999で店舗マスタA
に直送先コードとイコールのコードが無いときは店舗マスタA
入力フォームを立ち上げる。

得意先コードが38000から38999で店舗マスタB
に直送先コードとイコールのコードが無いときは店舗マスタB
入力フォームをたちあげる。

と言う条件を直送先コードの更新後処理で設定したいんです。

私が必死で考えた設定は以下の通りです。でもこの設定だと、
店舗マスタA・Bそれぞれに直送先コードとイコールのコードが
あるにも関らず、毎回入力フォームが立ち上がります。
何故でしょうか??

Select Case Forms![売上フォーム]![得意先コード]
    Case 23000 To 23999
    
  If DCount("直送先コード", "店舗マスタA","直送先コード=" &
  Me![直送先コード]) = 0 Then
            
  rdt = MsgBox("店舗マスタAが登録されていません!登録しますか?",
  4, "店舗マスタA")
    If rdt = vbYes Then
    DoCmd.OpenForm "店舗マスタA入力フォーム"
    End If
  End If
  End Select
  
  Select Case Forms![売上フォーム]![得意先コード]
    Case 38000 To 38999
    
    if DCount("直送先コード", "店舗マスタB", "直送先コード=" &
    Me![直送先コード]) = 0 then
          
    rdt = MsgBox("店舗マスタBが登録されていません!登録しますか?",
   4, "店舗マスタB")
    If rdt = vbYes Then
    DoCmd.OpenForm "店舗マスタB入力フォーム"
    End If
    End Select
    
  End Select

説明がヘタで申し訳ないです。何かいい方法がありましたら教えて
下さい。まだ何か説明が必要ならすぐにお知らせします。
宜しくお願いします。

 ───────────────────────────────────────  ■題名 : Re:条件式の設定が・・  ■名前 : クロ  ■日付 : 04/6/8(火) 17:24  -------------------------------------------------------------------------
   こんにちはクロです。
↓Forms![売上フォーム]![得意先コード]はMe!得意先コードでいいと思います。
>Select Case Me!得意先コード
> Case 23000 To 23999
***以下のようでもカウントします****   
> If DCount("*", "店舗マスタA","直送先コード=" &
>  Me![直送先コード]) = 0 Then
>            
>  rdt = MsgBox("店舗マスタAが登録されていません!登録しますか?",
>  4, "店舗マスタA")
>    If rdt = vbYes Then
>    DoCmd.OpenForm "店舗マスタA入力フォーム"
>    End If
>  End If
***ここから****
>  End Select
>  
>  Select Case Forms![売上フォーム]![得意先コード]
***ここまでは削除****
>    Case 38000 To 38999
***以下のようでもカウントします****    
>   If DCount("*", "店舗マスタB", "直送先コード=" &
>   Me![直送先コード]) = 0 then        
>    rdt = MsgBox("店舗マスタBが登録されていません!登録しますか?",
>   4, "店舗マスタB")
>    If rdt = vbYes Then
>    DoCmd.OpenForm "店舗マスタB入力フォーム"
>    End If
  End if
***↑に End If を追加し、ここから****
>    End Select
***ここまでは削除****   
>  End Select

この状態で仰っているような動作はします。
但し、「得意先コード」が指定以外のものが入力されないように
「得意先コード」のプロパティの「入力チェック」を「はい」にした方が
いいかと...

後は「直送先コード」のデータ型が気になります。

 ───────────────────────────────────────  ■題名 : Re:条件式の設定が・・  ■名前 : mini <mini_hm0220@yahoo.co.jp>  ■日付 : 04/6/9(水) 0:26  -------------------------------------------------------------------------
   こんばんは、クロ さん。

早速のアドバイスありがとうございます。
出先なもので、とりあえず教えて戴いた方法で
やってみます。
それでもダメならまた質問させてもらいます・・・。

取り急ぎ、お礼まで。
本当にありがとうございました!

miniより

 ───────────────────────────────────────  ■題名 : Re:条件式の設定が・・  ■名前 : mini <mini_hm0220@yahoo.co.jp>  ■日付 : 04/6/9(水) 10:36  -------------------------------------------------------------------------
   クロさん、こんにちは。

おっしゃる通りに変えてみたんですが、
まだ、登録済みの直送先まで”入力しますか?”
メッセージが出てきます。(T_T)

直送先コードのデータ型が気になるとおっしゃって
いましたが、何か関係あるでしょうか?
ちなみにテキスト型なんです。

 ───────────────────────────────────────  ■題名 : Re:条件式の設定が・・  ■名前 : クロ  ■日付 : 04/6/9(水) 10:51  -------------------------------------------------------------------------
   >直送先コードのデータ型が気になるとおっしゃって
>いましたが、何か関係あるでしょうか?
>ちなみにテキスト型なんです。

大いにあります。

**省略**
>DCount("*", "店舗マスタA","直送先コード=" & Me![直送先コード]) = 0 Then
**省略**
>DCount("*", "店舗マスタB","直送先コード=" & Me![直送先コード]) = 0 Then
**省略**

の「直送先コード=" & Me![直送先コード]」部分(2箇所)を

直送先コード='" & Me![直送先コード] & "'"

としてみて下さい。

テキスト型のフィールドを抽出(この場合はカウント)する場合は
「'」で括ってください。

 ───────────────────────────────────────  ■題名 : Re:条件式の設定が・・  ■名前 : mini <mini_hm0220@yahoo.co.jp>  ■日付 : 04/6/9(水) 17:16  -------------------------------------------------------------------------
   こんにちは、クロさん。

おっしゃる通りやってみましたら、問題は解消されました!

データ型って重要だったんですね・・。(^_^;)
勉強になりました!

本当に有難う御座いました。感謝です!!

miniより

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━    通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━                                 Page 661