檔案關於一個以VBA寫的人名資料簿 - PCZONE 討論區

返回   PCZONE 討論區 > ▲ -- 電 腦 軟 體 討 論 區 > -- OFFICE 相 關 軟 體 討 論 版


PCZONE 討論區



通知

-- OFFICE 相 關 軟 體 討 論 版 Word、Excel、PowerPoint、Access、Outlook、FrontPage或Office XP等的問題解答與經驗分享

會員
檔案關於一個以VBA寫的人名資料簿
問題真是多!多!!多!!!....
又是我這位問題少男了...

問題於檔案裡, 請多多指導 (檔案關於一個以VBA寫的人名資料簿)
由於我VBA功力尚淺, 寫得不好請多多包涵!!



上傳的附加檔案
檔案類型: zip phonebook.zip (16.0 KB, 70 次觀看)
回覆
會員

這種有關係到資料庫的問題
我「強烈」建議移師到ACCESS裡處理
畢竟EXCEL只是個是試算表
你在檔案裡需求的功能
在ACCESS裡只消三四個小時就可以完成
甚至更少
OFFICE會有這麼多套不同的軟體
就是因為這些軟體各司其職
正所謂:工欲善其事,必先利其器呀!!!
共勉之
(扯遠了~~~)
我周末的時候若有空
我就按照你的檔案裡的欄位試寫一下
寫好,我再POST到板上來
回覆
Take it easy~

使用 Access 確實是很好,問題是.. 一般使用者對 Access 的了解有多少? 為了像
Phonebook 這種資料量不大的 case,再去學習使用另一個軟体有無必要? 值得商確。
當然若常有類似需求, 學 Access 是好的, 但以一般公司行號而言...

有沒有考慮過使用 Excel 內建的「表單」功能?
「表單」兼具查詢、新增、修改、刪除等簡易的資料表查詢及維護功能,符合你的需求。
以程式叫出第二張工作表的表單: Sheets(2).ShowDataForm (沒錯, 就是這短短的一行~)
想多了解一點「表單」? 2001/5/20主題: 善用 Excel 的 [表單] 功能

如果還是非用你說的方式不可,那麼 --

問題1:
如何可以於某一儲存格內輸入名字, EXCEL會用MSG BOX 之方法告訢我之前輸入的資料?

選取要輸入查詢的工作 (範例是 Sheet1),在工作表名稱標籤按右鍵 >> [檢視程式碼]
然後在空白處貼上這個巨集:

Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo 1
With Sheets(2)
Set f = .Columns(4).Find(Target)
If f Is Nothing Then _
MsgBox "找不到 " & Target & " 的資料!", 16: Exit Sub
comp = .Cells(f.Row, 3): phone = .Cells(f.Row, 6)
End With
MsgBox "COMPANY: " & comp & " TEL: " & phone, , Target & " 的資料"
1
End Sub

巨集簡述:
在工作表上輸入名字,程式會以此名字到資料所在工作表 (範例是 Sheet2) 姓名欄尋找,
若找不到就顯示找不到的訊息,否則顯示其公司名稱及電話號碼。

問題2:
如何可以利用TEXTBOX , 修改之前輸入的資料?

你都已做好一個 UserForm1 了,就直接拿來再利用嘛。
參考上面巨集中尋找資料的方法,及你那個 [新增] 資料的程式,把找到的資料
再逐欄寫回 UserForm1 的 TextBox 中以供修改。這段程式寫要在 UserForm1 的
Initialize 事件中,也就是 Private Sub UserForm_Initialize() 巨集。

但有個疑點不知你是否想過:一樣是在工作表輸入名稱,程式如何知道你是要
[查詢] 還是 [修改] ?? 加兩個按鈕,輸入後再選擇? 加個 OptionButton,選擇後再輸入?
還是輸入後讓程式來問你 ? ...每種方式的做法都不盡相同的。

問題3:
如何可以防止輸入相同資料?

