hatena の Microsoft Access 掲示板



[7259] RE:非連結のCBを利用してレコードを選択後の情報取得と計算 Name:Kiara MAIL Date:2017/08/02(水) 19:20
hatena様、
お忙しい中、ご確認頂き誠に感謝致します。
また、小職の纏まりのない嘆きの中から内容を汲み取って頂き、本当にありがとう御座います。

hatena様のご反応から判断して、ともかく何かしらの手法はあると判断し少し安心してます。

ただ、ご指示のとおり設定してみようと試みたのですが、ちょっとうまく行きませんでした。スミマセン。


現在の状況と仕組みの補足として


■選択チェックボックスのプロパティ(chk1)
=InStr([txtChkList] & ",","," & [管理NO] & ",")>0

のまま利用してます。管理IDを取得して、エントリー時に、その管理IDに対して出荷FLGをたてるのに活用したいと思ってました。
ちなみに =Nz([選択数量])>0 にしたところ「レ」チェックが表示されませんでした。

現在、設定されているその他の設定は、、、

■選択数量テキストボックスのコントロールソース
=IIf([chk1]=True,[数量],0)

ここは、選択数量が選べませんでした。そもそものデータソースがヘッダー部分で表示している部分をキーとしたクエリーになっていて、クエリーをそのまま表示しているのは[管理No][受付日][店名][店舗名][問屋][数量]までです。[選択数量][注残]は後付けです。

■注残のテキストボックスのコントロールソース
=IIf([chk1]=True,[選択数量]-[数量],0)

■合計のテキストボックスのコントロールソース
=Sum([数量])

■在庫数のテキストボックスのコントロールソース
[在庫数]  
これもクエリでJANコードをキーに在庫マスタから引っ張った数量です。

■チェック合計のテキストボックスは非連結にしてあり下記のロジックに組み込みました。

---------------------------------------------------------------------
Private Sub cmdChk_Click()
If IsNull(Me.管理No) Then Exit Sub
If Me.chk1 Then
'チェックなしの処理
Me.txtChkList = Replace(Me.txtChkList & ",", "," & Me.管理No & ",", ",")
Me.txtChkList = Left(Me.txtChkList, Len(txtChkList) - 1)
Me.選択合計 = Me.選択合計 - Me.数量.Value
Else
'チェックありの処理
Me.txtChkList = Me.txtChkList & "," & Me.管理No
Me.選択合計 = Me.選択合計 + Me.選択数量.Value
End If
End Sub
---------------------------------------------------------------------
Private Sub cmdSelectAll_Click() 'すべて選択ボタン
Dim stFilter As String
With Me.RecordsetClone
If Not .BOF Then .MoveFirst
Do Until .EOF
stFilter = stFilter & "," & !管理No
chk_total = chk_total + !数量
.MoveNext
Loop
End With
Me.txtChkList = stFilter
Me.選択合計 = chk_total
chk_total = 0
End Sub
---------------------------------------------------------------------
Private Sub cmdSelectClear_Click() '選択解除ボタン
Me.txtChkList = ""
Me.選択合計 = 0
End Sub
---------------------------------------------------------------------
■在庫数のテキストボックスのコントロールソース
=[在庫数]-[選択合計]

としてます。ここまで数量変更以外のところは思い通りに動きました。

hatena様にご認識していただいたとおり、ユーザが数量を変更することを想定しております。変更する箇所は、数量の項目。
いろいろ触っていてわかったのですが、数量を変更するとそのまま実レコードの数量も変わるので、そこは生かして、、、

-------------------------------------------------------------------
Private Sub 数量_Click()

'編集前の数量を取得
b_suryo = Me.数量
'編集された際にレコードを判別する為の管理Noを取得
henko_kanri_no = Me.管理No

End Sub
-------------------------------------------------------------------
Private Sub 数量_AfterUpdate()

'編集前の数量とフォーカスが無くなった際の数量を引いてアフター用の変数に格納 数量変更がなければ0 変更があれば数字が変わる。
a_suryo = b_suryo - Me.数量

End Sub
-------------------------------------------------------------------
※b_suryo(before数量),a_suryo(after数量),henko_kanri_no は外部変数で作ってみました。


このa_suryoを活用しようかと試みておりました。このまま出来るのか落とし穴があるかわかってません(仕掛中)

やはり開発に関して初めてなこともあり、先の先まで見えていないので、どのやり方が良いのかという不安が先に来てしまい甘えてしまって
いる次第です。

hatena様のご指示のとおり進めたいのですが、認識として、クエリーの情報や各項目の設定状況まではお伝え出来ていなかったので、この状況を踏まえて、改めてアドバイスがあればご教示頂けたら幸いです。

以上、多くの方のフォローをされていてお忙しい中、大変恐縮ですが、宜しくお願い致します。

P.S. 我流で一人で戦っている為、ご質問させて頂いて、理解し答えを導き出そうとして下さるだけでも、本当に心強く思ってます。今後ともお力添え頂けたら幸いです。


スレッド記事表示 No.7250 非連結のCBを利用してレコードを選択後の情報取得と計算について  Kiara2017/08/01(火) 15:13 [ 返信 ]
   ┣No.7251 RE:非連結のCBを利用してレコードを選択後の情報取得と計算につ hatena2017/08/01(火) 17:32
   ┣No.7254 RE:非連結のCBを利用してレコードを選択後の情報取得と計算につ Kiara2017/08/02(水) 10:19
   ┣No.7258 RE:非連結のCBを利用してレコードを選択後の情報取得と計算 hatena2017/08/02(水) 17:37
   ┣No.7259 RE:非連結のCBを利用してレコードを選択後の情報取得と計算 Kiara2017/08/02(水) 19:20
   ┣No.7260 RE:非連結のCBを利用してレコードを選択後の情報取得と計算 hatena2017/08/03(木) 00:37
   ┣No.7261 RE:非連結のCBを利用してレコードを選択後の情報取得と計算 Kiara2017/08/03(木) 09:13
   ┗No.7267 【解決】非連結のCBを利用してレコードを選択後の情報取得と計算 Kiara2017/08/04(金) 18:36

  




無料レンタル掲示板・日記・ブログ Progoo