Sö dông
Visual Data Manager cña Visual Basic 5.0
Xem bai viet bang font Unicode
PCWorld VN 1/99
Khi sö dông Visual Basic (VBasic), ®iÒu khiÕn b¹n hµi lßng cã lÏ lµ sè lîng "®å nghÒ" dåi dµo cña nã trong Tool Box. B¹n ®ang thiÕt kÕ mét form cho øng dông cã xö lý ®Õn c¬ së d÷ liÖu vµ ®ang ph©n v©n sÏ ®Æt vµo ®Êy Data control hay DBGrid? Cha hÕt, b¹n cÇn nh÷ng thao t¸c nµo trªn form ®Ó quyÕt ®Þnh sÏ cã bao nhiªu nót lÖnh? Muèn cã nhiÒu thao t¸c, ¾t ph¶i cÇn cµng nhiÒu nót lÖnh mµ viÖc lËp tr×nh cho c¸c nót lÖnh cã khi kh«ng ®¬n gi¶n. VBasic cã tiÖn Ých hç trî trong trêng hîp b¹n cÇn mét form cã kh¶ n¨ng duyÖt tõng record trong mét Table cïng víi nh÷ng thao t¸c thªm, xãa, söa, di chuyÓn, dß t×m vµ xÕp thø tù. DÜ nhiªn, tiÖn Ých Êy còng tù ®éng ph¸t sinh m· lÖnh cho c¸c thao t¸c. §ã lµ tr×nh Data Manager vèn ®îc xem lµ "trÞ gi¸ gia t¨ng" cã s½n trong VBasic 4.0. Nhng kÓ tõ phiªn b¶n VBasic 5.0, tr×nh tiÖn Ých Êy ®îc "lét x¸c" hoµn toµn vµ gäi b»ng tªn míi lµ Visual Data Manager (VisData).
Víi chøc n¨ng nãi trªn, tiÖn Ých nµy kh¸c víi hÖ Microsoft Access ë chç nã cho phÐp b¹n t¹o bÊt cø CSDL nµo: Access, dBase, FoxPro hay Paradox. Vµ v× ®ã lµ tr×nh qu¶n trÞ d÷ liÖu nªn VisData s½n lßng chÊp nhËn nh÷ng chØ thÞ SQL nÕu b¹n muèn cã c¸c queries trong CSDL. NÕu ®ã vÉn cha ph¶i lµ lý do ®Ó b¹n sö dông VisData, th× h·y tëng tîng b¹n ®ang viÕt mét øng dông b»ng VBasic, nhng còng cÇn ®Õn nh÷ng th«ng tin vÒ mét CSDL nµo ®ã b»ng c¸ch sö dông MS-Access ë chÕ ®é Inactive Window, b¹n cã tin r»ng tèc ®é m¸y cña b¹n sÏ chËm l¹i kh«ng? Vµ nÕu VBasic cña b¹n còng ®ang cÇn ®Õn CSDL mµ MS-Access ®ang më th× sao? H¼n b¹n ph¶i ®ãng CSDL ®ã trong MS-Access. Duy tr× mét cöa sæ MS-Access trèng rçng trong chÕ ®é Inactive lµ mét sù phÝ ph¹m tµi nguyªn cña m¸y vµ thêi gian cña b¹n. B¹n cã s½n lßng "xµi sang" nh÷ng thø ®ã kh«ng?
VisData cßn cã nh÷ng chøc n¨ng liªn quan ®Õn viÖc sö dông CSDL ph©n t¸n. NghÜa lµ mét CSDL dïng trong m«i trêng m¹ng. Tuy nhiªn trong bµi nµy, chóng ta chØ xÐt ®Õn nh÷ng chøc n¨ng cña nã trªn m¸y ®¬n.
Tõ trong menu chÝnh cña VBasic, b¹n cã thÓ gäi sö dông VisData b»ng lÖnh: Add-Ins, Visual Data Manager. C©y lÖnh m« t¶ qua H×nh 1.

H×nh 1. LÖnh gäi VisData
Sau ®ã cöa sæ VisData xuÊt hiÖn trªn mÆt tríc cña cöa sæ VBasic nh H×nh 2.

