设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 1540|回复: 5
打印 上一主题 下一主题

[与其它组件] 自定义函数中如何引用表中字段的问题

[复制链接]
跳转到指定楼层
1#
发表于 2006-2-12 00:11:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
大家好,我想请问一下,我新建了一个函数用在查询在调用,其中需要在函数中引用数据表上的字段,直接引用的话系统提示找不到相应的字段,后面到群里面问过才知道系统不支持在函数中引用表中的字段,只支持引用窗体或报表中的字段,之后了解到通过Dlookup可以解决这个问题,可是问题在于如果不加条件的话Dlookup只能返回一条记录,可我希望返回整个引用的字段,但我不知道这个条件应该怎么写,所以就把文件上传上来,大家帮忙看看解决,谢谢大家!

附:函数存放在模块2中,引用则是在查询表《成本核算查询》中20051、20061、20071三个表达式中。

附二:函数代码:

Public Function yearstemp(tempperiod As Integer)
Dim a, b, c, d As Date
a = DLookup("[设定日期]", "设定日期")
b = DLookup("[(stop)期款日期]", "成本核算数据")
'c = DLookup("[设定日期]", "设后面把函数里要用到的字段统一改成了从表中引定日期")
d = DLookup("[(start)期款日期]", "成本核算数据")
Debug.Print a, b


    If Year(a) > tempperiod Or a > b Or Year(b) < tempperiod Then
        yearstemp = 0
        ElseIf Year(a) = tempperiod And Year(b) = tempperiod Then
            yearstemp = Month(b) - Month(a) + 1
        ElseIf Year(a) = tempperiod And a <= d Then
            yearstemp = 13 - Month(d)
        ElseIf Year(a) = tempperiod And a > d Then
            yearstemp = 13 - Month(a)
        ElseIf Year(a) < tempperiod And Year(b) = tempperiod Then
            yearstemp = Month(b)
        Else
        yearstemp = 12
    End If
   
End Function


函数 表

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2006-2-12 05:44:00 | 只看该作者
使用ADO或DAO
3#
 楼主| 发表于 2006-2-13 16:56:00 | 只看该作者
那是不是用函数本身不能达到要求,可是要用Ado或DAO来搞的话,我对Access认识不深,自己还无法独立完成,可否帮忙适当修改一下,谢谢
4#
 楼主| 发表于 2006-2-13 18:56:00 | 只看该作者
大家好,我找了找资料,写了一段代码,代码能返回我要的字段了,可是怎么和上一段代码结合起来呢,大家帮帮忙看看,谢谢

Sub oprecordset()
On Error GoTo except
Dim recordset As New ADODB.recordset
recordset.Open "成本核算查询", CurrentProject.Connection, adOpenForwardOnly, adLockReadOnly, adCmdTableDirect
Do Until recordset.EOF
Debug.Print recordset![设定日期], recordset![(start)期款日期]
recordset.MoveNext
Loop
recordset.Clone
Set recordset = Nothing
Exit Sub
except:
MsgBox Err.Description, vbCritical

End Sub
5#
 楼主| 发表于 2006-2-14 19:19:00 | 只看该作者
怎么没人知道吗
6#
 楼主| 发表于 2006-2-15 17:01:00 | 只看该作者
谢谢大家的关注,问题已经解决
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-11-29 18:15 , Processed in 0.088472 second(s), 31 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表