超碰人人人人人,亚洲AV午夜福利精品一区二区,亚洲欧美综合区丁香五月1区,日韩欧美亚洲系列

LOGO OA教程 ERP教程 模切知識(shí)交流 PMS教程 CRM教程 開(kāi)發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

實(shí)現(xiàn)ListView可編輯功能,想學(xué)VBA的朋友千萬(wàn)別錯(cuò)過(guò),InkEdit控件

admin
2025年1月28日 13:58 本文熱度 18

內(nèi)容提要 

  • ListView編輯功能

  • LIstView查詢數(shù)據(jù)

  • InkEdit控件修改ListView數(shù)據(jù)

  • 根據(jù)ListView數(shù)據(jù)更新工作表數(shù)據(jù)

大家好,我是冷水泡茶。
前幾天我們分享過(guò)一個(gè)關(guān)于ListView查詢顯示數(shù)據(jù)的案例:
VBA實(shí)用案例,數(shù)據(jù)查詢,ListView顯示、篩選數(shù)據(jù),查詢結(jié)果輸出到工作表
有朋友在后臺(tái)留言,希望能增加一個(gè)修改按鈕:
?
確實(shí),如果能修改ListView的數(shù)據(jù),再更新到工作表,那就相當(dāng)完美了。
ListView本身不可以編輯,這也是曾經(jīng)困擾我很久的問(wèn)題,我?guī)缀跛驯榱苏麄€(gè)網(wǎng)絡(luò),終于皇天不負(fù)有心人,有大神在網(wǎng)上公布了一個(gè)非常好的解決方案,被我給找到了,主要是結(jié)合InkEdit控件和Windows窗口API函數(shù)來(lái)實(shí)現(xiàn),把InkEdit控件覆蓋到點(diǎn)擊的ListView單元格上面,就像直接修改Excel工作表單元格一樣,效果非常好。
在沒(méi)找到這種方法之前,我嘗試過(guò)用TextBox來(lái)輸入內(nèi)容,但效果不理想,TextBox不能覆蓋到ListView的單元格上面。這種方式我們?cè)凇?/span>電子發(fā)票登記系統(tǒng)(Access版)」中使用過(guò):
這種方法也能達(dá)到目的,但使用起來(lái)有點(diǎn)別扭。
其實(shí),使用InkEdit控件的方法,我們也分享過(guò)一個(gè)案例:
Excel VBA 實(shí)用項(xiàng)目【收費(fèi)管理系統(tǒng)】使用說(shuō)明
在我的「Excel 實(shí)用收費(fèi)項(xiàng)目【財(cái)務(wù)管理系統(tǒng)注冊(cè)版】」中,也使用了InkEdit控件來(lái)編輯ListView。
不過(guò),前面提及的案例都是更新Access數(shù)據(jù)庫(kù),沒(méi)有更新Excel表的,今天就乘這個(gè)機(jī)會(huì)分享一波。

用戶窗體

我們?cè)谟脩舸绑w上添加幾個(gè)控件:

1、InkEdit控件,這個(gè)控件類似于TextBox控件,但它有句柄(Handle)屬性,可以通過(guò)API函數(shù)來(lái)控制它。

2、全選按鈕,點(diǎn)擊選中所有記錄,按鈕變成“全消”,再點(diǎn)擊,取消所有勾選,按鈕變回“全選”。

3、刪除按鈕,刪除選中的記錄。

4、是否修改復(fù)選框,勾選則顯示刪除按鈕,同時(shí)ListView可編輯,不勾選則隱藏刪除按鈕,ListView不可編輯。復(fù)選框的值變化時(shí),同步更新工作表Settings的值。

工作表

1、增加一張工作表Settings,用來(lái)保存一些設(shè)置選項(xiàng),目前只有一個(gè)“修改狀態(tài)”,取值On和Off,當(dāng)為On時(shí),在啟動(dòng)用戶窗體是,是否修改復(fù)選框處于勾選狀態(tài),反之則不勾選:

2、工作表的CodeName修改了一下,方便直接引用:

基本實(shí)現(xiàn)過(guò)程

1、用戶窗體啟動(dòng)時(shí),我們把數(shù)據(jù)表shData裝入數(shù)組,并添加到ListView,同時(shí)將月份、姓名添加到兩個(gè)復(fù)合框的List,供下拉選擇

2、當(dāng)我們點(diǎn)擊ListView的ListItem時(shí),如果是否修改處于勾選狀態(tài),同時(shí)點(diǎn)擊的單元格是設(shè)定為允許編輯的,則在其上顯示InkEdit控件,我們?cè)贗nkEdit中輸入新的值(看上去就像在ListView中輸入一樣),按回車或方向鍵或鼠標(biāo)點(diǎn)擊其他單元格,則完成修改。如果連續(xù)按擊Esc鍵兩次,則取消修改。

3、修改內(nèi)容會(huì)立即更新到工作表。

完整代碼文本,詳見(jiàn)另一條推文。

寫(xiě)在最后

1、我們實(shí)現(xiàn)了ListView的編輯功能,同時(shí)更新工作表,我們沒(méi)有做“新增”功能,即在工作表中新增一條記錄,主要是考慮直接在工作表中新增記錄會(huì)更方便一些。如果是更新數(shù)據(jù)庫(kù),那么“新增”功能是必不可少的。

2、我們的編輯功能還是比較簡(jiǎn)陋,需要純手工輸入。還可以進(jìn)一步優(yōu)化,比如:

(1)日期采用「日期控件」來(lái)輸入。

(2)姓名、性質(zhì)、狀態(tài),可以使用下拉列表輸入,可以在Setting表中添加相應(yīng)的選項(xiàng)。

(3)金額,進(jìn)行一些合規(guī)性校驗(yàn),確保輸入的是數(shù)字。

(4)如果有計(jì)算關(guān)系的字段,如數(shù)量*單價(jià)等于金額,我們可以通過(guò)數(shù)據(jù)、單價(jià)的變化來(lái)自動(dòng)計(jì)算金額。

3、上述優(yōu)化項(xiàng)目,由于時(shí)間關(guān)系,加之我們?cè)谝郧暗陌咐幸卜窒磉^(guò),就不打算再搞了。感興趣的朋友可以自己摸索,有問(wèn)題可以留言討論,如果自己搞不定,但是又急需使用這樣的功能的,歡迎付費(fèi)定制,價(jià)廉物美、童叟無(wú)欺。

4、本案例實(shí)現(xiàn)ListView可編輯的方法,參考自EXCELHOME的一個(gè)貼子,我把網(wǎng)址放在這,感興趣的朋友可以去看看,樓主解釋得非常全面:

https://club.excelhome.net/thread-1423746-1-1.html

~~~~~~End~~~~~~


閱讀原文:原文鏈接


該文章在 2025/2/5 17:01:29 編輯過(guò)
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點(diǎn)晴ERP是一款針對(duì)中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國(guó)內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對(duì)港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場(chǎng)、車隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場(chǎng)作業(yè)而開(kāi)發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉(cāng)儲(chǔ)管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購(gòu)管理,倉(cāng)儲(chǔ)管理,倉(cāng)庫(kù)管理,保質(zhì)期管理,貨位管理,庫(kù)位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號(hào)管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved