設(shè)為首頁收藏本站Access中國

Office中國論壇/Access中國論壇

 找回密碼
 注冊(cè)

QQ登錄

只需一步,快速開始

12下一頁
返回列表 發(fā)新帖
查看: 5297|回復(fù): 11
打印 上一主題 下一主題

[模塊/函數(shù)] 導(dǎo)入Execl示例,碰到困難,請(qǐng)教如何設(shè)置子窗體中文本框的數(shù)據(jù)源?

[復(fù)制鏈接]

點(diǎn)擊這里給我發(fā)消息

跳轉(zhuǎn)到指定樓層
1#
發(fā)表于 2009-12-31 16:05:56 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
要求與遍歷得到的查詢字段名稱一一對(duì)應(yīng)。不可直接將文本框綁定,因?yàn)槲蚁胱龀梢粋(gè)活動(dòng)的。
見附件!

本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有帳號(hào)?注冊(cè)

x
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 分享淘帖 訂閱訂閱
2#
發(fā)表于 2009-12-31 16:18:26 | 只看該作者
實(shí)例沒看明白想解決什么問題。
控件來源用me.text1.ControlSource設(shè)置;
控件值用me.text1.value設(shè)置。

點(diǎn)擊這里給我發(fā)消息

3#
 樓主| 發(fā)表于 2009-12-31 16:36:37 | 只看該作者
思路是:
   1。 查詢一個(gè)EXCEL表格內(nèi)容,QryExcel導(dǎo)入
   2。 子窗體的來源為該查詢
   3。 將子窗體中的文本控件分別與查詢中的字段名相對(duì)應(yīng)。方便查看。
   4。 。。。。。。。接下來就可做成活動(dòng)的導(dǎo)入工具。

點(diǎn)擊這里給我發(fā)消息

4#
 樓主| 發(fā)表于 2009-12-31 16:48:12 | 只看該作者
Dim rs As DAO.Recordset
Dim Flt As Field
Dim Flt1 As Field
'定義返回對(duì)象實(shí)例
Set rs = CurrentDb.OpenRecordset("QryExcel導(dǎo)入")

'遍歷字段集合,列出所有字段
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

'關(guān)閉記錄集并釋放對(duì)象占用空間
rs.Close
Set rs = Nothing
5#
發(fā)表于 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導(dǎo)入")
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

如果子窗體數(shù)據(jù)源沒有設(shè)置還應(yīng)該加一句設(shè)置窗體數(shù)據(jù)源的語句

點(diǎn)擊這里給我發(fā)消息

6#
 樓主| 發(fā)表于 2009-12-31 17:44:13 | 只看該作者
這樣還是不行,子窗體中的所有文本來源全是最后一個(gè)字段。我再想想。

上面一個(gè)按鈕就是將左邊的EXCEL文件指定的范圍作為查詢來源的。

我就想這樣比較靈活,方便檢查導(dǎo)入的EXCEL數(shù)據(jù)與需要的數(shù)據(jù)是不是存在結(jié)構(gòu)上的不對(duì)。
7#
發(fā)表于 2009-12-31 18:30:48 | 只看該作者
本帖最后由 todaynew 于 2009-12-31 18:44 編輯
這樣還是不行,子窗體中的所有文本來源全是最后一個(gè)字段。我再想想。

上面一個(gè)按鈕就是將左邊的EXCEL文件指定的范圍作為查詢來源的。

我就想這樣比較靈活,方便檢查導(dǎo)入的EXCEL數(shù)據(jù)與需要的數(shù)據(jù)是不是存在結(jié)構(gòu) ...
heqing3000 發(fā)表于 2009-12-31 17:44

呵呵,看了看代碼,應(yīng)該如此。內(nèi)層循環(huán)應(yīng)該取消。

試試:
Dim rs As DAO.Recordset
Dim Flt As Field
Dim ctls As Controls
Dim i As long
Set rs = CurrentDb.OpenRecordset("QryExcel導(dǎo)入")
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

點(diǎn)擊這里給我發(fā)消息

8#
 樓主| 發(fā)表于 2009-12-31 18:47:02 | 只看該作者
本帖最后由 heqing3000 于 2009-12-31 18:48 編輯

呵呵,老樣子,我改了一下子窗體數(shù)據(jù)源,這樣就能發(fā)現(xiàn)問題了。

本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有帳號(hào)?注冊(cè)

x

點(diǎn)擊這里給我發(fā)消息

9#
 樓主| 發(fā)表于 2009-12-31 20:30:55 | 只看該作者
todaynew  的方法還是不行, 我現(xiàn)在搞好了,上傳上來分享一下。多謝論壇上的大哥大姐們。

本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有帳號(hào)?注冊(cè)

x
10#
發(fā)表于 2009-12-31 20:37:12 | 只看該作者
todaynew  的方法還是不行, 我現(xiàn)在搞好了,上傳上來分享一下。多謝論壇上的大哥大姐們。41051
heqing3000 發(fā)表于 2009-12-31 20:30

自己解決得來更深刻,呵呵。
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則

QQ|站長郵箱|小黑屋|手機(jī)版|Office中國/Access中國 ( 粵ICP備10043721號(hào)-1 )  

GMT+8, 2025-7-17 05:59 , Processed in 0.122343 second(s), 34 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回復(fù) 返回頂部 返回列表