Office中国论坛/Access中国论坛
标题:
各位朋友,能帮我把以下语句转换为在ADP中用吗?
[打印本页]
作者:
yodong
时间:
2004-8-3 04:08
标题:
各位朋友,能帮我把以下语句转换为在ADP中用吗?
SELECT 材料收支表.材料ID, Year([日期]) AS 年份, Month([日期]) AS 月份, k([材料ID],Year([日期]),Month([日期])) AS 上月结余, Sum(材料收支表.进库) AS 本月进库, Sum(材料收支表.出库) AS 本月出库
FROM 材料收支表
GROUP BY 材料收支表.材料ID, Year([日期]), Month([日期]), k([材料ID],Year([日期]),Month([日期]))
ORDER BY 材料收支表.材料ID, Year([日期]), Month([日期]);
'==================
在MDB中查询可以放入VBA的函数,在ADP中是不可以的.要直接在SQL中写函数,我想把下面的语句转换成ADP的函数,大家帮忙呀!!
'****************************
'名称:月上期余额示例
'作者:zhengjialon(access-cn and access abc)
'时间:2004-01-30
'****************************
'实现了在一条记录中查询上月余额本月进库和结余的问题
'本例是使用了进出库在一个表中,如果是进库和出库分别为两个表也是一样。
Public Function k(strCodeID As String, lngY As Long, lngM As Long) As Long
Dim strSQL As String
Dim rs As Object
Dim cn As Object
Set cn = Application.CurrentProject.Connection
Set rs = CreateObject("ADODB.Recordset")
'将材料代码和日期代入到查询条件中去
strSQL = "SELECT 材料收支表.材料ID, Sum(([进库]-[出库])) AS 库存 " & _
"FROM 材料收支表 " & _
"WHERE 材料收支表.日期 < #" & lngM & "/1" & "/" & lngY & "# And 材料ID ='" & strCodeID & "' " & _
"GROUP BY 材料收支表.材料ID;"
rs.Open strSQL, cn, 1
If rs.EOF = True Then Exit Function
k = rs("库存")
'MsgBox k
rs.Close
Set rs = Nothing
Set cn = Nothing
End Function
'-------------------------------------上面这个是zhengjialon版主的库存查询示例此下连接可以下载
http://www.office-cn.net/forum.php?mod=viewthread&tid=19200
'===================
作者:
lwwvb
时间:
2004-8-3 22:37
可以呀,使用存储过程或用户自定义函数。可惜我现在都不太熟悉。
作者:
guotianxin
时间:
2004-8-6 19:24
Create Function fnSql()Returns TableAS Return (SELECT 材料收支表.材料ID, Year([日期]) AS 年份, Month([日期]) AS 月份, k([材料ID],Year([日期]),Month([日期])) AS 上月结余, Sum(材料收支表.进库) AS 本月进库, Sum(材料收支表.出库) AS 本月出库
FROM 材料收支表
GROUP BY 材料收支表.材料ID, Year([日期]), Month([日期]), k([材料ID],Year([日期]),Month([日期]))
ORDER BY 材料收支表.材料ID, Year([日期]), Month([日期]))
作者:
yodong
时间:
2004-8-6 20:39
谢谢
guotianxin朋友,
不过是不是guotianxin朋友理解错了我的意思呢?
SELECT 材料收支表.材料ID, Year([日期]) AS 年份, Month([日期]) AS 月份, k([材料ID],Year([日期]),Month([日期])) AS 上月结余, Sum(材料收支表.进库) AS 本月进库, Sum(材料收支表.出库) AS 本月出库
FROM 材料收支表
GROUP BY 材料收支表.材料ID, Year([日期]), Month([日期]), k([材料ID],Year([日期]),Month([日期]))
ORDER BY 材料收支表.材料ID, Year([日期]), Month([日期]);
上面是一个MDB中的查询.其中用到在VBA中写的函数 K()
.我的用意是把此VBA的函数K写成在ADP中的函数.
再麻烦一下
guotianxin朋友帮我看一下,我相信你是行的.
[此贴子已经被作者于2004-8-6 13:06:14编辑过]
欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/)
Powered by Discuz! X3.3