Access交流中心

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

煮江品茶进来

威鸽子  发表于:2010-07-30 14:05:07  
复制

点击下载此附件

 

帮我瞅瞅,先输入区域查询条件为:境外,显示10几条记录

再将时间设为2003-3 到2003-11时查询结果是错误的,我不懂VB,代码是抄别人的改改,你帮我瞧瞧吧,然后那个导出excel表格的也不对,再次麻烦你了

 

Top
煮江品茶 发表于:2010-07-30 14:26:50
等我看看

煮江品茶 发表于:2010-07-30 14:30:17
搞不开,降版本。

威鸽子 发表于:2010-07-30 14:40:41

点击下载此附件

呀呀呀,来了,帮我弄完整了哈,谢谢



煮江品茶 发表于:2010-07-30 21:17:48

点击下载此附件

 

Function strlist(ctl As Control) As String
Dim A
Dim i As Long
Dim str As String
str = "False"
A = Split(ctl.Value, " ")
For i = 0 To UBound(A, 1)
    A(i) = "[" & ctl.Name & "] Like '*" & A(i) & "*'"
    str = str & " or " & A(i)
Next
strlist = str
End Function


Private Sub Command42_Click()
On Error GoTo Err_Command42_Click
'刘小军(Alex) 2003-5-22
'这里将使用DAO来改变查询的SQL语句,必须先在“工具”→“引用”中选择
'Microsoft DAO 3.6 Object Library.
'================================

    Dim qdf As DAO.QueryDef 'qdf被定义为一个查询定义对象
    Dim strWhere, strSQL As String
   
    strWhere = Me.[表格查询子窗体].Form.Filter
    If strWhere = "" Then
        '没有条件
        strSQL = "SELECT * FROM [表格]"
    Else
        '有条件
        strSQL = "SELECT * FROM [表格] WHERE " & strWhere
    End If
   
    Set qdf = CurrentDb.QueryDefs("查询结果")
    qdf.SQL = strSQL
    qdf.Close
   
    Set qdf = Nothing
   
    DoCmd.OutputTo acOutputQuery, "查询结果", acFormatXLS, , True

   
Exit_Command42_Click:
    Exit Sub

Err_Command42_Click:
    MsgBox Err.Description
    Resume Exit_Command42_Click
       
   
End Sub


Private Sub Command9_Click()
    Dim strWhere As String
    strWhere = "true"
   
    If Not IsNull(Me.区域名称) Then
        strWhere = strWhere & " AND (" & strlist(Me.区域名称) & ")"
    End If
   
    If Not IsNull(Me.订单日期开始) Then
        strWhere = strWhere & " AND ([订单日期] >= #" & Format(Me.订单日期开始, "yyyy-mm-dd") & "#)"
    End If
    If Not IsNull(Me.订单日期截止) Then
        strWhere = strWhere & " AND ([订单日期] <= #" & Format(Me.订单日期截止, "yyyy-mm-dd") & "#)"
    End If
      
    Me.表格查询子窗体.Form.Filter = strWhere
    Me.表格查询子窗体.Form.FilterOn = True
   
End Sub



威鸽子 发表于:2010-07-30 22:06:12

恩,谢谢你

不过你的附件下载下来是打不开窗体的,表格查询被你删掉了,然后那个时间查询结果不对,再帮我看看?

 

你试一下:先输入区域查询条件为:境外,显示10几条记录

再将时间设为2003-3 到2003-11时查询结果是错误的



煮江品茶 发表于:2010-07-31 14:45:16

按年月查询没给你改。如果要改的话就是修改如下代码:

If Not IsNull(Me.订单日期开始) Then
        strWhere = strWhere & " AND (Format([订单日期], "yyyy-mm")  >= '" & Format(Me.订单日期开始, "yyyy-mm") & "')"
End If
If Not IsNull(Me.订单日期截止) Then
        strWhere = strWhere & " AND (Format([订单日期], "yyyy-mm")  <= '" & Format(Me.订单日期截止, "yyyy-mm") & "')"
End If

 

点击下载此附件

煮江品茶 发表于:2010-08-01 09:54:44
总记录:7篇  页次:1/1 9 1 :