CMAdox (Win 64位元) 安裝說明

CMoney

CMoney

  • 2026-01-28 17:23
  • 更新:2026-01-28 18:04

CMAdox (Win 64位元) 安裝說明

CMAdox(Win 64位元)使用與安裝說明

本文件說明如何註冊、引用 cmadox.dll 以及在程式中調用 CMADODB.CMConnection 物件進行資料查詢。

 

一:關於 cmadox.dll 的引用

使用本範例,必須先註冊 cmadox.dll,再引用進來使用。 例如將 cmadox.dll 複製到您的 windows\system64 目錄下,並將該 dll 檔案註冊:

  • 執行指令:於「開始」的「執行...」鍵入 regsvr32 C:\Windows\SysWOW64\cmadox.dll 後按確定執行。

  • 手動註冊:元件服務中註冊。

實際的程式碼中您可以使用物件 CMADODB.CMConnection,此物件提供方法 CMExecute 可回傳 ADODB.recordset。

二:關於 CMADODB.CMConnection 的 CMExecute 方法

回傳一個 adodb 的 recordset。

  • CMConn:是一個 CMADODB.CMConnection 物件。

  • SQL:想要執行的 SQL 陳述式。

範例語法:

1. 輸出基本表資料

' table 名稱直接使用 CMoney 上看到的表名即可
' 例如 SQL = "SELECT * FROM 日收盤表排行 WHERE (日期 = '20041110') ORDER BY 股票代號"
CMConn.Execute "5", SQL

2. 輸出自訂報表資料

' table 名稱直接使用您在知識管理庫中,自訂報表裏已經設好儲存的表名
' 例如 SQL = "SELECT * FROM 技術與籌碼面速覽"
CMConn.Execute "2", SQL

3. 輸出自訂篩選條件資料

' 基本面篩選:直接使用您在知識管理庫中,看到的篩選種類標題名稱 ' 月營收動能向上:直接使用您在知識管理庫中,已經設好儲存的篩選條件名稱
' 20060207:用來篩選的基準日期,若未給定表示使用最新ㄧ天的日期來篩選資料
' true:選擇性參數,用來決定是否顯示股票名稱欄位,預設值為 false
CMConn.Execute "3", "基本面篩選/月營收動能向上/20060207", true

三:程式範例

Dim Conn_CMado As New CMADODB.CMConnection
Dim Rs As New ADODB.Recordset
Dim Str_SQL As String  

Str_SQL = "SELECT * FROM 日收盤表排行 WHERE (日期 = '20041110') ORDER BY 股票代號"
Set Rs = Conn_CMado.CMExecute("5", Str_SQL)

四:關於動態連結代號 – 台股 (可用於一般表格與自訂報表)

標籤:使用 <CM 與 > 來決定要設定的動態連結代號,標籤內用逗號來分隔參數。 <CM參數1,參數2>:參數 1 是動態連結的種類,參數 2 是動態連結的代號。

  1. 台股 – 交易所代號:<CM代號,1>

    例:SELECT * FROM [季財報(現金流量單季)] WHERE 年季='201003' AND 股票代號 IN <CM代號,1>

  2. 台股 – 細產業分類:<CM產業,303>

    例:SELECT * FROM [季財報(現金流量單季)] WHERE 年季='201003' AND 股票代號 IN <CM產業,303>

  3. 台股 – 個股特殊分類(不含指數彙編):<CM特殊,1>

    例:SELECT * FROM [季財報(現金流量單季)] WHERE 年季='201003' AND 股票代號 IN <CM特殊,1>
    例:SELECT [中文簡稱] FROM [上市櫃公司基本資料] WHERE 年度='2014' AND 股票代號 IN <CM特殊,2002>

  4. 多個代號寫法:比如想抓取收盤價,樣本為上市、上櫃、創新板、ETF

    例:SELECT 股票代號,收盤價 FROM [日收盤表排行] WHERE (股票代號 IN <CM代號,1> OR 股票代號 IN <CM代號,2> OR 股票代號 IN <CM代號,Y1> OR 股票代號 IN <CM特殊,5>) AND 日期='20231110'

  5. 格式建議:欄位名稱有 (),建議以中括號 [] 包起來,資料表名建議都要用 [] 包起來:

    例:SELECT 股票代號,[總市值(億)] FROM [日收盤表排行] WHERE (股票代號 IN <CM代號,1> OR 股票代號 IN <CM代號,2>) AND 日期='20231110'

五:關於動態連結代號 – 非台股

標籤:使用 <CM 與 > 來決定要設定的動態連結代號,標籤內用逗號來分隔參數。 <CM參數1,參數2,參數3,參數4>:參數 1 是動態連結的種類,參數 2 是動態連結的代號,參數 3 是資料表名稱,參數 4 是次樣本名稱。

  1. 非台股:<CM一般,日本,重要國際指數,國家>

    例:SELECT * FROM [重要國際指數] WHERE 日期='20110120' AND 代號 IN <CM一般,日本,重要國際指數,國家>
    例:SELECT * FROM [權證基本資料表] WHERE 年度='2011' AND 代號 IN <CM一般,一般型認售權證,權證基本資料表,類型>


:資料表前後請留空白,若表格名稱內含有中括號,則表格名稱請不要再用中括號包住。

CMoney

CMoney

CMoney