Добрый день . На форме vb net есть комбобокс. В комбобоксе отображаются данные с БД Access. В списке есть повторяющиеся данные. Как заполнить комбобокс уникальными значениями(неповторяющимися). Прилагаю файл :проект на vb Express 2010
Добрый день . На форме vb net есть комбобокс. В комбобоксе отображаются данные с БД Access. В списке есть повторяющиеся данные. Как заполнить комбобокс уникальными значениями(неповторяющимися). Прилагаю файл :проект на vb Express 2010parovoznik
1. Найти любой из макровов Excel для создания списка уникальных (на словаре, или коллекции) 2. Получить данные из БД запросом на уникальные vb Express 2010 не имею
1. Найти любой из макровов Excel для создания списка уникальных (на словаре, или коллекции) 2. Получить данные из БД запросом на уникальные vb Express 2010 не имеюRAN
Public Class Form1 Public Property ToolTipIcon As ToolTipIcon
Sub connect() acsconn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\DB\База данных8.accdb;Persist Security Info=False;" acsconn.Open() End Sub
Sub fillcombo() strsql = "select distinct * from Таблица1"
Dim acscmd As New OleDb.OleDbCommand acscmd.CommandText = strsql acscmd.Connection = acsconn acsdr = acscmd.ExecuteReader While (acsdr.Read()) ComboBox1.Items.Add(acsdr("Исполнители")) End While acscmd.Dispose() acsdr.Close() End Sub
Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged 'strsql = "select distinct* from Таблица1 where Исполнители ='" & ComboBox1.Text & "'"
strsql = "SELECT DISTINCT Таблица1.Исполнители FROM Таблица1"
'strsql = "select DISTINCT Исполнители from Таблица1 where Исполнители ='" & ComboBox1.Text & "'"
Dim acscmd As New OleDb.OleDbCommand acscmd.CommandText = strsql acscmd.Connection = acsconn acsdr = acscmd.ExecuteReader acscmd.Dispose() acsdr.Close() End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load ToolTip1.ToolTipIcon = Windows.Forms.ToolTipIcon.Info ToolTip1.ToolTipTitle = "Подсказка" ToolTip1.SetToolTip(ComboBox1, "Выбор исполнителя.Должны Отображаться уникальные значения") Module1.connect() Me.fillcombo() End Sub
End Class
[/vba]
Вот сам код. [vba]
Код
Public Class Form1 Public Property ToolTipIcon As ToolTipIcon
Sub connect() acsconn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\DB\База данных8.accdb;Persist Security Info=False;" acsconn.Open() End Sub
Sub fillcombo() strsql = "select distinct * from Таблица1"
Dim acscmd As New OleDb.OleDbCommand acscmd.CommandText = strsql acscmd.Connection = acsconn acsdr = acscmd.ExecuteReader While (acsdr.Read()) ComboBox1.Items.Add(acsdr("Исполнители")) End While acscmd.Dispose() acsdr.Close() End Sub
Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged 'strsql = "select distinct* from Таблица1 where Исполнители ='" & ComboBox1.Text & "'"
strsql = "SELECT DISTINCT Таблица1.Исполнители FROM Таблица1"
'strsql = "select DISTINCT Исполнители from Таблица1 where Исполнители ='" & ComboBox1.Text & "'"
Dim acscmd As New OleDb.OleDbCommand acscmd.CommandText = strsql acscmd.Connection = acsconn acsdr = acscmd.ExecuteReader acscmd.Dispose() acsdr.Close() End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load ToolTip1.ToolTipIcon = Windows.Forms.ToolTipIcon.Info ToolTip1.ToolTipTitle = "Подсказка" ToolTip1.SetToolTip(ComboBox1, "Выбор исполнителя.Должны Отображаться уникальные значения") Module1.connect() Me.fillcombo() End Sub
nilem, запустил проект с Вашим кодом ,но уникальные значения в комбе не отображаются!!!! Добавлено : Использовал запрос в функції fillcombo такой же как и в ComboBox1_SelectedIndexChanged: [vba]
Код
strsql = "SELECT DISTINCT Таблица1.Исполнители FROM Таблица1"
[/vba] Вроде бы работает.
nilem, запустил проект с Вашим кодом ,но уникальные значения в комбе не отображаются!!!! Добавлено : Использовал запрос в функції fillcombo такой же как и в ComboBox1_SelectedIndexChanged: [vba]
Код
strsql = "SELECT DISTINCT Таблица1.Исполнители FROM Таблица1"
Private Sub Form_Open(Cancel As Integer) [ПолеСоСписком0].RowSource = "SELECT First(Таблица1.[id]) AS [id поле] FROM Таблица1 GROUP BY Таблица1.[id];" End Sub
[/vba]
Acсess кушает так [vba]
Код
Private Sub Form_Open(Cancel As Integer) [ПолеСоСписком0].RowSource = "SELECT First(Таблица1.[id]) AS [id поле] FROM Таблица1 GROUP BY Таблица1.[id];" End Sub
Using conn = New System.Data.OleDb.OleDbConnection() conn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\DB\База данных8.accdb;Persist Security Info=False;" conn.Open() Using cmd = conn.CreateCommand cmd.CommandText = "SELECT DISTINCT Таблица1.Исполнители FROM Таблица1 " Dim dt As New DataTable dt.Load(cmd.ExecuteReader) ComboBox1.DataSource = Nothing ComboBox1.ValueMember = "" ComboBox1.DisplayMember = "" ComboBox1.DataSource = dt ComboBox1.ValueMember = "Исполнители" ComboBox1.DisplayMember = "Исполнители" End Using End Using
Using conn = New System.Data.OleDb.OleDbConnection() conn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\DB\База данных8.accdb;Persist Security Info=False;" conn.Open() Using cmd = conn.CreateCommand cmd.CommandText = "SELECT DISTINCT Таблица1.Исполнители FROM Таблица1 " Dim dt As New DataTable dt.Load(cmd.ExecuteReader) ComboBox1.DataSource = Nothing ComboBox1.ValueMember = "" ComboBox1.DisplayMember = "" ComboBox1.DataSource = dt ComboBox1.ValueMember = "Исполнители" ComboBox1.DisplayMember = "Исполнители" End Using End Using