2011-10-11 54 views
0

下面的代碼將記錄源設置在我的表單上。由於所有表單屬性均爲空白,所以ORDER BY不起作用。我該如何排序?MSAccess VBA ORDER BY不能在動態記錄源上工作

Private Sub Form_Load() 

    If Me.OpenArgs <> "" Then 

     Me.AllowFilters = True 
     Me.FilterOn = True 
     Me.RecordSource = "QRY: BPRIL Data Entry By Order" 
     Me.Filter = Me.OpenArgs 
     Me.Requery 

    ElseIf (Me.RecordSource <> "BPRIL Data Entry") Then 

     Me.RecordSource = "BPRIL Data Entry" 
     Me.Requery 

    End If 

    Me.OrderBy = "[Item #]" 
    Me.OrderByOn = True 

末次

+0

正確的是帶有空格的Item#。 – Bruno

+0

當你說Order By不工作,因爲所有的表單屬性都是空白的,你是什麼意思?您是否在即時窗口中嘗試過??Screen.ActiveForm.OrderBy'?我問,因爲上述應該工作。 – Fionnuala

+0

@Remou現在似乎在工作。謝謝。 – Bruno

回答

1

如果要設置記錄源,爲什麼不利用這個機會進行排序?

Me.RecordSource = "SELECT Stuff FROM [BPRIL Data Entry] ORDER BY [Item #]" 

你應該考慮給自己一個忙,擺脫表名和字段名的空格,這會讓生活變得更容易。

+0

我儘量避免將SQL放入我的VBA代碼中。另外,「QRY:BPRIL按訂單數據輸入」的SQL有點長且複雜。 – Bruno