999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

VBA與SQL在數(shù)據(jù)庫與財(cái)務(wù)報(bào)表中的應(yīng)用

2024-04-11 00:53:41朱家銀
中國管理信息化 2024年1期
關(guān)鍵詞:財(cái)務(wù)報(bào)表數(shù)據(jù)庫

[摘 要]財(cái)務(wù)人員在跨賬套查詢科目余額表等財(cái)務(wù)數(shù)據(jù)時(shí),需要使用財(cái)務(wù)軟件頻繁切換登錄各公司賬套,進(jìn)行一系列重復(fù)而大量的操作。這種查詢操作非常枯燥且耗費(fèi)時(shí)間。運(yùn)用VBA與SQL語言并結(jié)合Excel的窗體與控件的功能進(jìn)行程序設(shè)計(jì),可以讓財(cái)務(wù)人員僅通過一個(gè)Excel文檔就直接從財(cái)務(wù)數(shù)據(jù)庫中快捷獲得科目余額表等財(cái)務(wù)數(shù)據(jù)。整個(gè)程序操作靈活、人機(jī)交互友好。該程序?qū)崿F(xiàn)了跨賬套智能、快捷批量查詢的功能,可以大幅節(jié)省工作時(shí)間,提高工作效率。

[關(guān)鍵詞]VBA;SQL;數(shù)據(jù)庫;財(cái)務(wù)賬套;科目余額表;財(cái)務(wù)報(bào)表

1? ? ?問題的提出

很多公司在發(fā)展過程中,隨著業(yè)務(wù)規(guī)模的擴(kuò)大,會(huì)相繼設(shè)立或并購很多分子公司,導(dǎo)致該公司財(cái)務(wù)人員會(huì)面對(duì)很多分子公司的賬套。財(cái)務(wù)人員在日常的工作中需要經(jīng)常在各分子公司的賬套查詢一些數(shù)據(jù),如科目余額表等。查詢一次科目余額表,就需要切換登錄公司賬套,選定會(huì)計(jì)期間與會(huì)計(jì)科目等參數(shù)、執(zhí)行會(huì)計(jì)軟件查詢,輸出結(jié)果到Excel并重命名等一系列操作。受網(wǎng)絡(luò)速度、財(cái)務(wù)軟件運(yùn)行速度、Excel軟件運(yùn)行速度、計(jì)算機(jī)反應(yīng)速度等因素影響,這一套組合操作流程大約需要5分鐘時(shí)間。以此類推,若需查詢輸出100家公司的科目余額表,則至少需要持續(xù)工作8個(gè)多小時(shí),整個(gè)過程顯得特別重復(fù)枯燥又相當(dāng)耗費(fèi)時(shí)間。

鑒于財(cái)務(wù)人員在日常工作中使用Excel較多,本文嘗試運(yùn)用Excel的VBA功能并結(jié)合SQL語言來設(shè)計(jì)一套程序,以便財(cái)務(wù)人員在不需要另外安裝程序軟件和插件,并且不需要掌握很多計(jì)算機(jī)專業(yè)知識(shí)與技能的情況下,能夠方便快捷地從財(cái)務(wù)軟件的數(shù)據(jù)庫中獲取所需要的數(shù)據(jù)。

2? ? ?程序設(shè)計(jì)思路

科目余額表是企業(yè)財(cái)務(wù)管理中一種常用的、不可或缺的工具。通過科目余額表,可以分析填列會(huì)計(jì)報(bào)表,如資產(chǎn)負(fù)債表、利潤(rùn)表及報(bào)表附注等;可以幫助企業(yè)實(shí)時(shí)了解最新的財(cái)務(wù)狀況、盈虧情況;可以對(duì)企業(yè)的運(yùn)營(yíng)狀況及時(shí)進(jìn)行分析和比較,找出存在的問題和風(fēng)險(xiǎn)。

