Office中国论坛/Access中国论坛

标题: 自定义函数截取查询表中一列数据罗列到文本框中求教 [打印本页]

作者: wang1950317    时间: 2016-6-13 13:31
标题: 自定义函数截取查询表中一列数据罗列到文本框中求教
下面的自定义函数是网上老师以前提供的,作用是截取表中某列数据罗列至文本框中
用法在窗体文本框中:allname("表名","字段名","条件=条件")
以前(Access2003)好像可以用于查询表,但现在只能用于表,而不能用于查询表,不知是何原因?(07版)
请懂代码的老师指教!谢谢!
  
Function allname(tblName As String, fieldname As String, Optional criteria As String = "")
    Dim D As Recordset
    Dim sqlstr As String
    Dim cristr As String
    If criteria = "" Then
        cristr = ""
    Else
        cristr = " where " & criteria
    End If
    sqlstr = "select " & fieldname & " from " & tblName & cristr & " GROUP BY " & fieldname
    Set D = CurrentDb.OpenRecordset(sqlstr)  '这一句提示有问题,
    If Not D.EOF Then
    D.MoveFirst
   
    Do While Not D.EOF
        If allname = "" Then
        allname = D(0)
        Else
        allname = allname & "," & D(0)
        End If
        D.MoveNext
    Loop
    End If
End Function

作者: roych    时间: 2016-6-13 14:43
个人觉得复杂了。
建议用GetRows或者Getstring为佳:
http://www.office-cn.net/thread-119067-1-1.html***********************************************************************************
Dim D As DAO.Recordset
'改成这样,那一句就没问题了。
    Dim sqlstr As String
    Dim cristr As String
    If criteria = "" Then
        cristr = ""
    Else
        cristr = " where " & criteria
    End If
    sqlstr = "select " & fieldname & " from " & tblName & cristr & " GROUP BY " & fieldname
    Set D = CurrentDb.OpenRecordset(sqlstr)  '这一句提示有问题。
***********************************************************************************

说过不下十次,很多人就是不愿意加上“DAO”这几个字。
没有加上的情况下,系统根据引用的优先顺序来判断到底是ADO.Recordset还是DAO.Recordset,如果很不幸,你的ADO是优先于DAO的话,就出错了。

'

作者: tmtony    时间: 2016-6-13 16:26
引用先后有关
作者: wang1950317    时间: 2016-6-13 16:41
谢谢各位老师,受教!
作者: wang1950317    时间: 2016-6-14 08:36
按两位老师的指点都调整过了,但对动态查询,即引用窗体控件内容作为查询条件的,那一句还是报错。
作者: roych    时间: 2016-6-15 13:57
wang1950317 发表于 2016-6-14 08:36
按两位老师的指点都调整过了,但对动态查询,即引用窗体控件内容作为查询条件的,那一句还是报错。

条件有问题吧。得看实例才知道。
作者: wang1950317    时间: 2016-6-16 09:34
本帖最后由 wang1950317 于 2016-6-16 09:57 编辑

上传例示,请指教!谢谢!




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3