2016-06-02 12 views
1

Ich habe ein Kombinationsfeld in einem Formular und möchte aus Tabelle mit VBA-Code auffüllen. Die Abfrage hat zwei Spalten proc_name und dann ID und hat die Spaltenanzahl der Combo-Box auf 2 gesetzt, aber wenn das Formular geladen wird, sehe ich zuerst ID und dann proc_name. Warum passiert dies?MS Access: Kombinationsfeld Spaltenreihenfolge Problem

Für das andere Kombinationsfeld mit ähnlicher Tabellenstruktur zeigen sie die Spaltenreihenfolge, die ich in der Abfrage definiert habe.

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

Was ist mit dieser Änderung geschieht? 'strSQL =" Wählen Sie proc_name AS f1, ID AS f2 aus tblProcess "' – HansUp

+0

Wenn ich Ihre Abfrage verwendet, zeigt es richtig, was ist der Grund? – Santosh

+1

Es scheint, dass die Recordset-Spalten in alphabetischer Reihenfolge verarbeitet werden, wenn sie in das Kombinationsfeld geladen werden. Ich habe die Feldnamen mit Aliasnamen versehen, damit sie in der von Ihnen gewünschten Reihenfolge verarbeitet werden. – HansUp

Antwort

2

Wenn die Recordset Spalten in das Kombinationsfeld geladen werden, es scheint, dass sie in alphabetischer Reihenfolge (ID vor proc_name) verarbeitet werden.

Alias ​​die Felder in Ihrer SELECT Feldliste, so dass sie in der Reihenfolge verarbeitet werden Sie wünschen:

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

Kannst du mir mit diesem helfen? http://stackoverflow.com/questions/37655385/unbound-combo-box-selected-text-not-showing – Santosh