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

Office中國論壇/Access中國論壇

 找回密碼
 注冊(cè)

QQ登錄

只需一步,快速開始

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

[窗體] 動(dòng)態(tài)數(shù)據(jù)表窗體顯示

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
1#
發(fā)表于 2009-3-14 22:56:23 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式

很多網(wǎng)友碰到動(dòng)態(tài)改變窗體的記錄集時(shí),如何進(jìn)行窗體字段的顯示問題。
試了一下,ACCESS 2003中,窗體運(yùn)行時(shí)無法動(dòng)態(tài)的添加控件。只好用另外一個(gè)方法來變通地來實(shí)現(xiàn)這個(gè)功能。

思路
在窗體上一次性添加 256 個(gè) textbox控件 T0,T1,T3,...,T255(因?yàn)锳CCESS2003中一個(gè)查詢或表最多255個(gè)字段)
然后根據(jù)窗體綁定的數(shù)據(jù)源的記錄集,動(dòng)態(tài)地對(duì)T0,T1,T3...來進(jìn)行字段綁定,并設(shè)置列是否顯示。

步驟
1. 生成這個(gè)窗體 flexForm ,你可以一個(gè)一個(gè)來復(fù)制這些個(gè)textbox,也可以用如下代碼生成。

Public Sub createFlexFrom()
    Dim sOldFrmName As String
    Dim frm As Form

    Set frm = CreateForm
    sOldFrmName = frm.Name
   
    Dim ctlLabel As Control, ctlText As Control
   
    Dim i As Integer
   
    For i = 0 To 255
        Set ctlText = CreateControl(frm.Name, acTextBox)
        ctlText.Name = "T" & i
        
        Set ctlLabel = CreateControl(frm.Name, acLabel, , ctlText.Name)
        ctlLabel.Name = "L" & i
    Next i
   
    frm.DefaultView = 2
    frm.NavigationButtons = False
   
    DoCmd.Close acForm, frm.Name, acSaveYes
    DoCmd.Rename "flexForm", acForm, sOldFrmName
   
End Sub


運(yùn)行上述代碼,可得到一個(gè)名為 flexForm 的窗體,窗體默認(rèn)顯示方式為"數(shù)據(jù)表",無記錄導(dǎo)航按鈕。當(dāng)然你可以按需要改成你希望的窗體名。


2. 打開這個(gè) flexForm 的設(shè)計(jì)模式,按ALT+F11 進(jìn)入VBE環(huán)境,在flexForm窗體模塊上添加一個(gè)過程 bindRecordset,代碼如下。

游客,如果您要查看本帖隱藏內(nèi)容請(qǐng)回復(fù)



3. 在你自己的主窗體中可以應(yīng)用這個(gè)窗體做為子窗體,并可以動(dòng)態(tài)的改變這個(gè)窗體的記錄集。
例如,主窗體中可以執(zhí)行 Me.Child3.Form.bindRecordset "select * from crossQuery"

示例:
游客,如果您要查看本帖隱藏內(nèi)容請(qǐng)回復(fù)

打開form1,輸入 t ,點(diǎn)擊按鈕,查看子窗體的變化。 然后輸入 query1,點(diǎn)擊按鈕。
createFlexForm在 模塊中。


提醒: 具體使用中,你可以添加必要的容錯(cuò)代碼。



******************
*  一切皆有可能  *
******************

.
ACMAIN - Access論壇回貼準(zhǔn)則(個(gè)人).
.
復(fù)
.
QQ群 48866293 / 12035577 / 7440532 / 13666209
http://www.accessbbs.cn/bbs/index.php .
http://www.accessoft.com/bbs/index.asp .
http://www.access-programmers.co.uk/forums .
http://ctxi.cn .
.
http://ctxi.cn/home/space.php?uid=141646 .


本帖子中包含更多資源

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

x

評(píng)分

參與人數(shù) 1經(jīng)驗(yàn) +15 收起 理由
renyucai1963 + 15 很給力!

查看全部評(píng)分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏8 分享分享 分享淘帖 訂閱訂閱
2#
發(fā)表于 2009-3-14 23:42:16 | 只看該作者
學(xué)習(xí)
3#
發(fā)表于 2009-3-15 00:08:57 | 只看該作者
謝謝樓主!
4#
發(fā)表于 2009-3-15 00:37:19 | 只看該作者
太神了
5#
發(fā)表于 2009-3-15 09:46:24 | 只看該作者
精彩,正是我需要的
收藏先!謝謝
6#
發(fā)表于 2009-3-15 09:50:53 | 只看該作者
學(xué)習(xí)

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

7#
發(fā)表于 2009-3-15 10:41:29 | 只看該作者
好思路!
8#
發(fā)表于 2009-3-15 10:44:51 | 只看該作者
學(xué)習(xí)了
9#
發(fā)表于 2009-3-15 10:56:01 | 只看該作者
高手,謝謝分享,學(xué)習(xí)。
10#
發(fā)表于 2009-3-15 12:34:17 | 只看該作者
學(xué)習(xí)一下
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則

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

GMT+8, 2024-10-23 08:26 , Processed in 0.204840 second(s), 38 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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