设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

12下一页
返回列表 发新帖
查看: 4734|回复: 11
打印 上一主题 下一主题

[模块/函数] 导入Execl示例,碰到困难,请教如何设置子窗体中文本框的数据源?

[复制链接]

点击这里给我发消息

跳转到指定楼层
1#
发表于 2009-12-31 16:05:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
要求与遍历得到的查询字段名称一一对应。不可直接将文本框绑定,因为我想做成一个活动的。
见附件!

本帖子中包含更多资源

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

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2009-12-31 16:18:26 | 只看该作者
实例没看明白想解决什么问题。
控件来源用me.text1.ControlSource设置;
控件值用me.text1.value设置。

点击这里给我发消息

3#
 楼主| 发表于 2009-12-31 16:36:37 | 只看该作者
思路是:
   1。 查询一个EXCEL表格内容,QryExcel导入
   2。 子窗体的来源为该查询
   3。 将子窗体中的文本控件分别与查询中的字段名相对应。方便查看。
   4。 。。。。。。。接下来就可做成活动的导入工具。

点击这里给我发消息

4#
 楼主| 发表于 2009-12-31 16:48:12 | 只看该作者
Dim rs As DAO.Recordset
Dim Flt As Field
Dim Flt1 As Field
'定义返回对象实例
Set rs = CurrentDb.OpenRecordset("QryExcel导入")

'遍历字段集合,列出所有字段
For Each Flt In rs.Fields
     
                        
            Dim ctl As Control
           '遍历子窗体上的控件,并将Flt依次指定给其做为来源,这里搞不定???????
            For Each ctl In Me.子窗体.Form.Controls
                If ctl.ControlType = acTextBox Then
                        Me.子窗体.Form.ctl.ControlSource = Flt.Name
                End If
            Next ctl
     
Next Flt

'关闭记录集并释放对象占用空间
rs.Close
Set rs = Nothing
5#
发表于 2009-12-31 17:11:31 | 只看该作者
本帖最后由 todaynew 于 2009-12-31 17:16 编辑

试试:
Dim rs As DAO.Recordset
Dim Flt As Field
Dim ctls As Controls
Dim ctl As Control
Set rs = CurrentDb.OpenRecordset("QryExcel导入")
set ctls=Me.子窗体.Form.Controls
For Each Flt In rs.Fields
            For Each ctl In ctls
                If ctl.ControlType = acTextBox Then
                     ctl.ControlSource = Flt.Name
                End If
            Next ctl
Next Flt
rs.Close
Set rs = Nothing

如果子窗体数据源没有设置还应该加一句设置窗体数据源的语句

点击这里给我发消息

6#
 楼主| 发表于 2009-12-31 17:44:13 | 只看该作者
这样还是不行,子窗体中的所有文本来源全是最后一个字段。我再想想。

上面一个按钮就是将左边的EXCEL文件指定的范围作为查询来源的。

我就想这样比较灵活,方便检查导入的EXCEL数据与需要的数据是不是存在结构上的不对。
7#
发表于 2009-12-31 18:30:48 | 只看该作者
本帖最后由 todaynew 于 2009-12-31 18:44 编辑
这样还是不行,子窗体中的所有文本来源全是最后一个字段。我再想想。

上面一个按钮就是将左边的EXCEL文件指定的范围作为查询来源的。

我就想这样比较灵活,方便检查导入的EXCEL数据与需要的数据是不是存在结构 ...
heqing3000 发表于 2009-12-31 17:44

呵呵,看了看代码,应该如此。内层循环应该取消。

试试:
Dim rs As DAO.Recordset
Dim Flt As Field
Dim ctls As Controls
Dim i As long
Set rs = CurrentDb.OpenRecordset("QryExcel导入")
set ctls=Me.子窗体.Form.Controls
i=0
For Each Flt In rs.Fields
      i=i+1
     If ctl.ControlType = acTextBox Then
             clts(i).contrsource= Flt.Name
     End If
Next Flt
rs.Close
Set rs = Nothing

点击这里给我发消息

8#
 楼主| 发表于 2009-12-31 18:47:02 | 只看该作者
本帖最后由 heqing3000 于 2009-12-31 18:48 编辑

呵呵,老样子,我改了一下子窗体数据源,这样就能发现问题了。

本帖子中包含更多资源

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

x

点击这里给我发消息

9#
 楼主| 发表于 2009-12-31 20:30:55 | 只看该作者
todaynew  的方法还是不行, 我现在搞好了,上传上来分享一下。多谢论坛上的大哥大姐们。

本帖子中包含更多资源

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

x
10#
发表于 2009-12-31 20:37:12 | 只看该作者
todaynew  的方法还是不行, 我现在搞好了,上传上来分享一下。多谢论坛上的大哥大姐们。41051
heqing3000 发表于 2009-12-31 20:30

自己解决得来更深刻,呵呵。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-21 23:44 , Processed in 0.124756 second(s), 34 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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