Ms access 重新计算时,平均值([Field])中出现错误

Ms access 重新计算时,平均值([Field])中出现错误,ms-access,vba,Ms Access,Vba,我有三种产品,玉米、豆类和萝卜。我有不同的规格在每个,和一些相同的。。。水分、颜色、蛋白质、脂肪。。。。我有一些未绑定的文本框和一些连续形式的标签。还有两个按钮,允许我按两个文本框中输入的日期排序或全部显示。我在formheader中有标签和文本框,在detail部分有文本框。表单标题部分中的文本框将获得它们所对应的每个字段的平均值 当我打开表单并选择bean时,一切都完美地显示出来!我可以分类或显示所有内容,这很好。我可以切换到玉米,也可以这样做,但当我尝试切换回豆类时,平均文本框显示错误。如

我有三种产品,玉米、豆类和萝卜。我有不同的规格在每个,和一些相同的。。。水分、颜色、蛋白质、脂肪。。。。我有一些未绑定的文本框和一些连续形式的标签。还有两个按钮,允许我按两个文本框中输入的日期排序或全部显示。我在formheader中有标签和文本框,在detail部分有文本框。表单标题部分中的文本框将获得它们所对应的每个字段的平均值

当我打开表单并选择bean时,一切都完美地显示出来!我可以分类或显示所有内容,这很好。我可以切换到玉米,也可以这样做,但当我尝试切换回豆类时,平均文本框显示错误。如果我打开表格,先看玉米,然后看豆子,再看玉米,玉米两次都有效,但豆子不起作用。只有当Bean是表单上打开的第一件事时,它才会工作,并且将继续工作,直到您选择另一个产品。不管怎样,玉米和萝卜都能起作用,但当我换回豆类时,我又犯了错误

这两个代码块之间几乎没有区别。还有什么可能导致平均文本框Text12-Text15中的错误

这是代码的一部分。。。。此代码位于相应按钮的OnClick事件中

为了玉米

Me.Label2.Caption = "Moisture"
Me.Label3.Caption = "Starch"
Me.Label4.Caption = "Protein"
Me.Label5.Caption = "Fat"
Me.Text2.ControlSource = " Moisture "
Me.Text3.ControlSource = " Starch "
Me.Text4.ControlSource = " Protein "
Me.Text5.ControlSource = " Fat "
Me.Text12.ControlSource = "=Avg([Moisture])"
Me.Text13.ControlSource = "=Avg([Starch])"
Me.Text14.ControlSource = "=Avg([Protein])"
Me.Text15.ControlSource = "=Avg([Fat])"
Me.RecordSource = "SELECT SampleID.DateCreated, SampleID.SampleLocationID, PertenData.Moisture, PertenData.Starch, PertenData.Protein, PertenData.Fat FROM SampleID INNER JOIN PertenData ON SampleID.SampleID = PertenData.PertenSampleID WHERE ((SampleID.SampleLocationID)=21) ORDER BY SampleID.DateCreated DESC"
豆子

Me.Label2.Caption = "Moisture"
Me.Label3.Caption = "Starch"
Me.Label4.Caption = "Protein"
Me.Label5.Caption = "Color"
Me.Text2.ControlSource = " Moisture "
Me.Text3.ControlSource = " Starch "
Me.Text4.ControlSource = " Protein "
Me.Text5.ControlSource = " Color"
Me.Text12.ControlSource = "=Avg([Moisture])"
Me.Text13.ControlSource = "=Avg([Starch])"
Me.Text14.ControlSource = "=Avg([Protein])"
Me.Text15.ControlSource = "=Avg([Color])"
Me.RecordSource = "SELECT SampleID.DateCreated, SampleID.SampleLocationID, PertenData.Moisture, PertenData.Starch, PertenData.Protein, PertenData.Color FROM SampleID INNER JOIN PertenData ON SampleID.SampleID = PertenData.PertenSampleID WHERE ((SampleID.SampleLocationID)=35) ORDER BY SampleID.DateCreated DESC"
根据评论。。。
我会将所有代码移动到一个子节点,并使用字符串参数Corn或Beans或radisshes调用该子节点。这将帮助您缩小now Radissh按钮代码中的错误范围,并使以后的维护更容易。

该问题与绑定的文本框直接相关。我的不同示例需要显示不同数量的数据类别,但通过将textbox的visible属性设置为false,仍然会导致visible textbox出现问题。要将文本框设置回“未绑定”,我使用了

Me.text5.ControlSource = Empty

将文本框更改回未绑定状态,然后将其重新绑定到新的控件源。这永久性地解决了这个问题。我现在有5种产品,这5种产品的任何组合都是完美的。感谢所有人的帮助。

检查您的Recordsource属性,无论bean何时工作,何时不工作。我的主要电子邮件地址是wannafarm1:RecordSource在工作和损坏时都是相同的。我发现只要我看看豆子和萝卜,一切都很好,一旦我去吃玉米,豆子就会碎,但萝卜不会。我玩得越多,我就越困惑。当我转到玉米时,萝卜会起作用,如果我转到玉米>萝卜>豆子,它们会起作用,但是如果我得到玉米>豆子>萝卜,豆子不起作用,但其他的都起作用。有没有办法将按钮的代码合并到一个子按钮中?似乎有很多重复的事情在发生。这将使发现问题变得更容易。现在,当我选择玉米>豆类>萝卜时,它们都能工作,但玉米>萝卜>豆类不能。。。。与20分钟前相反。