目前國內(nèi)主流的財(cái)務(wù)軟件的數(shù)據(jù)管理是通過數(shù)據(jù)庫來支撐的,使用的數(shù)據(jù)庫主要有SQL Server、MySQL、Access、Oracle等。財(cái)務(wù)軟件是一個(gè)平臺(tái),但其不存儲(chǔ)數(shù)據(jù),數(shù)據(jù)是存放在上述數(shù)據(jù)庫中的。在這些財(cái)務(wù)軟件所使用的數(shù)據(jù)庫中,并不存放任意會(huì)計(jì)期間的科目余額表,而是存放一個(gè)個(gè)單獨(dú)月份的科目總賬表。財(cái)務(wù)軟件所調(diào)取出來的科目余額表是通過科目總賬及其他相關(guān)財(cái)務(wù)數(shù)據(jù)加工整理后展現(xiàn)出來的。以銀行存款、未分配利潤(rùn)、實(shí)收資本3個(gè)科目為例,2023年1—6月每月的科目總賬如表1所示。

我們所需要的2023年1—6月科目余額表的格式如表2所示。

通過分析上述兩表的異同點(diǎn),我們發(fā)現(xiàn)可以進(jìn)行這些操作:期初方向、期末方向可以用金額的正負(fù)數(shù)來表示,如期初方向?yàn)榻瑁浣痤~為正數(shù);期初方向?yàn)橘J,則金額為負(fù)數(shù)。期末方向與金額同理。如此設(shè)定有利于進(jìn)行程序設(shè)計(jì)和計(jì)算。同時(shí)還有以下發(fā)現(xiàn):

a. 可以選取2023年1月科目總賬的期初借方金額作為2023年1—6月科目余額表的期初借方金額;

b. 可以選取2023年1月科目總賬的期初貸方金額作為2023年1—6月科目余額表的期初貸方金額;

c. 可以選取2023年1—6月科目總賬的每個(gè)會(huì)計(jì)科目6個(gè)月的借方金額、貸方金額的累計(jì)相加之和分別作為2023年1—6月科目余額表的本期借方金額、本期貸方金額;

d. 可以選取2023年6月科目總賬的期末借方金額作為2023年1—6月科目余額表的期末借方金額。

e. 可以選取2023年6月科目總賬的期末貸方金額作為2023年1—6月科目余額表的期末貸方金額。

按照上述思路,通過在數(shù)據(jù)庫中用SQL的select語句選取5項(xiàng)數(shù)據(jù)即可獲得2023年1—6月科目余額表的各項(xiàng)關(guān)鍵內(nèi)容,然后通過數(shù)據(jù)透視表等功能加工整理表格,即可完成科目余額表的編制。

3? ? ?VBA與SQL語言的程序設(shè)計(jì)

3.1? ?了解會(huì)計(jì)軟件的在數(shù)據(jù)庫中的基本情況

通過向公司IT網(wǎng)絡(luò)運(yùn)維人員詢問可以得到財(cái)務(wù)數(shù)據(jù)庫sa賬號(hào)的密碼、數(shù)據(jù)庫的IP地址等信息。通過查詢會(huì)計(jì)軟件的相關(guān)說明書,并實(shí)際打開數(shù)據(jù)庫查詢,可以得知會(huì)計(jì)賬套在數(shù)據(jù)庫中的名稱,科目總賬在數(shù)據(jù)庫中的表名,科目總賬的科目編碼、期初借方金額、期初貸方金額、本期借方金額、本期貸方金額、期末借方金額、期末貸方金額等項(xiàng)目在數(shù)據(jù)庫中的構(gòu)成、字段名稱等一系列信息。

由于不同會(huì)計(jì)軟件以及相同會(huì)計(jì)軟件的不同版本在數(shù)據(jù)庫中存放的表名和字段名都不相同,因此本文謹(jǐn)以科目余額表中各要素的中文名直接表示這些表名和字段名,以便于閱讀和理解。實(shí)際運(yùn)行中需要使用數(shù)據(jù)庫中實(shí)際查詢到的英文字母、數(shù)字、特殊符號(hào)等組合所代表的表名、字段名。