那要看「相同資料」的定義是啥 -- 主要欄位相同? 所有欄位相同? 做法也不一樣。
在 UserForm1 原來的 CommandButton1_Click() 巨集 ([新增]按鈕)加入判斷即可。
重點是如果 [新增] 和 [修改] 使用同一個 UserForm,要判斷是何者呼叫,只有 [新增]
時才需要判斷資料是否重覆,Right ?

打了一堆,好累~ 有問題的話再討論吧...
回覆
潛字第1號

引用:
最初由 常上此站的動物 發表


是啊!!不知是不是我孤陋寡聞,我身邊的人(同事、朋友)都用Excel較多,沒聽說用Access的耶! 是不是比較不普遍啊??會比Excel難很多嗎?
建議你先買本書回家做點功課再來問人家
這樣子一方面你比較容易深入問題核心
別人也比較容易回答你的問題
總不能叫別人把一整本書的內容
連最基本的東西都打出來給你看吧???
回覆
會員

ACCESS是一套撰寫資料庫的軟體
Leon所言甚是,為了一個小小的程式再去學一樣軟體是滿辛苦的
我個人是認為,ACCESS還滿好上手的啦~~~
但是先決條件是,你必須要有資料庫系統基本的概念
再去使用ACCESS會更加的容易

以EXCEL來說
你可以在不同的SHEET中利用函數來相互連結
達到查詢、計算、核對等作業
就如同我之前說的,EXCEL畢竟只是試算表
它所可以處理的資料量是有限的
而且,在EXCEL中,資料量越大,開啟檔案的時間就越長
當然,現在電腦的運算速度說不一定已經可以cover掉這個問題

ACCESS同樣的也可以完成上述的部分作業
最基本的ACCESS是由資料表、查詢、表單三個元素所組成
資料表用以儲存資料,就像KANKAN兄所附檔案的SHEET2一般
查詢用以計算、查詢、連結不同資料表間的相互關係
表單一般用以當作使用者與資料庫間的溝通介面,就如同KANAKN兄SHEET1裡按下按鈕後出現的FORM一樣
以KANAKN兄的問題來說
也許只要用到資料表及表單就可以完成
應該不用用到查詢的功能
我個人覺得ACCESS最大的好處是它可以處理龐大的資料量
而且速度相當的快
對於一些需要多資料的比對與篩選時,ACCESS更顯得其功能的強大
而且在表單的設計上還有提供精靈
可以一步一步的依照畫面的指示完成使用者的介面

話說回來
我在回應第一篇文章的時候
真的沒有顧慮到Leon兄所說的問題

這樣說好了
我是一個喜歡找捷徑的人
每個問題都會有其最完美的解決方法
有時在尋找最好的方法所花費的時間
就足以讓你解決你的問題
那為何不先解決眼前的問題,再來找找有沒有更有效的方法呢?
回覆
台灣水電工

題外話....
貴公司的螢幕一定很大~~ ^^
回覆
會員

引用:
最初由 沙拉油 發表
題外話....
貴公司的螢幕一定很大~~ ^^
啥米意思~~~!?看嚨嘸...
p.s.我素學生
回覆
Take it easy~

我想沙兄是指kankan的範例檔裡面..
那個自訂表單真是大的可以~
所以猜想他們公司的螢幕一定很大!
..沒錯吧? e_e

回覆
台灣水電工

Oyazi兄您好!
小弟指的的確如Leon Chou前輩所說的。
回覆
會員
哈哈
引用:
最初由 沙拉油 發表
Oyazi兄您好!
小弟指的的確如Leon Chou前輩所說的。
大家都猜錯了, 我只不過將解析度調高至1024X768....嘻嘻
我的螢幕都只不過是15"罷了

回覆







 XML   RSS 2.0   RSS 
本站使用 vBulletin 合法版權程式
站務信箱 : [email protected]

本論壇所有文章僅代表留言者個人意見,並不代表本站之立場,討論區以「即時留言」方式運作,故無法完全監察所有即時留言,若您發現文章可能有異議,請 email :[email protected] 處理。