Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

按类别显示品种总是运行不正常

韩云  发表于:2012-08-06 21:10:43  
复制

附件中在选择原料类别后,原料品种下拉框中,只显示相应的品种,但是总是运行错误,求老师们给更正一下,现在用的代码是:

Private Sub 原料类别_AfterUpdate()

Me.原料品种.RowSource = "SELECT 原料品种ID, 原料品种,类别,终止 FROM 原料品种表 WHERE 原料品种表.类别=" & Me.原料类别 & " AND 原料品种表.终止=False ORDER BY 原料品种表.原料品种;"

 

End Sub

 好像是不匹配的原因,但是怎样才可以让他匹配,我总是做不对。

 

点击下载此附件

 

Top
煮江品茶 发表于:2012-08-06 21:15:04
类别如果是文本型字段,则需要加单引号。

韩云 发表于:2012-08-07 08:37:05

曾经这样加过单引号,但是还是不行:

  Me.原料品种.RowSource = "SELECT 原料品种ID, 原料品种,类别,终止 FROM 原料品种表 WHERE 原料品种表.类别='" & Me.原料类别 & "' AND 原料品种表.终止=False ORDER BY 原料品种表.原料品种;"



煮江品茶 发表于:2012-08-07 10:27:31

在子窗体中用联级筛选后,会造成其他记录按照同样的筛选显示数据,所以有些记录显示不正常。

 

对于此类子窗体内的联级筛选,我采用三个事件来处理,即获得焦点事件、失去焦点事件和更新后事件。


获得焦点事件来设置经过联级筛选的数据源,失去焦点事件还原未经筛选的数据源,失去焦点事件跳转当前控件的焦点。

 

Private Sub 原料品种_AfterUpdate()
    Me.颜色.SetFocus
End Sub

 

Private Sub 原料品种_GotFocus()
    Me.原料品种.RowSource = "SELECT 原料品种ID, 原料品种,类别,终止 FROM 原料品种表 WHERE 原料品种表.类别=" & Me.原料类别 & " AND 原料品种表.终止=False ORDER BY 原料品种表.原料品种;"
End Sub

 

Private Sub 原料品种_LostFocus()
    Me.原料品种.RowSource = "SELECT 原料品种ID, 原料品种,类别,终止 FROM 原料品种表 WHERE 原料品种表.终止=False ORDER BY 原料品种表.原料品种;"
End Sub



煮江品茶 发表于:2012-08-07 10:36:57
韩云 发表于:2012-08-07 13:58:35

测试了一下,感觉不稳定,翻页以后,会出现内容空白,这是咋回事儿:



煮江品茶 发表于:2012-08-07 14:36:04

把原料品种的行来源改为:

SELECT 原料品种ID, 原料品种, 类别, 终止 FROM 原料品种表 WHERE 原料品种表.终止=False ORDER BY 原料品种表.原料品种;



韩云 发表于:2012-08-07 15:13:41
将行来源改过来以后,有这样一个现象,当无意中在已经录入“原料品种”这个框中点中时,这个原料品种就成了空白的了。经过试验,还像是只要点击已经录入的“原料品种”这个框框,里面就变成空白了。

煮江品茶 发表于:2012-08-07 15:30:40
移开就正常了

韩云 发表于:2012-08-07 16:00:15
移开以后也不正常的。翻页以后还是显示空白。

煮江品茶 发表于:2012-08-07 16:19:18

那就不知道你又在怎么胡球整了

 

请认真学习给你的示例



cspa 发表于:2012-08-07 16:39:21
记得我以前和你讨论过类似的问题,上次是你的原始数据逻辑有错误。请换个思路,首先确认你的原始数据及数据逻辑的正确性。有时不一定是不匹配,而是逻辑错误导致显示混乱。

西出阳关无故人 发表于:2012-08-07 19:03:10

这个问题的根源在“原料品种”控件的显示列宽上,“0cm;2.54cm;2.54cm”,如果你用“原料类别”来缩小“原料品种”的列表范围,(翻页后)某些行就为空白,不翻页某些行也为空白。用获得焦点事件、失去焦点事件和更新后事件可以处理,免不了损失部分性能,同时还会闪烁。

我的思路是:把“原料品种”的【原料品种id】设为主键,录入界面只需要录入【原料品种id】,需要做参考的“颜色”“规格”等字段通过更改控件的“控件来源”为公式,且为文本框。

如果原料品种很多,录入【原料品种id】的时候用(双击)打开辅助窗体(可用列表框多级筛选,选中某原料品种后双击或按钮把原料品种id填到【原料品种id】即可)

如果原料品种不多,在【原料品种id】(组合框)的chang事件中更改组合框的行来源,达到筛选的目的。



西出阳关无故人 发表于:2012-08-07 21:13:32
韩云 发表于:2012-08-07 21:19:30
将窗体设置为加载的时候不筛选,问题就解决了,谢谢

总记录:14篇  页次:1/1 9 1 :