国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 開(kāi)發(fā) > 綜合 > 正文

access 如何解決組合框無(wú)法滿足大量數(shù)據(jù)的選擇問(wèn)題?

2024-07-21 02:09:31
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友


如何解決組合框無(wú)法滿足大量數(shù)據(jù)的選擇問(wèn)題?

 

 

問(wèn)題:

access里面有組合框,可以很快地從多行記錄中選擇所需要的數(shù)據(jù)。但是如果記錄超過(guò)1000-2000呢?選擇就非常不方便了。我該怎么辦?
 




回答:


其實(shí)很多數(shù)據(jù)都可以分類(lèi)(分層)來(lái)選擇,而且我們可以預(yù)先篩選數(shù)據(jù)。
以下這個(gè)示例就是用重復(fù)打開(kāi)同一個(gè)窗體類(lèi)來(lái)完成多層次數(shù)據(jù)的選擇。
當(dāng)然,還包括預(yù)先篩選數(shù)據(jù)功能。


在閱讀本文前請(qǐng)先參考:
《新手來(lái)看:如何設(shè)計(jì)表結(jié)構(gòu)便于treeview顯示?》
http://access911.net/index.asp?board=4&recordid=75fabe1e12dc
一文,以了解如何定義數(shù)據(jù)表結(jié)構(gòu)可以方便的分類(lèi)并顯示。

并閱讀:
《如何將一個(gè)窗體重復(fù)打開(kāi)2遍,并且每一遍打開(kāi)的窗體顯示不同的數(shù)據(jù)?》
http://access911.net/index.asp?board=4&recordid=72fab11e15dc
一文,以了解 access 中一個(gè) form 其實(shí)就是一個(gè)類(lèi)

好了,現(xiàn)在開(kāi)始:
1、建立一個(gè)窗體(testform),里面有一個(gè)文本框(text0),一個(gè)按鈕(command2)。
2、建立一個(gè)窗體(selectform),里面有一個(gè)列表框(list0)。
3、在testform中的文本框的“更新后”事件中寫(xiě)入以下代碼以打開(kāi)品名選擇窗體(selectform),并對(duì)其中的列表框(list0)的行來(lái)源(rowsource)進(jìn)行賦值。
private sub text0_afterupdate()
    docmd.openform "selectform"
    '這行代碼就實(shí)現(xiàn)了btype表的模糊檢索,使用的是 where 子句中的 like 關(guān)鍵字進(jìn)行通配
    forms("selectform").list0.rowsource = "select btype.soncount, btype.usercode, btype.fullname, btype.typeid from btype where btype.fullname like '*" & text0.value & "*' "
end sub

4、在testform中的命令按鈕的“單擊”事件中寫(xiě)入以下代碼以打開(kāi)品名選擇窗體,按分類(lèi)檢索
5、然后再在testform中輸入以下代碼以完成多次打開(kāi)窗體本身并顯示子類(lèi)中數(shù)據(jù)的功能。
為了能夠使代碼重復(fù)利用,寫(xiě)了兩個(gè)通用過(guò)程

option compare database
dim f


private sub form_keydown(keycode as integer, shift as integer)
    '先設(shè)定窗體的“鍵預(yù)覽”屬性為“是”
    '本過(guò)程將加快你的輸入速度
    '如果按 escape 鍵,就關(guān)閉窗體
    if keycode = vbkeyescape then
        closeallselectform "selectform"
    end if
end sub

private sub list0_dblclick(cancel as integer)
    checkyouselect
end sub

private sub list0_keypress(keyascii as integer)
    '本過(guò)程實(shí)現(xiàn)全鍵盤(pán)操作
    if keyascii = 13 then
        checkyouselect
    end if
end sub

sub closeallselectform(strformname as string)
    '通用過(guò)程1
    '本過(guò)程用來(lái)關(guān)閉所有的指定名稱的窗體
    for each objform in forms
        if objform.name = strformname then
            docmd.close acform, objform.name
        end if
    next objform
end sub

sub checkyouselect()
    '通用過(guò)程2
    '檢測(cè)你的選擇
    '如果發(fā)現(xiàn) suncount 列為 0(表示沒(méi)有下一層了)
    '就可以把你選定的產(chǎn)品名稱放到文本框中了
    on error resume next
    set f = new form_selectform
    dim objform as form
    if list0.column(0) = 0 then
        forms("testform").text0.value = list0.column(2)
        closeallselectform "selectform"
    else
        f.visible = true
        f.list0.rowsource = "select btype.soncount, btype.usercode, btype.fullname, btype.typeid from btype where parid='" & list0.value & "'"
    end if
end sub



詳細(xì)示例程序請(qǐng)參考:
http://www.access911.net/index.asp?board=8&recordid=77fab71e


 




http://access911.net 站長(zhǎng)收藏
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 龙门县| 富锦市| 赤水市| 舒城县| 黔西| 南召县| 开远市| 河北省| 马尔康县| 绥化市| 阳江市| 巨鹿县| 孙吴县| 西乌珠穆沁旗| 习水县| 荥阳市| 永春县| 肥城市| 慈利县| 琼海市| 南部县| 涪陵区| 昌宁县| 资中县| 奈曼旗| 雷山县| 宝丰县| 抚州市| 余庆县| 沛县| 东山县| 兰考县| 莱阳市| 慈利县| 东海县| 斗六市| 大冶市| 邯郸市| 开封市| 惠水县| 安顺市|