Access交流中心

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

如何用公司名称和年月两个条件在子窗体中查询相应信息

刘濛  发表于:2015-03-02 16:43:00  
复制


我想通过在组合框中选择“公司名称编号“和”期间“两个值,然后在上述子窗体中查询相应的“燃气销量”、“设施费”、“净利润”等信息,这个跟新后事件的代码应当如何写,望高手指点,谢谢

 

Top
刘濛 发表于:2015-03-02 16:50:00
我是初学者,试着写了几次,都不能实现功能,望高手指点一下,谢谢

刘濛 发表于:2015-03-02 16:53:27
我是指在子窗体中实现即时查询

煮江品茶 发表于:2015-03-02 16:55:53

假设你在主窗体中弄了三个控件:年度(组合框),月度(组合框),公司名称(文本框),另整一个按钮在主窗体上,在按钮的单击事件中写:

dim wh as string

wh="true"

if isnull(me.年度.value)=false then

    wh=wh & " and 期间 Like '" & me.年度.value & "*'"

    if isnull(me.月度.value)=false then

        wh=wh & " and 期间 ='" & me.年度.value & "-" & format(me.月度.value,"00") & "'"

   end if

end if

if isnull(me.公司名称.value)=false then

     wh=wh & " and 公司名称 Like '*" & me.公司名称.value & "*'"

end if

me.子窗体.form.filter=wh

me.子窗体.form.filteron=true


也可将上述代码写到一个子程序中,然后在三个主窗体控件的更新后事件中,调用该子程序。



刘濛 发表于:2015-03-02 17:15:16
首先感谢您的指点,但我的意思是将日期直接提取成XXXX年XX月(文本)了,主窗体中只有2个控件,直接在控件中输入值,实现即时查询,不添加按钮

刘濛 发表于:2015-03-02 23:22:17

我添加了2个控件[companyid]、[period],然后在控件的更新后事件中写入代码:

Private Sub companyID_AfterUpdate()
Dim strWhere As String
strWhere = "true"
If IsNull(Me.companyID.Value) = False Then
strWhere = strWhere & " and [companyid] Like '*" & Me.companyID.Value & "*'"
End If
If IsNull(Me.period.Value) = False Then
strWhere = strWhere & " and [period] Like '*" & Me.period.Value & "*'"
End If
Me.frmicdata_List.Form.Filter = strWhere
Me.frmicdata_List.Form.FilterOn = True
End Sub
结果程序没报错,但是查询也没结果......



煮江品茶 发表于:2015-03-03 11:00:25
假设companyID组合框、period为文本框,则:


private sub formFilter()
    dim wh as string
    wh="true"
    if isnull(me.companyID.value)=false then
        wh=wh & " and companyID=" & me.companyID.value
    end if
    if isnull(me.period.text)=false then
        wh=wh & " and period Like '" & me.period.text & "*'"
    end if
    Me.frmicdata_List.Form.Filter = strWhere
    Me.frmicdata_List.Form.FilterOn = True
end sub


Private Sub companyID_AfterUpdate()
    call formFilter()
end sub 


Private Sub period_Change() 
    Me.period.SelStart = Len(Nz(Me.period.Text, "0"))  '光标定位在末尾
    call formFilter()
end if


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