3.2? ? ?VBA及SQL語言程序設(shè)計(jì)的主要步驟與內(nèi)容

VBA是visual Basic for application的縮寫,是一種面向?qū)ο蟮木幊陶Z言,只需要打開任意一個(gè)Excel文件,在鍵盤上同時(shí)按下ALT+F11,即可快捷打開VBA程序的編輯界面,也可以通過窗口操作等方法打開。

SQL是Structured Query Language的縮寫,是一種專門用來與數(shù)據(jù)庫溝通的語言[1]。SQL的功能很強(qiáng)大,使用SQL命令即可以對(duì)數(shù)據(jù)庫進(jìn)行數(shù)據(jù)查詢。

第一步:定義賬套在數(shù)據(jù)庫中的各類變量。

將會(huì)計(jì)軟件在財(cái)務(wù)數(shù)據(jù)庫的中各種信息賦予VBA程序的自定義變量,其主要程序代碼如下:

Dim MySQL$, IPfwq$,AccountSet$, MimaSQL$

Dim i&, j&, hs&, SQLArry(5) As String

IPfwq = "192.***.***.***" '(賬套所在數(shù)據(jù)庫的IP地址,“*” 的地方需要用公司的實(shí)際數(shù)據(jù)代替,下同)

AccountSet = "ACC *******" '(財(cái)務(wù)數(shù)據(jù)庫中的賬套名稱)

MimaSQL = "P********* " '(財(cái)務(wù)數(shù)據(jù)庫賬號(hào)sa的密碼)

hs = TotalArrows '(獲取excel現(xiàn)有數(shù)據(jù)的行數(shù)的自定義函數(shù))

第二步:編寫SQL查詢命令的語句。

在自定義的文本數(shù)組SQLArry(5)中寫入5條SQL命令語句,方便后續(xù)循環(huán)導(dǎo)出所需要的2023年1—6月科目余額表的各項(xiàng)數(shù)據(jù),其主要程序代碼分別如下:

(1)從數(shù)據(jù)庫中獲取2023年1—6月科目余額表的期初借方金額的SQL語言命令為:

SQLArry(1) = "select (月份), ''''''+科目編碼, (期初金額), null as 借方金額, null as 貸方金額, null as 期末金額 from 科目總賬 where 月份 ='202201' and 期初金額方向='借' order by ''''''+科目編碼"

(2)從數(shù)據(jù)庫中獲取2023年1—6月科目余額表的期初貸方金額的SQL語言命令為:

SQLArry(2) = "select (月份), ''''''+科目編碼, (期初金額)*(-1), null as 借方金額, null as 貸方金額, null as 期末金額 from 科目總賬表名 where 月份 ='202201' and 期初金額方向='貸' order by ''''''+科目編碼"

(3)從數(shù)據(jù)庫中獲取2023年1—6月科目余額表的本期借方金額與本期貸方金額的SQL語言命令為:

SQLArry(3) = "select 0, ''''''+科目編碼, null, sum

(借方金額) as 借方金額, sum (貸方金額) as 貸方金額, null as 期末金額 from 科目總賬表名 where 月份? between '202201' and '202209' group by ''''''+科目編碼 order by ''''''+科目編碼"

(4)從數(shù)據(jù)庫中獲取2023年1—6月科目余額表的期末借方金額的SQL語言命令為:

SQLArry(4) = "select (月份), ''''''+科目編碼, null, null as 借方金額, null as 貸方金額, sum(期末金額) as 期末金額 from 科目總賬表名 where 月份 ='202209' and 期末方向='借' order by ''''''+科目編碼"

(5)從數(shù)據(jù)庫中獲取2023年1—6月科目余額表期末貸方金額的SQL語言命令為:

SQLArry(5) = "select (月份), ''''''+科目編碼, null, null as 借方金額, null as 貸方金額, sum(期末金額)*(-1) as 期末金額 from 科目總賬表名 where 月份 ='202209' and 期末方向='貸' order by ''''''+科目編碼"

