アプリ版:「スタンプのみでお礼する」機能のリリースについて

タイトルの通り、入力フォーム(UserForm1)を作成してデータベースに
データを登録できるようにしました。


    A        B       C
1  会員番号    名前    クラス
2   0001   佐藤達也    A1
3    0002   鈴木誠     B2

↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

    A        B       C
1  会員番号    名前    クラス
2   0001   佐藤達也    C3
3    0002   鈴木誠     D6

この場合、新しく変更フォーム(UserForm2)を作成し、
フォーム上にデータを呼び出し、変更したいと考えています。

方法としては
①つは入力フォームと同様の画面設定で全体を呼び出し、打ち込み直して、
同じセルに代入するのが一つかなと思います。
②つ目は変更したい項目のみ呼び出して変更するフォームを作って変更する

できれば、②目つ目が一番良いのですが、フォームを呼び出して変更するような
ものが調べて見ましたが、見つかりませんでした。
どなたか教えて頂けると助かります。よろしくお願い致します。

A 回答 (3件)

添付の図のようなformを作り、


①会員番号を指定して、検索ボタンをクリックすると、
会員番号に一致した名前、クラスを表示する。
②表示した名前、クラスを人間が変更する。(クラスをC3とかD6とかに変更)
③更新ボタンをクリックすると、変更された名前、クラスで、該当会員番号の箇所を更新する。
(会員番号が変更された場合はエラーにする)

上記のようなつくりにしてはいかがでしょうか。
「入力フォームで登録した内容を更新したい」の回答画像1
    • good
    • 0
この回答へのお礼

回答ありがとうございます!わかりやすいです。
一転情報が不足していました。
実際は項目数は30個ほどでで多くて、混乱しやすいかもです。

なので、フォームを分割して項目数/フォームを減らすか、
②のように項目選択してから変更かなと迷い中です。

結果的には、全部変更可能ではなくてはならないのがネックです。

お礼日時:2017/03/08 04:47

以下の方法は、昔、人から教わった方法で、ControlSource を使います。

以外と便利な方法です。画像をみて、イメージしてください。

'------------------------
Dim rwIdx As Long 'モジュール変数(画面のトップに)
Dim clIdx As Long

Private Sub ComboBox1_Change()
  rwIdx = ComboBox1.ListIndex + 2
End Sub

Private Sub ListBox1_Change()
Dim i As Long
For i = 0 To Me.ListBox1.ListCount
 If Me.ListBox1.Selected(i) Then
  clIdx = i + 1
  Exit For
 End If
Next
End Sub

Private Sub ListBox1_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
'ListBox クリック
 If rwIdx > 0 And clIdx > 0 Then
  TextBox1.ControlSource = Cells(rwIdx, clIdx).Address  'コントロールソース
  ListBox1.ListIndex = -1
 End If
End Sub

Private Sub UserForm_Initialize()
Dim clAry
Me.ListBox1.List = Array("会員番号", "名前", "クラス")
'必要に応じて加えてください。

clAry = Range("A2", Cells(Rows.Count, 1).End(xlUp)).Value
clAry = Application.Transpose(clAry)
Me.ComboBox1.List = clAry
TextBox1.Value = ""
End Sub
'//
細かい部分は、まだ修正が必要かもしれません。
「入力フォームで登録した内容を更新したい」の回答画像2
    • good
    • 0
この回答へのお礼

回答ありがとうございます。選択して変更できるんですね!
コントロールソースですか、初めてのVBAでまだわからないことだらけですが、試してみます。大事なデータなので、あとはボタンクリックとか、
確認して実行できるように追記してみます。

お礼日時:2017/03/08 04:47

    • good
    • 0
この回答へのお礼

動画まで添付して頂いてありがとうございます!!
皆柾には本当に感謝です。

お礼日時:2017/03/10 17:51

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!