H×nh 2. Cöa sæ VisData
Menu vµ thanh c«ng cô cña VisData t¬ng ®èi ®¬n gi¶n. Menu File gåm nh÷ng lÖnh liªn quan ®Õn më/t¹o lËp, b¶o tr× CSDL. Menu Utilities ph¶n ¸nh hai tiÖn Ých quan träng lµ tr×nh Query Builder gióp x©y dùng SQL trùc quan vµ bé Data Form Designer gióp tù ®éng t¹o form nÕu b¹n ®ang dïng VBasic vµ muèn VisData hç trî t¹o form ®Ó xö lý d÷ liÖu trong table. C¸c nót c«ng cô chia thµnh ba nhãm. Nhãm thø nhÊt gióp ngêi sö dông x¸c ®Þnh xem m×nh sÏ më/t¹o mét CSDL theo kiÓu nµo trong nh÷ng kiÓu Tableset, Dynaset, hay Snapshot. Nhãm nót c«ng cô thø hai ®îc dïng khi b¹n muèn t¹o mét form vµ trong form ®ã sÏ ®Æt mét Data control hay DBGrid control. Nhãm nót c«ng cô thø ba dµnh cho nh÷ng trêng hîp dïng ®Õn CSDL ph©n t¸n. Trong VisData cã thÓ hiÓn thÞ hai cöa sæ Database Windows vµ SQL Statement.
§èi víi mét CSDL ®· cã s½n, tríc khi më b¹n h·y x¸c ®Þnh VisData sÏ më nã theo kiÓu nµo trong nh÷ng kiÓu Tableset, Dynaset, hay Snapshot. Nh÷ng nót c«ng cô cho trong H×nh 3 cho biÕt nót nµo gióp b¹n lµm viÖc ®ã. B¹n sÏ dïng lÖnh File.Open Database ®Ó më CSDL hay lÖnh File.New nÕu muèn t¹o mét CSDL míi.

H×nh 3. Quy ®Þnh kiÓu CSDL sÏ më
H×nh 4 m« t¶ c©y lÖnh cho thao t¸c nµy.

H×nh 4. C©y lÖnh më/t¹o CSDL
Trêng hîp muèn t¹o CSDL FoxPro, b¹n ph¶i khai b¸o ®êng dÉn cho CSDL sÏ t¹o trong hép tho¹i nh VisData tr×nh bµy ë H×nh 5.

H×nh 5. Khai b¸o ®êng dÉn khi t¹o CSDL FoxPro
NÕu muèn t¹o CSDL .MDB cña MS-Access, b¹n sÏ khai b¸o tªn cña CSDL trong hép tho¹i nh H×nh 6.

H×nh 6. T¹o CSDL .MDB cña MS-Access
Gi¶ sö b¹n muèn t¹o mét CSDL díi format cña Access 7.0 cã tªn magazin.mdb trong ®Üa D:\, lóc ®ã vïng lµm viÖc cña VisData sÏ cã hai cöa sæ Database Window vµ SQL Statement. Cöa sæ Database Window lµ n¬i thÓ hiÖn vÒ c¸c properties cña b¶n th©n CSDL nµy vµ cña nh÷ng ®èi tîng trong CSDL nh Table, Query, ... Nh÷ng properties nµy ®îc thÓ hiÖn díi d¹ng c©y th môc. Cöa sæ SQL Statement lµ n¬i ®Ó ph¸t nh÷ng chØ thÞ SQL víi nh÷ng nót lÖnh Execute thi hµnh chØ thÞ, nót lÖnh Clear ®Ó xãa chØ thÞ vµ nót lÖnh Save ®Ó lu chØ thÞ SQL hiÖn hµnh díi mét tªn, tªn ®ã ®îc gäi lµ QueryDef. H×nh 7 minh häa nh÷ng m« t¶ trªn.

H×nh 7. Cöa sæ Database vµ SQL Statement
B¹n cã thÓ t¹o mét table b»ng lÖnh SQL ph¸t ra trong cöa sæ SQL Statement theo d¹ng lÖnh: CREATE TABLE Table (Field1, Type(Size),...) vµ sau ®ã bÊm vµo nót lÖnh Execute ®Ó thi hµnh. VÝ dô muèn t¹o Table Writer cho CSDL magazin.mdb, b¹n cã thÓ nhËp vµo dßng lÖnh: Create Table Writer (writerid Text(5), Name Text(25), Title Text(32), ReceiveDate Date time)
B©y giê trªn mµn h×nh sÏ hái b¹n ®©y cã ph¶i lµ mét chØ thÞ PassThrough SQL kh«ng, b¹n nhí tr¶ lêi "No" v× mét chØ thÞ PassThrough SQL sÏ dµnh riªng cho ODBC xö lý. ë ®©y chóng ta cha bµn ®Õn ODBC lµ g×.
Víi mét table võa khai b¸o xong, b¹n cã muèn xem nh÷ng properties cña b¶ng nµy? H·y bÊm vµo dÊu Aµ+' kÕ bªn tªn cña b¶ng trong cöa sæ Database Window. B¹n muèn nhËp liÖu vµo b¶ng? H·y nhÊn ®óp vµo tªn cña b¶ng. Lóc ®ã mét bé duyÖt néi dung sÏ thÓ hiÖn díi d¹ng form nh trong H×nh 8.

