2017-02-12 3 views
0

ここではいくつかの回答が見つかりましたが、縫い目はありません。VBAのサブフォームに新しいレコードを追加する

問題:IDと名前の2つの列を持つデータベーステーブル。 フォーム上にテキストボックス(TextBox1と呼ぶ)とサブフォーム(SubForm1)があり、TextBox(またはバーコードリーダーを使用)にIDを書き込み、変更時にテーブルを照会し、見つかったレコードをサブフォームに追加します。私はクエリを持っていますが、それは動作しませんが、以前に見つかったレコードを上書きしないようにすることはできません。私はソリューションと縫い目がないのを探しました。私はVBAに新しいですし、どんな助けも大歓迎です。ありがとう。

私がこれまで持っている:

Dim SQL As String 

Dim rs As Recordset 

SQL = "SELECT * FROM MyTable WHERE MyTable.ID =" & Chr$(34) & Me.TextBoxID.Text & Chr$(34) 

Set rs = CurrentDb.OpenRecordset(SQL) 

とクエリwokrsが、私は前のレコードがまだそこにある、新しいものになるよう

Me.SubForm1.AddRecordまたはMe.SubForm1.AddItemのような何かをする方法がわかりません追加された?

できますか?サブフォームで行うことができない場合は、リストボックスで行うことができますか?

+0

「作業中の」コードを表示すると非常に役に立ち、有用な返事を得るチャンスが増えます。 –

+0

これだけですが、私はここでどのようなアプローチをとるべきかわかりません。フォームに「レコードを追加する」正しい方法は何ですか。私は試した: –

答えて

1

私はリストボックスでそれを行いましたが、醜いです。サブフォームの解決策があれば投稿してください。コード:

Private Sub TexBox1_Change() 

    Dim SQL As String 

    Dim rs As Recordset 

    SQL = "SELECT * FROM MyTable WHERE MyTable.ID =" & Chr$(34) & Me.TextBox1.Text & Chr$(34) 

    Set rs = CurrentDb.OpenRecordset(SQL) 

Me.ListBox1.AddItem(rs.fields(0) & ";" & rs.fields(1)) 

End Sub 

値 『それがなければならない」リストボックスのためのヘッダが最初の項目が追加、のForm_Loadに設定されているヘッダである、リストボックス行ソースの種類に設定されている場合、レコードからそれを設定する方法はありません』アイテムを追加することができます...

関連する問題