• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    Excel VBA在圖書館中文新書復(fù)本推薦中的應(yīng)用

    2020-04-24 14:50:40關(guān)智遠(yuǎn)
    電腦知識(shí)與技術(shù) 2020年5期
    關(guān)鍵詞:圖書館

    摘要:基于圖書館日常工作中的中文新書書目篩選及復(fù)本數(shù)推薦工作(簡稱“中文新書復(fù)本推薦”),針對(duì)書目Excel表中描述字段較多以及量大、瀏覽體驗(yàn)不佳的問題,利用Excel VBA設(shè)計(jì)用戶窗體,實(shí)現(xiàn)逐行瀏覽書目信息,點(diǎn)擊選取建議復(fù)本數(shù)的功能,讓采選人員每次將關(guān)注點(diǎn)集中在一本書目上。在窗體添加了連接查詢SQL Server數(shù)據(jù)庫返回歷史推薦次數(shù),以及根據(jù)書名進(jìn)行在線書評(píng)查詢的功能。

    關(guān)鍵詞:圖書館;復(fù)本選書;Excel;VBA;用戶窗體

    中圖分類號(hào):G250.7 文獻(xiàn)標(biāo)識(shí)碼:A

    文章編號(hào):1009-3044(2020)05-0055-03

    開放科學(xué)(資源服務(wù))標(biāo)識(shí)碼(OSID):

    1 問題概述

    雖然電子資源的采購經(jīng)費(fèi)在高校圖書館中占據(jù)越來越大的比重,但紙質(zhì)資源尤其是紙質(zhì)圖書仍然是圖書館館藏的重點(diǎn)之一[1-2]。師生可隨時(shí)通過圖書館讀者薦購平臺(tái)、定期書展以勾選書目或者“你選書、我買單”等活動(dòng)參與到圖書館的采訪工作中。另外,圖書館的館配商也會(huì)定期提供大量的書目清單共采選人員篩選。

    隨著我國圖書出版的逐年增長,每年都有大量新書品種出現(xiàn),具體到高校圖書館的采購工作,明確采訪原則,對(duì)館配商提供的大批量書目數(shù)據(jù)進(jìn)行有效篩選,從中獲取到符合高校館藏發(fā)展需求的高質(zhì)量紙質(zhì)圖書顯得尤為重要[3]。

    在中文圖書的采選初期,往往需要具備不同學(xué)科背景的團(tuán)隊(duì)成員對(duì)相應(yīng)的書目數(shù)據(jù)進(jìn)行標(biāo)記,加總之后的數(shù)量作為是否訂購該書的參考,最后再由專人進(jìn)行匯總,繼續(xù)對(duì)建議訂購書目和建議復(fù)本數(shù)進(jìn)行整理和提交。

    以Excel文件形式展示的大量書目信息雖然格式穩(wěn)定規(guī)范,但由于字段繁多(總計(jì)有27個(gè)字段),有些字段內(nèi)容較長,不便于逐條進(jìn)行仔細(xì)評(píng)選甄別。另外,對(duì)圖書選擇除了要考慮書名、出版社、學(xué)科分類、價(jià)格、裝幀之外,圖書的摘要也比較重要,雖然在Excel單元格中可以通過設(shè)置自動(dòng)換行或者在上方編輯欄中展開查看,但在上千有時(shí)甚至上萬行密集的表格中逐行操作效率較低、瀏覽體驗(yàn)不佳也容易錯(cuò)行。對(duì)一些書可能還需要查看書評(píng)作為參考[4]。以往同一種書的推薦歷史也需要考慮以避免重復(fù)推薦。

    2 窗體界面

    為了解決上述問題,本文利用Excel VBA工程中的用戶窗體將表格數(shù)據(jù)重新排列顯示,將每一個(gè)書目的重要字段同時(shí)顯示在一個(gè)窗口上,用文本框來顯示字?jǐn)?shù)較多的字段(主要為了給“內(nèi)容提要”字段擴(kuò)大顯示空間)。另外將復(fù)本數(shù)的填寫方式改為從下拉菜單中進(jìn)行選擇并更新到指定單元格,同時(shí)利用VBA連接本機(jī)SQL Server數(shù)據(jù)庫查詢每條書目以往選書情況,顯示該書歷史推薦次數(shù),提供檢索書目網(wǎng)絡(luò)書評(píng)的按鈕并顯示處理進(jìn)度。采選人員通過在Excel中運(yùn)行宏來調(diào)用模塊中的程序,項(xiàng)目中模塊和用戶窗體(UserForml)的關(guān)系以及其中主要代碼及功能概括如圖1所示。軟件環(huán)境為Exce12016版,模塊1中包含一個(gè)Sub子程序Book_One_by_One用以打開UserForml,UserForml實(shí)現(xiàn)前文所述功能,其中的查詢連接數(shù)據(jù)庫功能需要調(diào)用模塊1中的searchSQL函數(shù)。

    首先,在VBA工程界面,右鍵點(diǎn)擊VBAProject,分別插入一個(gè)模塊和窗體,顯示為“模塊1”和“UserForml”,添加完畢如圖2所示。

    其次,雙擊UserForml,從工具箱浮窗提供的控件中,分別點(diǎn)擊插入標(biāo)簽控件,文本框控件、命令按鈕等,并按每條書目的顯示字段進(jìn)行排列,控件詳情如下表1。最終形成的UserForml界面如圖3所示。

    3 模塊及控件事件代碼

    如圖3所示,用戶窗體中要顯示每本書中的很多字段,需要將各個(gè)標(biāo)簽或文本框顯示內(nèi)容綁定到Excel每行的特定單元格。另外,在通過下拉列表選擇建議復(fù)本數(shù)并點(diǎn)擊確認(rèn)之后,程序需要自動(dòng)將復(fù)本數(shù)更新到指定單元格,并且窗體顯示的書目信息跳轉(zhuǎn)到下一條。實(shí)現(xiàn)逐條瀏覽的兩個(gè)按鈕以及搜索書評(píng)按鈕也需要能夠正常實(shí)現(xiàn)其功能。基于現(xiàn)有Excel表結(jié)構(gòu)以及處理要求,將窗體代碼劃分為如下部分。

    首先進(jìn)行全局變量定義。主要是用以標(biāo)識(shí)當(dāng)前所在的單元格的行號(hào),右鍵用戶窗體選擇查看代碼,確認(rèn)代碼界面上方兩個(gè)下拉列表分別顯示“通用”和“聲明”,輸入Dim m_lngRowAs Long。

    其次是窗體初始化代碼,即用戶在Excel表中運(yùn)行宏,打開窗體時(shí)需要顯示的內(nèi)容,右鍵用戶窗體選擇查看代碼,確認(rèn)代碼界面上方兩個(gè)下拉列表分別顯示“UserForm”和”Initialize”。Me指代該窗體,英文點(diǎn)后跟標(biāo)簽的名稱以定位控件,代碼內(nèi)容如下,其中冒號(hào)用于將多行短語句合并成一行以減少行數(shù)。

    Private Sub UserForm_lnitialize0

    選中B2單元格

    Range(”B2”).Select

    'C2單元格書名

    Me.bookTitle= Range(”C2”):Me.isbn= Range(”B2”)

    Me.authors= Range(”D2”):Me.publisher= Range(”E2”)

    Me.pubdate= Range(”W2”):Me.price= Range(”F2”)

    Me.subject= Range(”H2”):Me.secondTitle= Range(”12”)

    Me.Series= Range(”L2”):Me.language= Range(”X2”):

    Me.edition= Range(”M2”):Me.pages= Range(”N2”)

    Me.size= Range(”02”):Me.layout= Range(”V2”)

    Me.note= Range(”()2”):Me.textbook= Range(“S2”)

    Me.classCode= Range(”T2”):Me.readers= Range(”U2”)

    Me.rec_number= Range(”AS2”):Me.abstracts= Range(”R2”)

    當(dāng)前所在行

    m_lngRow=2

    顯示處理進(jìn)度,以當(dāng)前行/書目總量的形式表示,CStr函數(shù)可將整數(shù)轉(zhuǎn)換為字符串

    Me.progress= CStr(m_lngRow -1)&”/”&CStr(ActiveSheet.Range(”A65535”).End(xlUp).Row -1)

    調(diào)用模塊函數(shù)查詢?cè)摃鴼v史推薦

    Me.re_time= searchSQL(Range(”B2”))

    復(fù)本數(shù)選擇下拉列表

    Fori=1 T0 3

    ComboBoxI.Addltem i

    Next

    End Sub

    第三,實(shí)現(xiàn)逐條書目瀏覽及復(fù)本數(shù)確認(rèn)的功能。在通過按鈕來回瀏覽時(shí)更新窗體的代碼與上述相似,不同之處在于通過更新相應(yīng)的行以獲取不同字段在相應(yīng)單元格中的值。next_row(下一行)命令按鈕代碼直接將m_lngRow值加1,回到上一行的命令按鈕代碼中則將全局變量m_lngRow減去1,并保證m_lngRow不會(huì)小于2。這樣在每次選中復(fù)本數(shù)后點(diǎn)擊確認(rèn)按鈕時(shí),更新單元格中的復(fù)本數(shù)值,并調(diào)用上述next_row_Click0將窗體顯示內(nèi)容自動(dòng)更新到下一條。確認(rèn)按鈕的代碼如下所示。

    Private Sub confirm_Click0

    7更新單元格復(fù)本數(shù)

    Range(”G”& ActiveCell. Row)=Me.ComboBoxl

    顯示下一條

    Call next_row_Click

    End Sub

    第四,是在線書評(píng)以及數(shù)據(jù)庫連接查詢功能。查詢?cè)诰€書評(píng)的功能主要是在必要時(shí)可以參考網(wǎng)絡(luò)書評(píng)給復(fù)本推薦人員更全面的參考,鑒于中文書評(píng)缺少較為豐富完整的api的現(xiàn)狀,在該工程中主要是以豆瓣讀書為參考來源,將當(dāng)前用戶窗體中的書名,通過url的形式添加到網(wǎng)頁中并在指定的瀏覽器中打開搜索結(jié)果頁面,以便于用戶瀏覽查看是否有書評(píng)以及評(píng)價(jià)情況,對(duì)應(yīng)按鈕點(diǎn)擊的代碼如下。

    Private Sub searchBookReview_Click0

    Shell“C:\Program Files\Mozilla Firefox\firefox.exe”&”https://search. douban. com/book/subject_search? search_text=”&Me.bookTitle

    End Sub

    在上述窗體顯示的代碼中,多次調(diào)用了searchSQLO這一函數(shù),它被置于模塊1中,用以連接本機(jī)SQL Server數(shù)據(jù)庫,數(shù)據(jù)表中保存了以往的推薦記錄,與Excel表具有相同的字段,在窗體的re time標(biāo)簽控件中顯示該書被推薦的累計(jì)次數(shù)。編寫連接數(shù)據(jù)庫的函數(shù)之前,在Visual Basic的“工具一引用”選項(xiàng)中,確認(rèn)Microsoft ActiveX Data Objects 2.0 Library處于勾選狀態(tài)。在模塊1中定義的searchSQL函數(shù)如下。

    Public Function searchSQL(isbn As String) As String

    初始化

    Dim conn As ADODB.Connection

    Dim rs As ADODB.Recordset

    Dim rcn As String

    Set conn= New ADODB.Connection

    Set rs= New ADODB.Recordset

    打開數(shù)據(jù)庫連接

    conn. ConnectionString=”Provider=SQLOLEDB;Initial Cata-log=JournaI;Data Source=localhost;lntegrated Security=SSPI”

    conn.Open

    獲取查詢結(jié)果

    Set rs= conn.Execute(”Select count(*) as number from bookswhere ISBN=¨&isbn&”:”1

    更新推薦次數(shù)變量rcn

    If Not rs.EOF Then

    rcn= rs(”number”1

    rs.Close

    Else

    MsgBox”error, no data.”, vbCritical

    End If

    關(guān)閉數(shù)據(jù)庫連接

    If CBool(conn.State And adStateOpen) Then conn.Close

    Set conn= Nothing

    Set rs= Nothing

    返回推薦次數(shù)

    searchSQL= rcn

    End Function

    模塊1種除了連接查詢數(shù)據(jù)庫的函數(shù)searchSQLO之外,是復(fù)本推薦人員從Excel表運(yùn)行宏的對(duì)應(yīng)Sub.此步驟直接打開用戶窗體(UserForml)。

    Sub Book_One_by_One0

    UserForml.Show

    End Sub

    最后在Excel運(yùn)行宏。將用戶窗體和模塊保存后,可以在任何書目Excel表的VBA工程中導(dǎo)入和運(yùn)行,在Excel軟件“開發(fā)工具”選項(xiàng)卡下點(diǎn)擊“宏”,選擇宏名(此處為“Book_One_by_One”)點(diǎn)擊執(zhí)行,用戶窗體開始逐條展示書目信息。點(diǎn)擊建議復(fù)本量下拉菜單可以選擇并確認(rèn),也可以通過點(diǎn)擊按鈕來回切換書目信息,每次只關(guān)注一本書的詳細(xì)情況,所有字段一目了然,點(diǎn)擊搜索書評(píng)按鈕可以直接打開瀏覽器顯示書評(píng)搜索結(jié)果,便于采選人員更好地對(duì)采選并選擇復(fù)本數(shù)。

    圖4為用戶窗體運(yùn)行界面。

    4 結(jié)束語

    針對(duì)Excel表格顯示書目項(xiàng)目瀏覽體驗(yàn)差,不利于采選人員全面判斷書目質(zhì)量以推薦復(fù)本數(shù)的問題,本文基于ExcelVBA設(shè)計(jì)并實(shí)現(xiàn)了能夠更易瀏覽和處理的用戶界面,并提供了額外的參考書評(píng)以及連接數(shù)據(jù)庫查詢歷史推薦的功能,實(shí)現(xiàn)了幫助提高采書質(zhì)量、優(yōu)化工作流程的目的。今后考慮進(jìn)一步考慮添加館藏查重、借閱參考和團(tuán)隊(duì)協(xié)作處理等功能。 參考文獻(xiàn):

    [1]蔡迎春,當(dāng)前藏書采選機(jī)制對(duì)藏書質(zhì)量的影響與思考[J].圖書情報(bào)工作,2019,63(9):31-37.

    [2]薛惠娜.紙電融合出版背景下高校圖書館選書問題研究[D].福州:福建師范大學(xué),2018.

    [3]隋銀昌.“搶單式”中文圖書采選模式研究[Jl.大學(xué)圖書情報(bào)學(xué)刊,2018,36(4):30-33.

    [4]彭靜,加強(qiáng)網(wǎng)絡(luò)書評(píng)在圖書采選中的運(yùn)用[Jl.圖書館理論與 實(shí)踐,2006(2):122-123.

    【通聯(lián)編輯:謝媛媛】

    收稿日期:2019 -12 -15

    作者簡介:關(guān)智遠(yuǎn)(1990-),男,山東人,助理館員,碩士,主要研究方向?yàn)榭茖W(xué)計(jì)量與評(píng)價(jià),資源建設(shè)與評(píng)估。

    猜你喜歡
    圖書館
    圖書館
    飛躍圖書館
    去圖書館
    安化县| 桂平市| 衡南县| 乐安县| 沾化县| 波密县| 出国| 富阳市| 丹东市| 黄陵县| 石城县| 香格里拉县| 玉林市| 区。| 龙胜| 安义县| 商城县| 珠海市| 达尔| 黑河市| 孝感市| 历史| 临西县| 邮箱| 海兴县| 定陶县| 建宁县| 修武县| 革吉县| 建水县| 镇远县| 南汇区| 方正县| 清原| 潜江市| 雷山县| 历史| 内乡县| 华坪县| 昌江| 宁化县|