|
VBWASURETAさんフォローありがとうございます
>上記コードも番号を外しました。
>CommandButton1と2は入力ボタンと行削除ボタンですが、
>ボタンの部分の表示が使えないようになって表示されています。
>これも私のどこかの設定ミスでしょうか?
>
>まったくデーターの無いレコードの部分にスクロールバーを移動しても、
>>次のボタンを押しても、新しいレコードを登録フォームからデーター入力しても、
>患者IDのTextBoxに常に21197と表示されます。
>
>これは、CommandButton1と2のボタンが表示されないことに関係ありますか?
>重ね重ねの質問で大変恐縮ですが、お時間の宜しい時にご回答下さい。
>
>また、教えていただいた、コードを学ぶためにはどのような書籍を使えば宜しいですか?
>今は、初心者用のエクセルのVBAの本を数冊持っています。
先ず、このUserFormはカッコ良く言えば、
入力・修正モードと閲覧モードの切り替えが利くように 成っています
この切り替えは、UserFormの呼出コード中で行います
Upしたコードの一番下に、以下の様なコードが書いて有った筈です
UserFormを呼び出すコード(標準モジュール)
Public Sub ViewOnly()
With UserForm1
.blnInput = False
.Show
End With
End Sub
Public Sub InputForm()
With UserForm1
.blnInput = True
.Show
End With
End Sub
これを説明すると、
1、「Sub InputForm」を実行
UserFormは、「入力・修正モード」で立ち上がります
この場合、UserForm表示する行は新規入力行です(Listの最終行の下)
そして、TextBox1に表示される番号は、Listの「患者ID」の最大値+1です
これは、簡易的な自動連番機能を持たせて在る為にこう成ります
ここで、振り出された番号で入力したい場合、TextBox1に番号を入力します
入力後、フォーカスをTextBox2に移すと、TextBox1の番号がListにない場合
そのまま、新規入力と成ります
また、TextBox1の番号がListに有る場合、
UserFormの表示は、その番号が有る行に移動してその行の修正モードと成ります
この様に入力・修正を行った後、入力ボタンを押すと、新規入力なら最下行に
レコードが追加され、次の新規入力行に表示が移動します
また、修正モードの場合、表示されている行が変更され、表示は新規入力行に移動します
詰まり、このモードでは、UserFormに表示されているレコードが変更対象となります
また、修正は、CommandButton9、10で移動するか、スクロールバーで移動した
UserFormの表示行でも行えます
2、「Sub ViewOnly」を実行
UserFormは、「閲覧モード」で立ち上がります
この場合、UserFormは、先頭行を表示し、「入力」「行削除」ボタンは使用不可と成ります
詰まり、閲覧専用と成ります
この違いは、見ての通り、各プロシージャの「With UserForm1」
(UserForm1は、Reginaさんが作ったUserFormの名前に合わせて下さい)
の下「.blnInput = True」「.blnInput = False」で
「.blnInput = True」を指定すれば「入力・修正モード」
「.blnInput = False」を指定すれば、「閲覧モード」で立ち上がります
(明示的に書きましたがこれを指定せず立ち上げた場合、「.blnInput = False」を指定したと同じになります)
尚、シートにボタンを設けてUserFormを立ち上げる場合、
ボタンのコードを上記の標準モジュールのコードを参考にして下さい
|
|