设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
楼主: wang1950317
打印 上一主题 下一主题

[其它] [求助]有没有能提取表中一列的字符罗列在一个文本框中的函数?

[复制链接]

点击这里给我发消息

31#
 楼主| 发表于 2006-5-18 04:38:00 | 只看该作者
谢谢情版主不厌其烦的费心指教。小的在此鞠躬致谢。基本上可以迂回使用了。但如要直接从有变量的查询表上截取一列,还是有困难的。因为我所要的有一大部分是这种情况。

本帖子中包含更多资源

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

x
32#
发表于 2006-5-18 04:55:00 | 只看该作者
不知道在VBA(dao、ado)中怎样传递参数查询中的参数?
33#
发表于 2006-5-18 07:54:00 | 只看该作者
一时没有好办法,因为你的查询是调用窗体的参数,所以无法在窗体变动时打开查询,要不你在窗体打开后用一个事件来给文本框赋值吧

点击这里给我发消息

34#
 楼主| 发表于 2006-5-18 18:44:00 | 只看该作者
谢谢啦!按道理说窗体打开单击列表框中的编号,数据就传递到了查询表,只要窗体不关,查询表中得数据始终是存在的。唉,情版主说一时没有好办法那就是没有好办法了。“窗体打开后用一个事件来给文本框赋值”如何操作?请版主帮忙帮到底吧,小的天天在这个网站上溜达,但基础差又太笨,没有多大长进,真是麻烦各位老大了。谢谢!
35#
发表于 2006-5-18 19:18:00 | 只看该作者
把查询中的条件去掉


本帖子中包含更多资源

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

x
36#
发表于 2006-5-18 19:24:00 | 只看该作者
删除List1行来源,使用以下代码即可:
Private Sub List1_AfterUpdate()
Dim d As Recordset
Dim strSQL As String
Dim strName As String

Me.RecordSource = " SELECT * FROM 表1 WHERE (((表1.编号)=[Forms]![窗体]![List1]));"


Me.child1.Form.RecordSource = "SELECT * FROM 结果1 WHERE (((IsNull(结果1.结果))=False)); "


Me.RequerystrSQL = "SELECT DISTINCT * FROM 表1 "


strSQL = strSQL & "WHERE 编号='" & Me.List1 & "';"    Set d = CurrentDb.OpenRecordset(strSQL)


    If Not d.EOF Then


        d.MoveFirst


        


        Do While Not d.EOF


            strName = strName & d("姓名") & ","


            d.MoveNext


        Loop


        


        Me.Text8 = Left(strName, Len(strName) - 1)


    End Ifd.CloseEnd Sub

点击这里给我发消息

37#
 楼主| 发表于 2006-5-19 00:29:00 | 只看该作者

继续求救

andymark大侠的方法试了一下还没有发现出错。但是套用到工作模式中弄不清哪儿有出错了。请ndymark大侠费心再看一看。谢谢您!


fan0217版主的代码放进去后提示:方法和数据成员未找到。.RequerystrSQL =     


菜鸟对代码很不像样,就不知该怎样做下去了。谢谢版主劳心!



[此贴子已经被作者于2006-5-18 16:33:51编辑过]

本帖子中包含更多资源

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

x
38#
发表于 2006-5-19 00:43:00 | 只看该作者
把查询1中的条件 [forms]![窗体]![编号]  这句不要就可以了

上面我都提到了,你还是没看清

   
39#
发表于 2006-5-19 02:58:00 | 只看该作者
发表时把空格和回车搞丢了,查看以下代码:







删除List1行来源,使用以下代码即可:

Private Sub List1_AfterUpdate()
Dim d As Recordset
Dim strSQL As String
Dim strName As String

Me.RecordSource = " SELECT * FROM 表1 WHERE (((表1.编号)=[Forms]![窗体]![List1]));"


Me.child1.Form.RecordSource = "SELECT * FROM 结果1 WHERE (((IsNull(结果1.结果))=False)); "


Me.Requery


strSQL = "SELECT DISTINCT * FROM 表1 "


strSQL = strSQL & "WHERE 编号='" & Me.List1 & "';"


  Set d = CurrentDb.OpenRecordset(strSQL)


    If Not d.EOF Then


        d.MoveFirst


          Do While Not d.EOF


            strName = strName & d("姓名") & ","


            d.MoveNext


        Loop


          Me.Text8 = Left(strName, Len(strName) - 1)


   End If


d.Close


End Sub

点击这里给我发消息

40#
 楼主| 发表于 2006-5-19 07:30:00 | 只看该作者
谢谢andymark大侠,没有弄懂您前面说的意思,现在按您的指点删除了查询的条件,一切如愿。没有了限制条件虽然把所有表中的项目都显示在查询中,但是我们的目的达到了,就不管其他的了。好像听说查询并不占多少空间?谢谢您!


也非常感谢fan0217版主的耐心指教。版主的代码同样也要删除查询1的条件,并且和列表框中的原有代码合并,窗体中的代码也免了,比较紧凑。但重复字符还是都显示,可能我在有些设置上还有问题,待我慢慢查一查。谢谢!


在这个帖子基本完成预定目的之际,也要感谢情比金坚版主完成的在固定表中截取。感谢LucasLynn   hi-wzj版主及sgrshh29大侠帮助。谢谢大家!我不太懂VB 但常把Access当作游戏来玩,我感到只要你能提出问题,Access几乎没有办不到的。这也是Access的魅力所在。谢谢!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-1-10 14:49 , Processed in 0.111382 second(s), 32 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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