2

ボタンのあるフォームがあります。このボタンは基本的に、あるテーブルから別のテーブルにレコードをコピーします。レコードが読み取られてコピーされると、特定の値についてもチェックされます。たとえば、テーブル内のフィールドの 1 つに値 "" がある場合、日付を入力できる別のフォームを呼び出す必要があります。日付を入力してフォームを閉じると、プログラムはコピーを続行します。コピーされるテーブルのキー フィールドが重複している場合もあります。この場合、重複レコードの値を表示するリストボックスで「リストボックスフォーム」を起動する必要があります。次に、コピーする必要がある正しいレコードを選択する必要があります。

 Dim NumberCount As Long
     NumberCount = RecordsetElementValue.RecordCount
     If NumberCount > 1 Then
         With Form_F_ListBox.List30
             RecordsetElementValue.MoveFirst
             Do
                With Forms!F_ListBox.List30.AddItem(RecordsetElementValue!E_ElementValue)
                End With
                RecordsetElementValue.MoveNext
             Loop Until RecordsetElementValue.EOF = True
             DoCmd.OpenForm "F_ListBox", acNormal
         End With
     End If

上記のコード サンプルは、重複レコード (NumberCount > 1) がある場合に備えて用意したものです。F_ListBox フォームのリスト ボックスには、レコードセットの値を入力する必要があります。

実行時エラー 6014 が発生しました。このメソッドを使用するには、RowSourceType プロパティを「Value List」に設定する必要があります。

私は何を間違っていますか?

4

1 に答える 1

4

MS Access でコンボ ボックスまたはリスト ボックスの行ソースを設定する通常の方法は、SQL ステートメントを使用することですが、リストを使用することもできます。これは、行ソースの種類によって制御されます。

Me.MylistBox.RowSourceType = "Value List"

あなたのメモから、行ソースの SQL ステートメントの方が簡単なようです。

Me.MylistBox.RowSource = "SELECT ID FROM MyTable"
于 2012-09-04T11:13:16.740 に答える