H×nh 8. Form nhËp liÖu vµ duyÖt b¶ng Writer
C¸c nót lÖnh liªn quan ®Õn nh÷ng thao t¸c trªn record; c¸c hép Text box ®Ó nhËp néi dung cho tõng trêng vµ thanh trît ®Ó duyÖt néi dung tõng record.
Xin lu ý tïy b¹n ®ang më b¶ng theo kiÓu nµo trong nh÷ng kiÓu TableSet, DynaSet hay SnapShot vµ cã ®Æt Data Control vµo form hay kh«ng mµ h×nh thøc cña form nhËp liÖu cã thay ®æi ®«i chót vÒ c¸c nót lÖnh trong form. Nhng ®iÒu ®ã sÏ kh«ng lµm b¹n lóng tóng khi sö dông form. Díi ®©y, chóng t«i sÏ m« t¶ ®«i nÐt vÒ viÖc sö dông form trong trêng hîp më b¶ng theo kiÓu DynaSet vµ trong form kh«ng cã Data Control.
Sau khi ®· lµm xuÊt hiÖn form nhËp liÖu nh H×nh 8, h¼n b¹n còng muèn nhËp mét sè record ®Çu tiªn cho b¶ng. Form kh«ng cho phÐp b¹n nhËp néi dung c¸c trêng vµo hép text box. B¹n h·y bÊm chuét vµo nót lÖnh Add ®Ó b¾t ®Çu. H×nh 9 minh häa form nhËp liÖu.

H×nh 9. NhËp néi dung record
Khi nhËp xong, b¹n bÊm chuét vµo nót lÖnh Update ®Ó ghi nhËn hoÆc Cancel trong trêng hîp ngîc l¹i. §Ó chØnh söa néi dung record, dïng Edit; ®Ó lo¹i bá record hiÖn hµnh trong form, dïng Delete; ®Ó thay ®æi record hiÖn hµnh, dïng Move vµ cung cÊp ®é dêi tÝnh tõ record hiÖn hµnh. §é dêi lµ mét sè nguyªn d¬ng hay nguyªn ©m tïy theo b¹n muèn dêi vÒ híng ®Çu b¶ng hay cuèi b¶ng. B¹n cã muèn xÕp thø tù b¶ng theo mét trêng nµo ®ã kh«ng? ChØ cÇn nhÊn chuét vµo nót lÖnh Sort vµ khai b¸o tªn trêng mµ b¹n muèn dïng lµm kho¸. H×nh 10 lµ hép tho¹i mµ b¹n sÏ cung cÊp tªn khãa s¾p xÕp.

H×nh 10. Khai b¸o khãa s¾p xÕp cho b¶ng.
NÕu muèn dß t×m mét record nµo ®ã, thay v× sö dông thanh trît, b¹n dïng nót lÖnh Find vµ chän khãa dß t×m, chän to¸n tö vµ chän gi¸ trÞ cho khãa dß t×m. Víi nh÷ng record trïng khãa dß t×m th× sao? LiÖu VisData chØ cã kh¶ n¨ng t×m duy nhÊt mét record ®Çu tiªn trïng khãa? VisData chÊp nhËn dß t×m c¶ nh÷ng record trïng khãa kh¸c nÕu ë lÇn dß t×m sau b¹n chän nhiÖm ý Find Next. H×nh 11 minh häa c¸ch dïng lÖnh Find ®Ó dß t×m record liªn quan ®Õn t¸c gi¶ Knuth,D.

H×nh 11. Khai b¸o biÓu thøc dß t×m.
Cuèi cïng lµ thao t¸c läc nh÷ng record tháa m·n mét ®iÒu kiÖn cho tríc mµ víi nh÷ng b¹n quen dïng Fox th× ®ã lµ chØ thÞ SET FILTER. Ch¼ng h¹n, b¹n muèn läc tÊt c¶ nh÷ng record vÒ t¸c gi¶ Knuth,D., h·y nhÊn chuét vµo nót lÖnh Filter råi cung cÊp ®iÒu kiÖn läc record vµo hép tho¹i nh H×nh 12 chØ ra.

