2015-08-16 76 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