2016-06-02 5 views
1

У меня есть поле Combo на форме и вы хотите заполнить таблицу с помощью кода vba. Запрос имеет два столбца имя_процесса, а затем идентификатор и установлен счетчик столбцов со списком как 2, но когда форма загружена, сначала я вижу идентификатор, а затем имя_процесса. Почему это происходит?MS Access: Combo Box Column issue issue

Для другого комбинированного блока с аналогичной структурой таблицы они показывают порядок столбцов, как я определил в запросе.

Private Sub Form_Load() 

    Dim strSQL As String 

    createCon 

    strSQL = "Select proc_name, ID from tblProcess" 

    Set objRecordset = New ADODB.Recordset 
    objRecordset.Open strSQL, objConnection, adOpenKeyset, adLockOptimistic 

    If Not (objRecordset.EOF And objRecordset.BOF) Then 
     Set Me.cmbProcess.Recordset = objRecordset 
    End If 

    objRecordset.Close 
    Set objRecordset = Nothing 

End Sub 

enter image description here

+1

Что происходит с этим изменением? 'strSQL =" Выберите proc_name AS f1, ID AS f2 из tblProcess "' – HansUp

+0

Когда я использовал ваш запрос, он показывает правильно, в чем причина? – Santosh

+1

Кажется, что столбцы набора записей обрабатываются в алфавитном порядке при загрузке в поле со списком. Я сгладил имена полей, чтобы они обрабатывались в том порядке, который, как я думаю, вам нужен. – HansUp

ответ

2

Когда Recordset столбцы загружаются в поле со списком, по-видимому, они обрабатываются в алфавитном порядке (ID перед тем proc_name).

псевдониму поля в списке SELECT поля, поэтому они обрабатываются в порядке, вы хотите:

strSQL = "Select proc_name AS f1, ID AS f2 from tblProcess" 
+0

Не могли бы вы помочь мне с этим. http://stackoverflow.com/questions/37655385/unbound-combo-box-selected-text-not-showing – Santosh