Hank's Blog

工程人的設計監造VBA工具交流區

前言

公部門工程案要上網招標之前都會需要製作招標文件及投標表單,其內容包含:

招標文件

  • 工程採購契約
  • 投標須知

投標表單

  • 標單
  • 標封
  • 投標文件審查表
  • 退還押標金申請單
  • 押標金查詢同意書
  • 使用印章授權書
  • 投標廠商聲明書
  • 投標切結書
  • 身分揭露表

既有作法是利用WordVBA搭配Excel內容套印,但若招標文件有版本更迭時,需要將每個同仁的檔案進行更換才能進行正確的內容輸出,這對於版本控管有相當大的難度。

為了減少版本更迭的問題,目前設計直接將最新的內容推送到伺服器位置,前端則利用網頁進行資料填寫,自此就能夠及時輸出最正確的資料,希望透過這樣的設計能夠減少招標文件產製的版本疏漏。

閱讀全文 »

前言

資料庫介紹

資料庫(此為關聯式資料庫)的主要用途是為資料提供一個儲存空間,讓使用者可以進行讀取、寫入、修改、刪除等功能。

關聯式資料庫常見如下:

  • MySQL 和 PostgreSQL 是開源且廣泛使用的選擇,適合中小型應用程式
  • Microsoft SQL Server 通常用於大型企業解決方案
  • SQLite 則是一個輕量級的資料庫,適合用於嵌入式應用或單機應用。

申請雲端服務

本篇文章介紹的部分為Clever Cloud 所提供無料的 256MB PostgreSQL 服務,適合需要基本資料庫功能的小型應用程式。

重要參數

當您成功註冊並啟用 PostgreSQL 服務後,只需要取得一項重要參數 CONNECTION_URI即可開始使用雲端資料庫。

閱讀全文 »

背景

上級單位需要管考目前管理處執行中的工程案件,建立農田水利設施工程管考系統(以下稱外部系統)供各管理處進行填報,然而管理處於前期便已建立工程管考E化系統(以下稱內部系統)做為內部資料的收集,監造單位需要在內部系統先進行填寫後,再由管理單位進入外部系統將內部系統資料再重新謄打一次。

為進行外部系統資料填報,最理想的狀況當然是能透過內部系統自身觸發器(Trigger)執行外部系統API發送,內部系統資料庫異動時也能一併修改到外部系統的內容。

然而今日沒有外部系統API使用,需要另外想辦法從原本的資料庫撈取資料進行網頁自動化填報才能省事,首先要確認內部系統的資料庫欄位是否能進行資料梳理,再者確認網頁自動化填報做法為何。

閱讀全文 »

前言

在撰寫程式碼時,許多人習慣將程式與檔案綁定,並利用文件名稱來標記每次版本的修改。例如,將當天日期加在檔案名稱後來區隔版本,如 縱斷面繪圖20230622.xls。這是我過去對版本控制的理解,然而,這樣做的問題是檔案數量快速增長,且檔案名稱無法清楚標示每次修改的具體內容。

更糟的是,當這些檔案分散於不同的電腦和資料夾中,若同名的檔案有所不同,卻無法得知具體改動了哪些部分。這樣的管理方式會造成很大的困擾,也促使我開始尋找更有效的版本控制方法。

因此,我開始探索如何在 VBA 中實現「真」版本控制,並結合 Git 來管理程式碼。

更新註記 (2024/05/19)

當我將程式上傳至 GitHub 時,發現因為筆記本的預設編碼為 "ANSI",上傳的中文部分會顯示為亂碼。為了解決這個問題,我將編碼另存為 "UTF-8",這樣可以正常顯示。但是,若將 "UTF-8" 編碼匯入 Excel VBA IDE 時,由於 Excel 預設支援 ANSI 編碼,中文會出現錯誤。

閱讀全文 »

前言

一提到雲端空間,廣為人知的不外乎是Google Drive、DropBox、OneDrive等等知名大廠的產品,NAS(地端儲存伺服器)則大多常見為Synology群暉所主導,而本篇要介紹的Synology C2 Object則是群暉所提供的服務之一。

在網路上有許多服務經過使用者對網頁進行互動,伺服器背後通常都會有一個以上的資料庫及檔案空間進行儲存,而本篇 Synology C2 Object 就是指檔案存存放空間,只因為它屬於雲端所提供的服務,因此叫做雲端空間。

未來只要有建立好連接的參數,就可以透過API進行呼叫存放、取用,有關檔案空間申請主要目的為取得下列重要參數,以備未來進行檔案空間串接。

  • BUCKET_NAME
  • endpoint_url
  • aws_access_key_id
  • aws_secret_access_key
閱讀全文 »

前言

原本想像中的Selenium會需要從無到有開啟一個網站後開始進行資料填寫,大多數的網站都會有帳號密碼驗證機制,甚至祭出驗證碼、選擇汽車圖片、移動滑鼠到指定位置...等反爬蟲機制來確認是否為機器人,但若網頁可以被接管繞開這些機制的話,那整個資料填報作業就會很有機會讓電腦代勞,這就是寫程式的趣味來源,當然還是要小心不能點太快,否則網站可能會負荷不過來。

閱讀全文 »

前言

本篇文章延伸於 施工日誌VBA-V3.5.0 版本操作教學

版面格式有可能因為業主的要求或委員的要求而有些許不同,難以千篇一律的內容應付所有的機關,當初在設計軟體時就有考量到這個部分,故讓報表生成的過程盡可能的彈性,能夠在這個說A改B的環境下好好適應各種狀況,本篇文章主要介紹施工日誌VBA可供輸出的報表格式及微調版型的方法,盡可能以公版作為預設,真的需要再來調整。

以下相關設定按鈕皆需透過工作表"版本說明"點選按鈕【功能主要畫面】後進行。

閱讀全文 »

前言

本篇文章延伸於 施工日誌VBA-V3.5.0 版本操作教學

從前篇第1步驟開始進行的朋友,會發現有一個生效日是空白的,這就是讓使用者要開始填寫日報前的最後確認,確認無誤後便會將生效日加註(第一次加註會與開工日相同),此時才能開始填寫日報,填寫日報後需要點選"儲存日報"資料才會生效,取消填寫時只能透過按鈕"取消填寫",不能點選右上角的X。

填寫日報的過程,可以在版本說明中的"功能主要畫面"裡面對日報進行新增、編輯、刪除,有關日報填寫內容分為以下幾種內容:

  1. 基本資訊
  2. 契約項目
  3. 材料
  4. 人力
  5. 機具
  6. 其他備註
  7. 監造部分
閱讀全文 »

前言

本篇文章延伸於 施工日誌VBA-V3.5.0 版本操作教學

取得主程式時,會預設存在範例資料,可先由範例資料大致了解未來使用過程中資料的模樣會如何,更重要的是可以先試行輸出報表,確認是否符合貴司需求。

如欲開始進行使用,建議依照下列順序進行,除基本設定會另外做重置行為需優先設定外,其餘設定不一定要按照順序。

以下相關設定按鈕皆需透過工作表"版本說明"點選按鈕【功能主要畫面】後進行。

閱讀全文 »
0%