第三步:使用ADO建立 SQL Server數(shù)據(jù)庫與Excel工作簿之間的連接。

ADO是Active Data Object的縮寫,它是一個(gè)訪問數(shù)據(jù)庫的編程接口[2]。在使用ADO的時(shí)候,需要先引用ADO對(duì)象庫,在VBA程序編輯窗口打開“工具”—“引用”,勾選上Microsoft ActiveX Data Objects 2.* library。2.* 是版本號(hào),實(shí)際操作中根據(jù)自己計(jì)算機(jī)的顯示的情況予以勾選。

VBA中可以使用如連接(Connection)、記錄集(Recordset)等ADO對(duì)象來查詢滿足條件的數(shù)據(jù),其主要程序代碼如下:

Dim myCnn As New ADODB.Connection

Dim myRest As ADODB.Recordset

Set myRest = New ADODB.Recordset

With myCnn

.Provider = "SQLOLEDB"

.ConnectionString = "Server=" & IPfwq & ";Database="

& AccountSet & ";Uid=sa;Pwd=" & MimaSQL

.Open

End With

第四步:循環(huán)程序執(zhí)行SQL 的Select命令提取數(shù)據(jù)。

通過運(yùn)行程序執(zhí)行SQL命令,從數(shù)據(jù)庫導(dǎo)出所需要的2023年1—6月科目余額表的各項(xiàng)內(nèi)容,在Excel文件里新建一個(gè)“取數(shù)”的sheet,用于接收上述導(dǎo)出的數(shù)據(jù),其主要程序代碼如下:

For j = 1 To 5

mySQL = SQLArry(j)

Set myRest = New ADODB.Recordset

myRest.Open mySQL, myCnn, adOpenStatic, adLockReadOnly

hs = TotalArrows

Sheets("取數(shù)").Cells(1+hs, 1). CopyFrom

Recordset myRest

Next j

運(yùn)行上述程序,可以導(dǎo)出2023年1—6月的科目總賬所需要的會(huì)計(jì)期間、科目代碼、期初金額、本期借方金額、本期貸方金額、期末金額等6項(xiàng)數(shù)據(jù),科目名稱并不存放在科目總賬里,需要另外調(diào)取數(shù)據(jù)然后匹配出來。此處為方便閱讀理解將其展現(xiàn)出來。導(dǎo)出數(shù)據(jù)的形式如表3所示。

第五步:創(chuàng)建透視表,將從財(cái)務(wù)數(shù)據(jù)庫中提取的數(shù)據(jù)匯總整理。

從表3可以看出,導(dǎo)出的2023年1—6月的科目總賬,其期初金額、本期借方金額、本期貸方金額、期末金額等數(shù)據(jù)的形式類似一個(gè)分塊對(duì)角矩陣,不便于數(shù)據(jù)分析,因此需要運(yùn)用數(shù)據(jù)透視表進(jìn)行匯總整理。

若在Excel里通過手工方式一步步操作插入數(shù)據(jù)透視表,雖然也比較快捷,但也需要耗時(shí)約1分鐘才能設(shè)置好,而通過VBA程序制作的數(shù)據(jù)透視表對(duì)上述第四步導(dǎo)出的數(shù)據(jù)進(jìn)行匯總與整理,則很迅速。運(yùn)行上述程序,然后稍加調(diào)整后即可制作完成如表2所示格式的科目余額表。

上述五步所編寫的VBA程序雖然篇幅較多,但提取一家公司的科目余額表整個(gè)程序運(yùn)行的耗時(shí)只需大約3秒的時(shí)間。

4? ? ?運(yùn)用窗體與控件進(jìn)行批量查詢

