2014-06-11 1 views
0

그래서 내가 뭘하고 싶은지는 이것입니다. 현재 사용자 이름 목록을 표시하는 ComboBox가 있습니다. 양식이로드되면이 comboBox는 드롭 다운되고 분석가는 목록에서 이름을 선택할 수 있습니다. 내가 뭘 하려는지 표시되지 않은 드롭 다운 상자를 선택하면 물론 콤보 상자 쇼 "선택 사용자 이름"의 기본값을 가지고 있습니다.액세스 데이터베이스 (VB.Net)에 바인딩 할 때 ComboBox (Dropdown)의 기본값 설정

필자는 기본적으로이 값을 액세스 데이터베이스의 값으로 추가 할 수 있지만 그 점이 어디에서 재미 있습니까? SO 참으로 코드 시간 :

Private Sub FillCombo() 

    Dim fillcon As New OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=Server Location.accdb") 
    Dim query As String = ("SELECT User_Name, User_ID FROM Analysts") 
    Dim da As New OleDb.OleDbDataAdapter(query, fillcon) 
    Dim ds As New DataSet 


    da.Fill(ds) 
    ComboBox1.ValueMember = "User_Name" 
    ComboBox1.DataSource = ds.Tables(0) 
    ComboBox1.SelectedIndex = 0 
    ComboBox1.SelectedItem = "Select UserID" 


    TextBox10.DataBindings.Clear() 
    TextBox10.DataBindings.Add("Text", ds.Tables(0), "User_ID") 


End Sub 

이제 FillCombo가() 양식로드에 위치하고 아름다운 작품입니다 ... "선택 사용자 ID를"작동하지 않는 유일한 것은 기본 텍스트로 표시되지 않습니다. 아이디어?

+0

Text 속성을 설정할 수 있다고 생각합니다. 'ComboBox1.Text = "사용자 ID 선택". 양식을 다시 설정할 때 텍스트가 떨어질 때 사라져야합니다. – Plutonix

답변

0

데이터 원본에 콤보 상자를 바인딩하지 마십시오. 이 메서드를 사용하여 콤보 상자를 채 웁니다. 그런 다음 텍스트 속성을 설정할 수 있습니다.

da.Fill(ds) 

    for each dr as datarow in ds.Tables(0).Rows 
     ComboBox1.Items.Add(dr("User_Name")) 
    next 

    ComboBox1.Text = "Select UserID" 
+0

붐 ... 그 일을하고 실제로 새로운 것을 배웠습니다. 고마워, 게리, 내가 너에게 내 자작 친구 중 한 명을 우편으로 보내 주었으면 좋겠다. – Jae

+0

문제가 아니므로 즐기십시오. –

0

selecteditem 속성을 설정하지 않았습니다. 해당 항목이 목록에 없습니다. 는

을 원하는 텍스트로 텍스트 속성을 설정
ComboBox1.Text = "Select UserID" 
+0

그래서 내가 da.Fill (DS)로 변경 ComboBox1.ValueMember = "User_Name을" ComboBox1.DataSource = ds.Tables (0) ComboBox1.SelectedIndex = 0 ComboBox1.Text = "사용자 ID를 선택" 그러나 무슨 일이 벌어 지는지는 액세스 데이터베이스의 첫 번째 가치가 여전히 보여지고 있다는 것입니다. – Jae

+0

오, 내 잘못. 당신은 묶인 콤보 박스를 사용하고 있습니다. 내가 바인딩 된 컨트롤에 대한 항목 목록에 있어야 믿습니다. –

+0

그래서 레이블을 만들고 자동 크기를 거짓으로 변경하고 콤보 상자 텍스트 필드 위에 놓으려는 경우이 질문을 해봅시다. ComboBox를 클릭하면 해당 레이블을 사라지게하는 방법에 대한 아이디어가 있습니까? ComboBox1_Click 및 LabelXYZ.visible = False를 시도했지만 물론 작동하지 않았습니다. – Jae

1

당신은 데이터 바인딩 된 콤보 상자에 항목을 추가 할 수 없습니다, 당신은 단지 데이터 테이블

에 추가, 데이터베이스에 추가 할 필요가 없습니다
Dim row = ds.Tables(0).NewRow() 
row(0) = "Select UserID" 
row(1) = 0 
ds.Tables(0).Rows.InsertAt(row, 0) 
ComboBox1.SelectedIndex = 0 
+0

그래서 나는 그것을 시도하고 상자가 아무것도 채워지지 않아서 데이터베이스가로드되지 않습니다. 어둡게 행 = ds.Tables (0) .NewRow() da.Fill (DS) ComboBox1.ValueMember = 'USER_NAME " ComboBox1.DataSource = ds.Tables (0) 행 (0) ="선택 아이디 " ds.Tables (0) .Rows.InsertAt (row, 0) ComboBox1.SelectedIndex = 0 – Jae