機房收費系統問題篇(二)
幾天前就完成了第一遍的機房驗收,雖然師父還是沒有給我過,但從中我也學到了很多東西。機房收費系統的成長可謂是在錯誤中成長,下面我就說說我從中遇到的一些問題。
一、不將就:Combobox
這個控制元件我們在學生資訊管理系統和機房收費系統裡運用得非常廣泛,大家都知道到把它的style屬性設定為2的時候就能夠實現不可輸入,但是我們在查詢的那幾個窗體裡有“清空”那個命令按鈕,開始我以為把語句寫成combobox1.text=""就行了,可是我沒想到,問題來了,出現“text只讀屬性”這個錯誤,於是我上網找了一下,把語句寫成combobox1.clear就可是實現清除,而且可以避免“text只讀屬性”。但是,問題還是又來了,當我點了“清空”按鈕,combobox這會是真的徹徹底底的清空了,在它的下拉欄裡就真的沒有東西了。必須得把窗體關了再開才有內容。這完全就沒有全心全意為人民服務的理念。於是我苦思冥想,找到劉炳楷同學的一篇部落格,看到他那寫了一點關於這個控制元件的一些東西,於是我就去找他。在他的幫助下,我又懂得了一些東西。載入窗體的時候我有這樣的一段程式碼:
With cmbField1
.AddItem "教師"
.AddItem "註冊日期"
.AddItem "註冊時間"
.AddItem "登出日期"
.AddItem "登出時間"
.AddItem "機器名"
End With
開始我還真的只知道additem這個方法也就只是給combobox載入一些內容,但是後面上網查了才知道,這個方法的具體語法是這樣的object.AddItem item, index,後面可以加個索引,有了這個索引就可以做好多東西了,世界就頓時簡單了,我在.AddItem“教師”添個“,1”當我要用到這個東西的時候,我就用.ListIndex=1就行了。所以我就在這段程式碼里加上這麼一句With cmbField1
.AddItem "教師"
.AddItem "註冊日期"
.AddItem "註冊時間"
.AddItem "登出日期"
.AddItem "登出時間"
.AddItem "機器名"
<span style="white-space:pre"> </span>.AddItem " ",6
End With
也就是在下拉欄裡再加個空行,把這空行賦值給索引6,然後在“清空”按鈕下寫上
cmdfield1.ListIndex=6
</pre><p><span style="font-size:32px"><strong>二、不允許空值</strong></span></p><p><img src="https://img-blog.csdn.net/20140904185710201?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveXllODk0ODE3NTcx/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="" /></p><span style="font-size:24px">要把資訊寫入表中,然後更新表,但是很不巧的正好有個欄位不允許空值,開始以為加上個trim就行了,可還是不行,只能網上找答案了。把trim(mrc.field(0))改寫成這樣的語句就行了</span><pre name="code" class="html" style="font-size: 24px;">IIf(IsNull(mrc.Fields(0).Value), "", mrc.Fields(0).Value)
三、資料庫問題
暑假結束,機房的電腦都被還原為機房模式,也就意味著東西沒了,我把自己建的資料庫給匯出來了,是.sql格式的。因為我見學生資訊管理系統的那個資料庫就是這樣的格式。可是當我把它放在我電腦上的資料庫裡出了這樣的錯
可是為什麼學生那個就沒錯呢?後面才發現人家的語句是這樣子的。
看到了嗎,人家那是用資料庫裡的系統資料庫master建student資料庫,而我那根本就沒有那句話。看來我資料庫這塊還是得再加把勁啊。
問題當然不只這些,只是這些問題給我留下了比較深刻的映像,所以還是把它寫下來了。成長在於總結,經驗在於積累,並不是別人比你聰明,而是別人先比你經歷了這些事,先掌握瞭解決問題的技巧。驀然回首,機房收費系統 也就這麼一回事,還是加快步伐前進吧。