| 
    
     |  | ▼八家九僧陀 さん: >▼247b さん:
 >ご親切に新たなコードまでご教示いただき本当にありがとうございます。
 >
 >まず、
 >>'Spin移動.Max = レコード数取得 + 1
 >を
 >>Spin移動.Max = レコード数取得
 >に修正したところ、支給台帳の最終行のデータが反映されません。
 >TextレコードでSPIN移動の現在行を表示しているのですが、56/57までで57/57の表示がされません。(最終行は57行)
 
 だとしたら、こちらの想定が間違っているのでしょう。元に戻してください。余計なことを言ってしましました。すみません
 
 >またご教示いただいたコードを修正、追記しました。
 >
 >また新規の
 >>'これはクラスモジュールです。
 >>'クラスモジュールを新規作成し、プログラムを貼り付けてください。
 >>'プロパティウィンドウの(オブジェクト名)を「clsFinder」に変更してください。
 >のご指示どおり、クラスモジュール作成もしましたが、
 >
 >実行すると、まず何らのエラーメッセージもされず、通常にUSER_FORMも表示されますが、Combo社員ID欄は空欄で、リストが表示されていません。
 
 リストが表示されていない、とは、リストの中身が無くなっているということですよね?
 それは
 'With Combo社員ID 247b del
 '  .RowSource = r.Address(external:=True)
 '  .ColumnHeads = True
 '  .TextColumn = 1
 '  .BoundColumn = 2
 '  .ColumnCount = 2
 '  .ColumnWidths = "40:60"
 'End With
 をコメントにしたからだと思います。
 いったん、上記部分のコメントを外してみてもらえますか。
 こちらから追加した部分はそのまま残してください。
 
 
 >後、次の修正部分で、「If .ListIndex < 1 Then Exit Sub」は、そのまま残せばいいんですね?
 >>  With Combo社員ID
 >>    If .ListIndex < 1 Then Exit Sub
 >>'    Combo社員ID.Value = .List(.ListIndex, 0) 247b del
 >>'    Text氏名.Value = .List(.ListIndex, 1)
 >>'    Text所属.Value = .List(.ListIndex, 2)>
 >
 >引き続きお助けください!!!!!
 
 If .ListIndex < 1 Then Exit Sub
 のステップについては、一番最初の投稿では
 If .ListIndex < Then Exit Sub
 となっていたので、おそらくこうだろうという修正を加えた部分です。
 想像の範囲を超えませんが、If .ListIndex < 0 Then Exit Sub
 にすべきであると思います。
 
 If DataFinder.Find社員(Combo社員ID.List(Combo社員ID.ListIndex, 0)) Then '247bAdd
 Combo社員ID.Value = DataFinder.GetValue(1)
 Text氏名.Value = DataFinder.GetValue(2)
 Text所属.Value = DataFinder.GetValue(3)
 '〜
 Text標準報酬月額.Value = DataFinder.GetValue(22)
 Text市県民税.Value = DataFinder.GetValue(23)
 End If
 のIF文の下の処理が実行されるか確認できますか?
 IF文のステップにブレークポイントを置くと処理がそこで止まります。
 ブレークポイントが解らない場合はレスしてください。
 
 
 |  |