H×nh 12. Läc nh÷ng record theo mét ®iÒu kiÖn
VisData còng cã kh¶ n¨ng ch¹y nh÷ng chØ thÞ SQL nÕu b¹n nhËp dßng lÖnh vµo cöa sæ SQL Statement råi bÊm chuét vµo nót lÖnh Execute ®Ó thi hµnh. Khi cã hép tho¹i hái b¹n chØ thÞ SQL s¾p thi hµnh cã ph¶i lµ mét SQLPassThrough hay kh«ng, b¹n nhí chän "No". NÕu kh«ng bÞ b¾t lçi, Queries thu ®îc sÏ lµ mét form. §Ó lµm vÝ dô, b¹n thö më CSDL Biblio.mdb (lµ CSDL cµi ®Æt theo VBasic) b»ng lÖnh File.Open vµ ph¸t chØ thÞ chän tªn, ®Þa chØ, m· cña nh÷ng nhµ xuÊt b¶n cña thµnh phè New York. B¹n cã nhËp dßng lÖnh SELECT Name, Address, PubID FROM Publishers WHERE City="New York" hay kh«ng?
NÕu muèn thö c«ng cô t¹o Query, ch¼ng h¹n nh wizard, h·y dïng lÖnh Utility.Query Builder. B¹n muèn chän c¸c b¶ng vµ trêng cÇn cho Query, dÜ nhiªn ph¶i chän trong hai hép liÖt kª Tables vµ Fields to Show. §Ó cung cÊp ®iÒu kiÖn cÇn truy vÊn, b¹n cã thÓ dïng c¸c hép combo Field Name, Operator, Value. NÕu trong ®iÒu kiÖn cÇn nh÷ng to¸n tö And, Or b¹n dïng hai nót And into Criteria, vµ Or into Criteria.

H×nh 13. T¹o Query b»ng wizard th«ng qua Query Builder
Gi¶ sö trong mét CSDL míi, b¹n ®· t¹o mét b¶ng cã tªn Reader víi c¸c trêng ReaderID TEXT(5), Name TEXT(25), Address TEXT(255) vµ ®ang ®Þnh t¹o form nhËp record cho b¶ng nµy víi m· lÖnh b»ng VBasic. Tõ VisData, b¹n më CSDL ®ã, quyÕt ®Þnh sÏ më CSDL theo kiÓu nµo trong nh÷ng kiÓu TableSet, DynaSet hay SnapShot. Vµ b¹n sÏ ®Æt ®èi tîng Data Control hay DBGrid vµo trong form t¬ng lai. B¹n chän nh÷ng Ên ®Þnh ®ã b»ng nót c«ng cô nh m« t¶ ë H×nh 2. Sau ®ã b¹n sÏ lÊy lÖnh Utility. Data Form Designer. H×nh 14 cho thÊy nh÷ng g× b¹n ph¶i khai b¸o ®Ó t¹o lËp mét form: nhËp tªn cña table vµo hép RecordSource, nhËp tªn form vµo hép Form Name w/o Extension, vµ chän c¸c trêng mµ b¹n muèn thÓ hiÖn trong form. C¸c trêng nµy ®îc chän tõ hép list box Available Fields ®Ó chuyÓn vµo Include Fields. C«ng viÖc chÊm døt b»ng nót lÖnh Build the Form. B©y giê cã thÓ ®ãng VisData b»ng lÖnh File.Exit ®Ó trë vÒ VBasic. H¼n b¹n sÏ ng¹c nhiªn víi form míi t¹o víi nh÷ng chi tiÕt kh¸ chuyªn nghiÖp. ThÝch thó h¬n n÷a khi chuyÓn sang mµn h×nh Code, b¹n sÏ thÊy m· lÖnh ®· cã s½n.

H×nh 14. Hép tho¹i cña Data Form Designer
§Õn ®©y b¹n cã thÓ nãi g× vÒ phiªn b¶n míi cña VBasic? §¸ng ®Ó n©ng cÊp ph¶i kh«ng?
§oµn ThÞ Thóy 84/132 T«n ThÊt HiÖp, Q. 11, TP. HCM
PcLeHoan
1996 - 2002
Mirror :
http://www.pclehoan.com
Mirror :
http://www.lehoanpc.net
Mirror :
http://www.ktlehoan.com