tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルComboboxのDataSourceプロパティについて
記事No9025
投稿日: 2009/05/27(Wed) 00:07
投稿者Nao
はじめまして。よろしくお願い致します。

■環境
WindowsXP(SP2)
VB2008
Access2003

■テーブル
テーブル名:Customer
カラム:CustID,CustName

■Comboboxプロパティ
DataSource  = CustomersBindingSource
DisplayMember = CustName

Accessで作成したテーブルの1フィールドの値をComboboxのリストに表示させるため、DetaSourceプロパティ,DisplayMemberプロパティに適切な値を設定してデバッグ実行したのですが、以下のようなエラーが発生します。

'System.ArgumentOutOfRangeException' の初回例外が System.Windows.Forms.dll で発生しました。
追加情報: '0' の InvalidArgument=Value は 'SelectedIndex' に対して有効ではありません。

エラーを継続すると、リストに1フィールドの値がすべて表示されるのですが、
上記のエラーを出さないようにするにはどのようにすればよろしいのでしょうか。
よろしくお願いいたします。

[ツリー表示へ]
タイトルRe: ComboboxのDataSourceプロパティについて
記事No9026
投稿日: 2009/05/27(Wed) 00:24
投稿者魔界の仮面弁士
> 追加情報: '0' の InvalidArgument=Value は 'SelectedIndex' に対して有効ではありません。

どこかのイベントに、
 ComboBox1.SelectedIndex = 0
というコードが含まれていませんか?

もし含まれていたならば、
 ComboBox1.SelectedIndex = If(ComboBox1.Items.Count > 0, 0, -1)
にすれば解決するかも。

[ツリー表示へ]
タイトルRe^2: ComboboxのDataSourceプロパティについて
記事No9031
投稿日: 2009/05/27(Wed) 19:53
投稿者Nao
> どこかのイベントに、
>  ComboBox1.SelectedIndex = 0
> というコードが含まれていませんか?

Form1.vb, OrderDataSet.Designer.vbを確認しましたが、記述がありませんでした。

作成手順は以下のようにしています。
@データソースにテーブルを追加(Customer)
AデータソースウィンドウからCustomerのテーブルを右クリックして
 ”詳細”を選択。
Bレコード(CustName)をComboboxに設定
CComboboxのプロパティ(DataSource,DisplayNumber)に値を設定

例外を設定してデバッグ実行を行うと以下の場所でエラーが発生します。

■OrderDataSet.Designer.vbソース内
Public Overloads Overridable Function Fill(ByVal dataTable As    
            OrderDataSet.CustomerDataTable) As Integer
  Me.Adapter.SelectCommand = Me.CommandCollection(0)
  If (Me.ClearBeforeFill = true) Then
      dataTable.Clear
  End If
  Dim returnValue As Integer = Me.Adapter.Fill(dataTable) ・・・・ここです
  Return returnValue
End Function

ここは自動的に生成される場所と思われるので、手を加えていないソースです。

[ツリー表示へ]
タイトルRe^3: ComboboxのDataSourceプロパティについて
記事No9032
投稿日: 2009/05/27(Wed) 21:33
投稿者魔界の仮面弁士
ComboBox のプロパティを開いて、

 (DataBindings)
  (詳細)  … [...]

を展開した時に、何かがバインドされていますか?

[ツリー表示へ]
タイトルRe^4: ComboboxのDataSourceプロパティについて
記事No9033
投稿日: 2009/05/27(Wed) 22:08
投稿者Nao
> を展開した時に、何かがバインドされていますか?

[フォーマットと詳細バインド]ダイアログの表示内容です。
バインド:CustomerBindingSource - CustName
データソース更新モード:OnValidation

これにより、以下のプロパティに値が設定されていると思われます。
    (DataBindings)
      Textプロパティ:CustomerBindingSource - CustName

これを削除しても、やはり同じ場所でエラーが発生します。

申し訳ありません。
1点、開発環境が間違っておりました。
(誤) WindowsXP(SP2)
(正) WindowsXP(SP3)

[ツリー表示へ]
タイトルRe^5: ComboboxのDataSourceプロパティについて
記事No9035
投稿日: 2009/05/28(Thu) 18:56
投稿者魔界の仮面弁士
> これを削除しても、やはり同じ場所でエラーが発生します。

エラー発生時、呼び出し履歴 ウィンドウにはどのように表示されていますか?

[ツリー表示へ]
タイトルRe^6: ComboboxのDataSourceプロパティについて
記事No9036
投稿日: 2009/05/28(Thu) 20:40
投稿者Nao
> エラー発生時、呼び出し履歴 ウィンドウにはどのように表示されていますか?

Chap2-4.exe!Chap2_4.OrderDataSetTableAdapters.CustomerTableAdapter.Fill(Chap2_4.
      OrderDataSet.CustomerDataTable dataTable =
      {Chap2_4.OrderDataSet.CustomerdataTable}) 行 768 + 0x1aバイト
Chap2-4.exe!Chap2_4.Form1.Form1_Load(Object sender =   
   {Chap2_4.Form1},System.EventArgs e = {System.EventArgs}) 行 12 + 0x34バイト
[ネイティブからマネージの移行]
[マネージからネイティブへの移行]

となっております。

[ツリー表示へ]