為便于操作和執(zhí)行上述VBA程序,人與計(jì)算機(jī)友好地交互信息,可以在Excel中創(chuàng)建一些用戶窗體來執(zhí)行上述程序。窗體和控件是Excel VBA中最重要的對(duì)象,是構(gòu)成應(yīng)用程序界面的基本模塊[3]。在窗體中使用合理恰當(dāng)?shù)母鞣N控件來定義上述程序中的變量、設(shè)置查詢條件,就可以為財(cái)務(wù)人員提供一些美觀、友好的人機(jī)交互的界面。財(cái)務(wù)人員只需通過點(diǎn)擊窗體中的相關(guān)按鈕和控件,就可從數(shù)據(jù)庫中批量獲取所需要的任意選定的單一或多個(gè)公司的科目余額表。窗體和控件的設(shè)計(jì)樣式如圖1所示。

將各個(gè)公司的賬套在數(shù)據(jù)庫里賬套名、IP地址、sa密碼等參數(shù)賦予圖1中的控件以后,通過逐一點(diǎn)擊圖1中窗體上的控件,即可以選擇好所需要的任意一個(gè)或一批公司的財(cái)務(wù)賬套,為下一步工作做好準(zhǔn)備。

在財(cái)務(wù)人員日常工作中,需要調(diào)取不僅有科目余額表,還有記賬憑證、明細(xì)賬、賬齡分析表、會(huì)計(jì)報(bào)表等一系列相關(guān)的報(bào)表。將這些報(bào)表的所需要的相關(guān)程序分別賦予一個(gè)命名為“會(huì)計(jì)報(bào)表選擇”窗體中的每一個(gè)控件。點(diǎn)擊“會(huì)計(jì)報(bào)表選擇”窗體中的科目余額表的控件,即可以將與科目余額表相關(guān)的程序調(diào)入準(zhǔn)備好,為下一步工作做好準(zhǔn)備。

將科目余額表所需要的會(huì)計(jì)期間、會(huì)計(jì)科目范圍、是否選擇未記賬憑證等自定義的需求賦予圖2窗體中的控件。通過點(diǎn)擊圖2窗體中的各個(gè)控件,即可以通過對(duì)話框輸入所需要的會(huì)計(jì)期間以及特定需要的內(nèi)容。

上述窗體的控件點(diǎn)擊、選擇完畢之后,即可開始批量查詢?nèi)我庖粋€(gè)或多個(gè)公司的科目余額表及相關(guān)報(bào)表。為防止下一個(gè)公司的數(shù)據(jù)將前一個(gè)的數(shù)據(jù)覆蓋,需要將前述“取數(shù)”的sheet里已經(jīng)整理好的科目余額表等數(shù)據(jù)復(fù)制到一個(gè)專門的“科目余額表”sheet里,注意要從已有數(shù)據(jù)的最后一行開始粘貼。

按1個(gè)公司科目余額表耗時(shí)3秒計(jì)算,批量查詢100個(gè)公司的科目余額表只需要約5分鐘,相比手工登錄財(cái)務(wù)賬套逐一查詢100家公司的科目余額表所需要的8個(gè)多小時(shí),提取財(cái)務(wù)數(shù)據(jù)的速度提高了大約100倍。

5? ? ?結(jié)束語

本文以科目余額表為例,運(yùn)用Excel的VBA與SQL語言并結(jié)合窗體、控件功能進(jìn)行程序設(shè)計(jì),能方便快捷地從數(shù)據(jù)庫中批量提取所需要的各公司的科目余額表等財(cái)務(wù)數(shù)據(jù)。整個(gè)操作過程靈活、人機(jī)交互友好,能夠?qū)崿F(xiàn)跨賬套進(jìn)行智能化的批量查詢,從而為財(cái)務(wù)人員的賬務(wù)查詢、數(shù)據(jù)分析、合并報(bào)表等工作提供技術(shù)支持,并節(jié)省大量時(shí)間,大幅提高工作效率。

主要參考文獻(xiàn)

[1]Ben Forta. SQL必知必會(huì)[M].第4版.鐘鳴,劉曉霞,譯.北京:人民郵電出版社,2013.

[2]韓小良. Excel VBA+SQL數(shù)據(jù)管理與應(yīng)用模板[M].北京:中國水利水電出版社,2019.

