Public Function fnDivCode(ByVal formName As ComboBox) As DataTable
Dim dtDivCode As DataTable = selSQL("SELECT DIVCODE AS DIVCODE ,DIVDESCRIPTION FROM HRM_DIVISION_MST ORDER BY DIVCODE ASC").Tables(0)
formName.DataSource = dtDivCode
formName.DisplayMember = "DIVDESCRIPTION"
formName.ValueMember = "DIVCODE"
Return dtDivCode
End Function
Code (VB.NET)
cbDivCode.DataSource = fnDivCode(Me.cbDivCode)
ตอนนี้ผมเขียน Function ไว้สำหรับ Assign ค่าที่ Query มาใส่ Combobox เพื่อให้ง่ายต่อการใช้งาน Form อื่นๆ และสามารถใช้งานได้ปกติ
cbDivCode.DataSource = fnDivCode(Me.cbDivCode)
Public Function fnDivCode(ByVal formName As ComboBox) As DataTable
Dim dtDivCode As DataTable = selSQL("SELECT DIVCODE AS DIVCODE ,DIVDESCRIPTION FROM HRM_DIVISION_MST ORDER BY DIVCODE ASC").Tables(0)
formName.DataSource = dtDivCode 'cbDivCode มันรับ DataSource ไปเรียบร้อยแล้วไม่จำเป็นต้องรับอีกรับ
formName.DisplayMember = "DIVDESCRIPTION"
formName.ValueMember = "DIVCODE"
Return dtDivCode
End Function
ควรจะเป็นแบบนี้น่าจะเหมาะกว่าครับ
Code (VB.NET)
cbDivCode.DataSource = fnDivCode(Me.cbDivCode)
Public Sub fnDivCode(ByVal formName As ComboBox)
Dim dtDivCode As DataTable = selSQL("SELECT DIVCODE AS DIVCODE ,DIVDESCRIPTION FROM HRM_DIVISION_MST ORDER BY DIVCODE ASC").Tables(0)
formName.DataSource = dtDivCode 'cbDivCode รับ DataSource ไปใช้งานได้เลย
formName.DisplayMember = "DIVDESCRIPTION"
formName.ValueMember = "DIVCODE"
End Sub
Dim a As String = ""
Dim table As DataTable = DirectCast(Me.cbDivCode.DataSource, DataTable)
If cbDivCode.Text = "" Then
For i As Integer = 0 To table.Rows.Count - 1
Dim valueItem As String = table.Rows(i)(cbDivCode.ValueMember).ToString()
a = a & "'" & valueItem & "',"
Next
MsgBox(a.Substring(0, a.Length - 1))
End If
เวลาเอาไปใช้จะได้ง่ายๆ ครับ เช่น
where cbDivCode in (a)