亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        一種采用VBA編程簡化數(shù)據(jù)庫建表過程的方法

        2022-06-12 00:53:18
        關(guān)鍵詞:數(shù)據(jù)庫

        董 威

        (國家稅務(wù)總局蘇州市稅務(wù)局,江蘇 蘇州 215004)

        引言

        數(shù)據(jù)庫應(yīng)用已深入各個領(lǐng)域,數(shù)據(jù)的存儲、分析都離不開數(shù)據(jù)庫的支撐。將數(shù)據(jù)需求轉(zhuǎn)化為數(shù)據(jù)庫表,是每一個數(shù)據(jù)庫系統(tǒng)初期建設(shè)階段的必要工作。如果把建表所需要素按設(shè)定格式存放在表格中,那么可以用VBA實現(xiàn)一鍵生成建表語句。以下說明具體實現(xiàn)方法。

        1 整理建表必要信息[1]

        以O(shè)RACLE數(shù)據(jù)庫為例,將待建數(shù)據(jù)表要素按如表1的格式填寫。

        表1 建表基本信息

        2 編寫VBA腳本

        2.1 目標(biāo)任務(wù)[2]

        按表1的信息,需要生成的建表語句如下:

        1 create tablet_spkcb(

        2 sp_id cha(r6) not nul,

        3 spmc varchar2(200) not null,

        4 spsl number,

        5 lrsj date,

        6 lrr cha(r6)

        7 );

        8 comment on table is'商品庫存表';

        9 comment on column spkcb.sp_id is'商品_id';

        10 comment on column spkcb.spmc is'商品名稱';

        11 comment on column spkcb.spsl is'商品數(shù)量';

        12 comment on column spkcb.lrsj is'錄入時間';

        13 comment on column spkcb.lrr is'錄入人';

        14 alter table t_spkcb add constraint sp_id primary key(sp_id);

        其中1~7行為基本建表語句,第8行增加表名備注,第9~13行增加字段備注,第14行為生成主鍵的語句。

        2.2 腳本編寫[3]

        1)首先判斷表1使用的行數(shù),據(jù)此確定字段總數(shù);

        2)根據(jù)表1中的表名,拼接建表語句第1行;

        3)根據(jù)表1中的表名及備注拼接第8行增加備注;

        4)循環(huán)提取表1中4~8行信息:拼接9~13行字段備注語句;拼接2~7行建表基本語句,如果是末行加“);”

        5)根據(jù)表1中E列的星號*位置,拼接第14行生成主鍵

        按照以上思路,VBA腳本如下,其中vbCrLf為換行符,單引號后的楷體字為注釋。

        在建表界面插入表單控件按鈕,修改名稱為“Create SQL”,指定宏為CreateTable()。這樣,在建表信息準(zhǔn)備好之后,點擊按鈕,即可生成建表語句。

        3 擴展功能[4]

        實際應(yīng)用中,數(shù)據(jù)庫字段常采用中文拼音首字母的縮寫表達。為實現(xiàn)這一功能,首先編寫提取單個漢字拼音首字母的函數(shù)。在GB2312標(biāo)準(zhǔn)字符集中,一級漢字按拼音字母順序排列的,因此可以分段來確定首字母。該字符集的區(qū)位碼經(jīng)過加20H和80H轉(zhuǎn)為內(nèi)碼[3],和VBA中ASC()函數(shù)值相匹配。內(nèi)碼與VBA的ASC()函數(shù)[5]值均以首個一級漢字的對應(yīng)值歸零為基準(zhǔn)進行分段,結(jié)果一致。相關(guān)的轉(zhuǎn)換過程及公式示意如圖1所示。

        圖1 漢字編碼轉(zhuǎn)換過程示意圖

        提取拼音首字母的函數(shù)腳本如下:

        這段代碼以GB2312字符集[2]為依據(jù),可以識別3 755個一級漢字的拼音首字母。如果遇到數(shù)字、字母和下劃線“_”則保持不變,二級漢字及其他字符均不輸出。在此基礎(chǔ)上,如果是多個漢字,則循環(huán)拼接,即可完成多個漢字的首字母拼音轉(zhuǎn)換。腳本如下:

        需要說明的是,EXCEL單元格中不顯示的特殊字符有可能影響轉(zhuǎn)換結(jié)果。所以這段代碼進行了去空格和去換行符的處理,如遇到其他字符也需要類似操作。

        這種方式下,表1的信息中不再需要填寫a列的字段名,只需要將字段中文名填入c列,a列通過函數(shù)py()自c列獲取,即在CreateTable()腳本里for循環(huán)體中,將第2句:

        修改為兩句:

        表名也類似,不過增加“t_”以符合表名命名規(guī)則。在CreateTable()腳本中,將第3句:tab_name=Range("a2")

        修改為兩句:

        這樣,表1只需填寫表中文名、字段中文名、字段數(shù)據(jù)類型、是否為空、主鍵標(biāo)識等信息,然后點擊“Create SQL”,即可快速生成相應(yīng)的SQL語句,同時在a列生成表名和字段名,供進一步確認。

        在實際應(yīng)用中,還可能需要的有:不同字段的中文名有可能對應(yīng)相同的字母組合,而數(shù)據(jù)庫不允許重名字段,因此腳本還需要增加檢測和處理功能;為使生成建表語句本格式更加規(guī)范,還可以采用space(n)函數(shù)在適當(dāng)?shù)奈恢锰砑涌崭?;語句的最后一行,還可以加一段拼接select或desc語句的腳本,確認新表創(chuàng)建成功;語句第一行增加drop table語句,以適應(yīng)重復(fù)建表。這些都屬于應(yīng)用中的細節(jié),此處不再贅述。

        以上,是利用VBA快速生成建表語句的方法。與此類似,如果需要將數(shù)據(jù)批量插入數(shù)據(jù)表,或者補充大量表及字段備注等語句,也可參照以上思路實現(xiàn)。

        猜你喜歡
        數(shù)據(jù)庫
        數(shù)據(jù)庫
        財經(jīng)(2017年15期)2017-07-03 22:40:49
        數(shù)據(jù)庫
        財經(jīng)(2017年2期)2017-03-10 14:35:35
        兩種新的非確定數(shù)據(jù)庫上的Top-K查詢
        數(shù)據(jù)庫
        財經(jīng)(2016年15期)2016-06-03 07:38:02
        數(shù)據(jù)庫
        財經(jīng)(2016年3期)2016-03-07 07:44:46
        數(shù)據(jù)庫
        財經(jīng)(2016年6期)2016-02-24 07:41:51
        數(shù)據(jù)庫
        財經(jīng)(2015年3期)2015-06-09 17:41:31
        數(shù)據(jù)庫
        財經(jīng)(2014年21期)2014-08-18 01:50:18
        數(shù)據(jù)庫
        財經(jīng)(2014年6期)2014-03-12 08:28:19
        數(shù)據(jù)庫
        財經(jīng)(2013年6期)2013-04-29 17:59:30
        亚洲AⅤ永久无码精品AA| 少妇夜夜春夜夜爽试看视频 | 亚洲综合久久精品少妇av| 亚洲综合网国产精品一区| 蜜臀av 国内精品久久久| 精品免费人伦一区二区三区蜜桃| 国产三级国产精品国产专区| 少妇人妻字幕精品毛片专区| 亚洲国产天堂久久综合| 亚洲欧洲高潮| 亚洲免费视频一区二区三区| 91偷拍与自偷拍亚洲精品86 | 日韩亚洲av无码一区二区不卡 | 蜜臀久久99精品久久久久久小说| 亚洲地区一区二区三区| 国产福利一区二区三区在线观看 | 天天躁夜夜躁av天天爽| 欧美人与动牲交a欧美精品| 青春草在线视频精品| 91快射视频在线观看| 深夜福利啪啪片| 无码人妻一区二区三区免费| 激,情四虎欧美视频图片| 日本亚洲系列中文字幕| 男女啪动最猛动态图| 国产啪精品视频网站丝袜| 国产大片在线观看三级| 亚洲精品国产第一区二区| 成人h视频在线观看| 免费国产一级片内射老| 大尺度极品粉嫩嫩模免费| 国产精品无码v在线观看| 青青青爽国产在线视频| 日韩一区二区三区天堂| 无码人妻久久久一区二区三区 | 日本成人久久| 精品国产夫妻自拍av| 亚洲线精品一区二区三区| 无码人妻精品一区二区三区在线| 成美女黄网站18禁免费| 中文字幕女优av在线|