[3]韓小良. Excel VBA快速入門數(shù)據(jù)處理實(shí)戰(zhàn)技巧精粹[M].北京:中國水利水電出版社,2019.

[收稿日期]2023-07-05

[作者簡(jiǎn)介]朱家銀(1982— ),男,湖北黃梅人,碩士,注冊(cè)會(huì)計(jì)師、中級(jí)會(huì)計(jì)師、稅務(wù)師,主要研究方向:財(cái)務(wù)報(bào)告、信息披露、財(cái)務(wù)信息化。

猜你喜歡
財(cái)務(wù)報(bào)表數(shù)據(jù)庫
新會(huì)計(jì)準(zhǔn)則下企業(yè)合并財(cái)務(wù)報(bào)表的研究
我國財(cái)務(wù)報(bào)表審計(jì)與內(nèi)部控制審計(jì)的整合研究
數(shù)據(jù)庫
數(shù)據(jù)庫
數(shù)據(jù)庫
內(nèi)部控制審計(jì)對(duì)財(cái)務(wù)報(bào)表信息質(zhì)量的影響
數(shù)據(jù)庫
數(shù)據(jù)庫
新合并財(cái)務(wù)報(bào)表準(zhǔn)則合并范圍的國際比較
日本外匯資金特別會(huì)計(jì)及財(cái)務(wù)報(bào)表評(píng)析
主站蜘蛛池模板: 欧美午夜一区| 特级做a爰片毛片免费69| 国产一区在线视频观看| 欧美一区二区福利视频| 婷婷六月天激情| 日韩区欧美国产区在线观看| 丁香婷婷激情网| 日韩中文字幕亚洲无线码| 一本综合久久| 精品视频第一页| 欧美区国产区| 亚洲天堂网视频| 亚洲日韩日本中文在线| 青青青国产精品国产精品美女| 波多野结衣中文字幕一区| 成人福利在线看| 亚洲成年网站在线观看| 日韩福利在线视频| 国产成人一区二区| 欧美综合成人| 最新无码专区超级碰碰碰| 亚洲欧洲日韩综合色天使| 欧美性天天| 视频二区国产精品职场同事| 日本欧美精品| 亚洲香蕉在线| 国产99精品视频| 亚洲欧洲日产无码AV| 激情视频综合网| 亚洲中文字幕在线一区播放| 2020国产精品视频| 国产区网址| 国产激情无码一区二区免费| 熟女视频91| 亚洲视频影院| 一区二区理伦视频| 九九九久久国产精品| 全部免费特黄特色大片视频| 伊人福利视频| 在线a视频免费观看| 亚洲V日韩V无码一区二区| av在线5g无码天天| 2018日日摸夜夜添狠狠躁| 最新国产高清在线| 波多野结衣一二三| 国产素人在线| 中文字幕乱码中文乱码51精品| 国产精品一线天| 美女毛片在线| 亚洲人成网线在线播放va| 麻豆精品视频在线原创| 99re经典视频在线| 久久semm亚洲国产| 2022精品国偷自产免费观看| 国产一级毛片高清完整视频版| 激情视频综合网| 日韩欧美中文在线| 国产精品无码翘臀在线看纯欲| 亚洲永久精品ww47国产| h视频在线观看网站| 五月婷婷欧美| 国产视频自拍一区| 免费高清a毛片| 波多野结衣一区二区三区AV| 91精品国产综合久久不国产大片| 久久久噜噜噜久久中文字幕色伊伊| 欧美成人二区| 久久精品国产免费观看频道| 丁香五月婷婷激情基地| 国产欧美日韩视频一区二区三区| 国内熟女少妇一线天| 欧美另类精品一区二区三区| 国产成人精品免费av| 国产迷奸在线看| 日韩精品一区二区三区中文无码 | 免费久久一级欧美特大黄| 免费观看国产小粉嫩喷水| 国产亚洲日韩av在线| 久久久久久午夜精品| 在线观看亚洲精品福利片| 成人国产小视频| 欧美a级在线|