2015-08-16 80 views
0

我想創建一個窗體,其中將從現有數據運行報告的3個組合框。組合框將根據下一級組合框中選擇的數據進行過濾。訪問組合框值不顯示

但是我在與批處理問題的數量組合框不填充它的列表

現在,這是我的VBA腳本:

Private Sub Form_Load() 
    Me.cboDate.RowSource = "" 
    Me.cboBatchNo.RowSource = "" 
End Sub 

Private Sub cboBottleNo_AfterUpdate() 
    Dim sDateSource As String 

     sDateSource = "SELECT [tblNewCC].[Date] FROM [tblNewCC]" & _ 
     " WHERE [tblNewCC].[BottleNo] = " & Me.cboBottleNo.Value 

     Me.cboDate.RowSource = sDateSource 
     Me.cboDate.Requery 
End Sub 

Private Sub cboDate_AfterUpdate() 
    Dim sBatchSource As String 

     sBatchSource = "SELECT [tblBatchTotals].[BatchNo] FROM [tblBatchTotals] INNER JOIN [tblNewCC] ON [tblBatchTotals].[RunNo]=[tblNewCC].[RunNo]" & _ 
     " WHERE [tblNewCC].[BottleNo] = " & Me.cboBottleNo.Value & _ 
     " AND [tblNewCC].[Date] = " & Me.cboDate.Value 

    Me.cboBatchNo.RowSource = sBatchSource 
    Me.cboBatchNo.Requery 
End Sub 

從我可以看到這是在VBA側好嗎工作因爲我可以看到它替換批號combobox的行源,並在數據表視圖中給出了結果。

enter image description here

然而,組合框沒有顯示在它的列表中任何東西....

enter image description here

除非我去做出改變,並再次保存SQL查詢。

任何線索?

+0

很明顯,我實際上不能這樣做手動的行源是不斷從VBA腳本更改 – Bidaum92

回答

0

sBatchSource的最後一部分應該是" AND [tblNewCC].[Date] = #" & Me.cboDate.Value & "#"另外,'Date'對於一個字段來說是一個糟糕的名字。它是Access中的一個保留字,最終會導致您遇到問題。這是一個有用的鏈接http://www.fontstuff.com/access/acctut15pfv.htm

+0

謝謝,修正了它:)在這種情況下,#符號做什麼?我是一個絕對的初學者,所以想盡可能多地瞭解我的信息! 也是啊,這是一個很早以前有人在Access 2.0中寫的舊數據庫,所以我不得不重新命名所有的表和字段。日期字段現在是Dt! – Bidaum92

+0

我添加了一個鏈接到我的答案,這將比我更好地解釋。請特別注意「數據類型限定符」一節。 – AVG