999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人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 目標任務(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()。這樣,在建表信息準備好之后,點擊按鈕,即可生成建表語句。

3 擴展功能[4]

實際應(yīng)用中,數(shù)據(jù)庫字段常采用中文拼音首字母的縮寫表達。為實現(xiàn)這一功能,首先編寫提取單個漢字拼音首字母的函數(shù)。在GB2312標準字符集中,一級漢字按拼音字母順序排列的,因此可以分段來確定首字母。該字符集的區(qū)位碼經(jīng)過加20H和80H轉(zhuǎn)為內(nèi)碼[3],和VBA中ASC()函數(shù)值相匹配。內(nèi)碼與VBA的ASC()函數(shù)[5]值均以首個一級漢字的對應(yīng)值歸零為基準進行分段,結(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ù)類型、是否為空、主鍵標識等信息,然后點擊“Create SQL”,即可快速生成相應(yīng)的SQL語句,同時在a列生成表名和字段名,供進一步確認。

在實際應(yīng)用中,還可能需要的有:不同字段的中文名有可能對應(yīng)相同的字母組合,而數(shù)據(jù)庫不允許重名字段,因此腳本還需要增加檢測和處理功能;為使生成建表語句本格式更加規(guī)范,還可以采用space(n)函數(shù)在適當(dāng)?shù)奈恢锰砑涌崭瘢徽Z句的最后一行,還可以加一段拼接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
主站蜘蛛池模板: 激情视频综合网| 天堂va亚洲va欧美va国产| 超清无码熟妇人妻AV在线绿巨人| 中文精品久久久久国产网址 | a亚洲天堂| 国产欧美精品午夜在线播放| 99re66精品视频在线观看| 色哟哟国产成人精品| 久久久久久久97| 亚洲免费福利视频| 亚洲国产91人成在线| 欧美精品一区在线看| 亚洲高清国产拍精品26u| 日韩欧美在线观看| 丰满少妇αⅴ无码区| 亚洲欧洲免费视频| 国产精品99一区不卡| 亚洲一区二区日韩欧美gif| 波多野结衣第一页| 亚洲国产综合精品一区| 国产乱人免费视频| 日韩一区二区三免费高清| 人妻中文久热无码丝袜| 国产精品va| 东京热av无码电影一区二区| 情侣午夜国产在线一区无码| 日韩欧美国产精品| 真实国产乱子伦视频| 精品成人一区二区三区电影| 美女国产在线| 人妻丰满熟妇AV无码区| 精品国产成人高清在线| 亚洲 欧美 中文 AⅤ在线视频| 日韩天堂在线观看| 高清免费毛片| 日本亚洲国产一区二区三区| 国产啪在线91| 亚洲无码视频一区二区三区| 国产成人精品一区二区不卡| 欧美日韩专区| a免费毛片在线播放| 一级毛片中文字幕| 99在线视频精品| 国产精品视屏| 日韩美毛片| 欧美成人精品在线| 久久久久久高潮白浆| 久草中文网| 久久99国产乱子伦精品免| 久久久无码人妻精品无码| 中文毛片无遮挡播放免费| 亚洲AV一二三区无码AV蜜桃| 欧亚日韩Av| 国产福利微拍精品一区二区| 99伊人精品| 无码专区在线观看| 日韩久草视频| 国产一区二区精品高清在线观看| 中文一区二区视频| 亚洲视频四区| 国产导航在线| 亚洲三级视频在线观看| 国产精品久久久久久影院| 国产精品妖精视频| 久久综合成人| 日本高清免费不卡视频| 国产簧片免费在线播放| 免费A级毛片无码免费视频| 自偷自拍三级全三级视频| 国产精品白浆无码流出在线看| 亚洲无码91视频| 成年免费在线观看| 91精品综合| 国产色伊人| 亚洲成网777777国产精品| 国产成人高清在线精品| av在线人妻熟妇| 麻豆国产原创视频在线播放| 国产第一福利影院| 日本欧美中文字幕精品亚洲| 婷婷色中文网| 色婷婷亚洲十月十月色天|