📜 [專欄新文章] 類 Python 的合約語言 Vyper 開發入門:與 Solidity 差異、用 Truffle 部署、ERC20 賣幣合約實做
✍️ 田少谷 Shao
📥 歡迎投稿: https://medium.com/taipei-ethereum-meetup #徵技術分享文 #使用心得 #教學文 #medium
有鑒於個人近期關注的 Uniswap 及 Curve 皆用 Vyper 實作,索性瀏覽了官方文件並嘗試一些開發工具,希望此文能減少一些讀者初嘗 Vyper 會遇到的麻煩!
Vyper and Solidity
Outline
一. Vyper 極簡介二. 與 Solidity 語法差異三. 開發、開發環境設置 1. 語法高亮 2. 本地 Vyper compiler 安裝 3. 使用 Truffle 操作 ERC20 - 安裝 Truffle - 發幣 - 寫個簡易賣幣合約四. 已知 Remix 問題 五. 結語
一. Vyper 極簡介
Vyper 是除 Solidity 外,以太坊上的另一智能合約 (Smart contract) 語言。其語法和 Python 相近,但畢竟也是寫合約的語言,邏輯差異不大,所以若熟悉 Solidity 應該不難理解用 Vyper 寫出的合約!
Vyper 主要被設計和 Solidity 的區別是安全性及可讀性,這部分會在下一段落及後方的實作中舉例說明。
二. 與 Solidity 語法差異
Vyper 與 Solidity 的差異有許多,在本段只就個人認為感受較深的三點進行說明,其他差異只進行翻譯,有興趣的讀者可以到官方文件詳細了解:https://vyper.readthedocs.io/en/latest/index.html
1. 沒有 modifier
Solidity 常見的 onlyOwner() modifier; 由於 gist 沒有 Solidity 的語法高亮,故截圖
在 Vyper 中單純用 assert 及 assert_modifiable 來進行條件檢查,兩者差別為若要檢查函數執行後的返還值,要用後者,如下圖:
Vyper 寫法
2. 沒有 Class inheritance 繼承
繼承是物件導向程式設計 (OOP) 的核心概念,但各種繼承關係有時候確實很複雜。Vyper 沒有繼承,這無疑大幅地增加了程式可讀性及安全性,以及降低審計程式碼的難度。在此提供一個例子供不熟悉 OOP 複雜之處的讀者有個概念:
source: https://consensys.github.io/smart-contract-best-practices/recommendations/#multiple-inheritance-caution
在上例中,contract A 的 fee 值 (因繼承自 contract B 和 C,故有 fee 一值) 是 5、a 值也是 5 (因繼承自 contract Final,故有 a 一值)。原因是 A 先繼承 B 再繼承 C,因此 contract A 中的 setFee() 是使用了 contract C 的 setFee(),而 a 值是由於 C(5),這代表 contract C 的 constructor (舊版本中即 function C(),函式名稱同 contract 名稱) 被傳入的值為 5。
稍微延伸一下以上概念,將 contract A 改成:contract A is C, B。如此一來,a 值還有 fee 值都會是 3,因為這次 A 先繼承 C 再繼承 B,因此最終吃到的值是 contract B 的。
以上就是 OOP 繼承的複雜之處的簡單範例說明,應該能稍微感受到爲什麼除去繼承後會大幅提高可讀性及安全性,畢竟即使是熟悉 OOP 的人有時頭腦一混亂也會開始懷疑自己寫的程式碼繼承結構是否正確 …
3. 沒有 dynamic array 動態陣列
這應該是目前 Vyper 設計中爭議最大的部分。沒有動態陣列代表在宣告陣列時需要宣告其長度,也就是說 Solidity 中的寫法 uint[], bool[] 等等,這些是不會出現在 Vyper 的。在 Vyper 中只能出現諸如:
# Vyper 的變數宣告方式為 變數名稱: 存取範圍(變數型態(若為陣列給長度))
values: uint256[10]participants: public(address[20])
可以看到上方的 uint256 及 address 兩陣列皆需要宣告長度,不能不宣告而使其動態地配置空間。
沒有動態陣列固然可以確保執行運算的範圍、次數,但一來動態陣列真的很方便、二來在 Solidity 有此功能而 Vyper 卻沒有的情況下可能會造成麻煩,詳見此一討論串:點我。
4. 沒有 inline assembly,程式碼中不會有組合語言
5. 沒有 function overloading,函式不會因傳入的參數數目不同而結果不同
6. 沒有 operator overloading,運算符號不會有不同於預設的自定義功能
7. 沒有無限迴圈,可免於 gas limit attack
8. 十進位定點數 decimal fixed point 而非二進位 (binary) 定點數,詳見:點我
三. 開發、開發環境設置
結論先講
開發 Vyper 的最佳姿勢目前個人認為是在本地裝上 Vyper compiler、用 Truffle 部署,並在撰寫時將檔名後加上 .py 就能有 Python 的語法高亮👌
1. 語法高亮 (syntax highlighting)
有語法高亮絕對是舒服地寫程式的第一步。
Remix 有 Vyper 的語法高亮,但一來個人目前不推薦使用 Remix 來撰寫 Vyper,原因詳見下方 4. 已知 Remix 問題;二來 Remix 的語法高亮其實也沒有很清楚,因此個人推薦:在本地開發,將檔名後加上 .py 就會有 Python 的語法高亮。
2. 本地 Vyper compiler 安裝
照官方說明使用 Python 的虛擬環境 virtualenv:
source: https://vyper.readthedocs.io/en/latest/installing-vyper.html#installing-vyper
簡單兩點提醒:
如果中間那行報錯但確實已經有 Python,則可能是版本問題。依照自己電腦上的版本改成相應的即可,ex: python3.6 改成 python3
進入虛擬環境後(檔案路徑前方應有 vyper-venv 的提示),使用此指令: vyper {檔案名稱}.vy,即可編譯 .vy 檔;使用完畢後輸入 deactivate 即可退出
3. 使用 Truffle 操作 ERC20
安裝 Truffle
Truffle 雖有冗餘的 migration 但也別無他法,畢竟 Remix 目前仍不完善 :(
下載流程可以照官方文件,使用 vyper-example:
source: https://github.com/truffle-box/vyper-example-box
由於我們會接上測試網 Ropsten,因此還要下載 truffle-hdwallet-provider:
source: https://github.com/trufflesuite/truffle-hdwallet-provider
接者就可以開始使用 Vyper 寫合約了!
發幣
由於 Vyper 的官方文件中已經有許多優質範例,因此本文希望來點不一樣但大家卻又很熟悉的…以 ERC20 為例(這千篇一律的主題xD):
用 Curve 的 ERC20 程式碼為範本,發一個幣(又要發…)
寫一個簡易賣幣合約
選擇這個主題一方面畢竟 ERC20 是以太坊的最大宗應用之一,二來有興趣的讀者可以透過讀 ERC20 的程式碼來熟悉 Vyper,並在看過本文的流程後對於用 Vyper+Truffle 來操作 ERC20 有完整的概念!
好的,首先複製一份 Curve 的 ERC20 程式碼(看到就順手拿來用),並複製到 Truffle 所在路徑的 contracts 資料夾中:https://github.com/curvefi/curve-contract/blob/pool_compound/vyper/ERC20.vy
由於第一點希望著重在跑一次流程,因此不改動合約的程式碼。
將 ERC20.vy 複製到 contracts 資料夾中後,到 migrations 資料夾開啟 2_deploy_contracts.js,首先將 require() 中的參數改為 ERC20.vy 的檔名 ERC20,再來依照自己喜好決定幣的名稱、代號、小數點位數及發行總量,輸入於 deployer.deploy() 中。
接著,為了和測試網 Ropsten 互動,需要將以下程式碼寫入 truffle-config.js。
第二行的 privateKeys 是帳號的私鑰。以下實作需要兩個帳號來操作,因此請從錢包匯入兩組私鑰(並非助憶詞)。
在第 13 行中 HDWalletProvider 此函式的第三個參數代表要用第幾個帳號最為預設帳號(部署合約等),第四個函數代表總共匯入幾組帳號。而第二個參數則是需要至 Infura 申請一個 project 來得到串接 Ropsten 的連結。這兩步驟並非本文重點,因此不詳細解說步驟,Google 搜尋關鍵字應該就會找到方法!
接著,就可以輸入以下指令來將代幣發佈到 Ropsten:
truffle deploy --network ropsten
有進入虛擬環境才可以編譯 .vy 檔,若忘記就會收到如下的錯誤訊息:
記得打開虛擬環境才能編譯 .vy 檔
成功後就可以在 contract address 中看到代幣發佈的位置,加入到 Metamask 中就可以看到。本文的例子是維尼代幣 Winnie the Coin, WTC ;)
contract address 便是 ERC20 的所在
Winnie the Coin, WTC
好了,到此測試網上又多了一個測試用的垃圾廢幣。
寫個簡易賣幣合約
賣幣合約中我想要簡單有兩個功能就好:付錢買幣 、結束銷售,以下就是程式碼。買幣的部分就不寫太詳細,固定價格為 0.01 Ether 可以買 500 代幣。
簡單說明幾點:
Solidity 的 constructor() 在 Vyper 中為 Python 風的 __init__():
函式的屬性(public, private, payable 等等)放在函式上方,與 Python 的修飾器位置相同
總之寫法跟 Python 很像,次方也一樣是用兩次乘法代表:**
變數前加上 self 代表是當前合約的變數/全域變數,因此非常容易與函式中的變數/區域變數做區隔
由於已經在第一行匯入了 ERC20 那份合約,因此透過將地址傳入合約當參數,就可以呼叫在該地址的合約:ERC20(self.tokenAddress) 。並且,可以將部署的合約存成一個變數 erc20 較方便
寫完合約後一樣要更改 migrations 資料夾中的 2_deploy_contracts.js 如下,將代幣所在的地址作為參數輸入。
由於先前已經部署過一次了,因此要重置才能再部署第二次,輸入以下指令:
truffle deploy --reset --network ropsten
部署成功之後就要來試著買幣啦!輸入以下來進入 console:
truffle console --network ropsten
成功進入後應該會看到 truffle(ropsten)> 的字樣。接著,首先取得部署的兩合約,並查看是否有返回合約資訊:
# ERC20 及 SellToken 是先前在 2_deploy_contracts.js 中的變數名稱,代表被部署的合約
let instance1 = await ERC20.deployed()instance1 # 印出 instance1 的資訊
let instance2 = await SellToken.deployed()instance2 # 印出 instance2 的資訊
再來,為了讓 SellToken 可以賣幣,要先用 ERC20 的合約匯幣到 SellToken 的合約。因此,輸入以下指令:
instance1.transfer(instance2.address, 10000)
# 這裡數字只要設為 > 500 就可以
接著,我們要利用第二個帳號去買幣(第一個帳號為預設帳號,因此就是代幣擁有者)。將帳號的資訊存入變數 accounts 中,再指定送出交易的帳號是第二個帳號。由於我個人匯入私鑰的順序是將第一個帳號存在 truffle-config.js 的 privateKeys[0]、第二個帳號存在 privateKeys[1],因此第二個帳號的地址就會在 accounts[1] 的位置:
let accounts = await web3.eth.getAccounts()
instance2.buyToken({from: accounts[1], value: 10000000000000000})
# value 為 10^16 是因為在 SellToken 的 buyToken 函式中買一次要 0.01 Ether, 即為 10^16 wei
然後應該就會在自己的第二個帳號中看到匯入的幣了~
最後,由於合約中結束銷售就是一個自殺 selfdestruct 函式,因此可以呼叫看看,第一個帳戶錢包中的錢應該會增加,因為第二個帳戶有付款買幣;並且,可以到 Ropsten 上瀏覽,應該能看到相關提示:
中間 contract 的右上角有 Self Destruct 的樣式
四. 已知 Remix 問題
Remix 目前有兩個版本,只有新版有 Vyper 的編譯器。在此整理目前遇到的問題,如果有人也遇到可以對照一下本處,可以省去很多自我懷疑xD
不會報錯
Remix 的編譯結果有時會是錯的、和本地端編譯出來的結果不同
舉上方的 SellToken 合約為例,將其複製到 Remix 中使用左邊的 Remote Compiler 有錯,但又不報錯 q_q (ERC20 的合約有在同檔案目錄)
左方有紅色三角形,代表編譯失敗,但沒有報錯訊息可以看…
getter function 竟然要花錢
用 Solidity 寫的合約,查詢 public 變數的值應該是不用消耗 gas 的,但不知何故查詢 Vyper 寫的合約的 public 變數卻要消耗 gas,如下圖…
可以看到中下方有 22026 gas 的消耗
Local compiler 無法使用
圖中的 Local Compiler 此選項,個人雖照官方文件執行 vyper-serve 但卻失敗,因此若有讀者成功希望能留個言不吝分享!
五. 結語
Vyper 作為一個比 Solidity 更新的合約語言,在寫程式碼的方面沒什麼問題,但相關的開發工具、學習資源等都遠不及 Solidity。
Vyper 主打的兩個特色:可讀性的部分相信看完上面的讀者應該已經有些感覺;安全性…小白如作者我倒是沒有感受到顯著的不同。況且 Solidity 已經發展許久,很多錯誤的寫法、知名的安全漏洞大家應該也很熟悉了,還有 Openzeppelin 提供安全合約寫法的範本,因此有待以後高人解說安全性是否真的是 Vyper 較好。
有興趣者可以查看 Vyper 的安全報告:點我,大意是目前 Vyper 的編譯器仍有許多問題待改進! (感謝 Chih-Cheng Liang 的提供)
本文對 Vyper 的介紹及其與 Solidity 的差異只講了個大概,欲知更詳細的介紹還是要麻煩讀者前往官方文件了:https://vyper.readthedocs.io/en/latest/index.html
最後,如果本文有任何錯誤,請不吝提出,我會盡快做修正;而如果我的文章有幫助到你,可以看看我的其他文章,歡迎一起交流 :)
田少谷 Shao - Medium
類 Python 的合約語言 Vyper 開發入門:與 Solidity 差異、用 Truffle 部署、ERC20 賣幣合約實做 was originally published in Taipei Ethereum Meetup on Medium, where people are continuing the conversation by highlighting and responding to this story.
👏 歡迎轉載分享鼓掌
同時也有251部Youtube影片,追蹤數超過1萬的網紅鍾日欣,也在其Youtube影片中提到,我是JC老師 電腦相關課程授課超過6000小時的一位AutoCAD課程講師 由於實在太多同學向JC老師反映,希望可以有線上課程學習 所以就決定錄製一系列的AutoCAD線上影片教學 而且不加密、不設限、不販售,就是純分享,希望可以幫助到有需要的朋友們 如果這部AutoCAD教學影片對你有幫助的話 請...
「查詢電腦名稱指令」的推薦目錄:
- 關於查詢電腦名稱指令 在 Taipei Ethereum Meetup Facebook 的最讚貼文
- 關於查詢電腦名稱指令 在 Charles Mok 莫乃光 Facebook 的最佳貼文
- 關於查詢電腦名稱指令 在 吳老師excel函數與vba大數據教學 Facebook 的最讚貼文
- 關於查詢電腦名稱指令 在 鍾日欣 Youtube 的最佳解答
- 關於查詢電腦名稱指令 在 鍾日欣 Youtube 的最讚貼文
- 關於查詢電腦名稱指令 在 鍾日欣 Youtube 的精選貼文
- 關於查詢電腦名稱指令 在 最新趨勢觀測站- 查詢電腦名稱cmd的推薦與評價,DCARD 的評價
- 關於查詢電腦名稱指令 在 Comments - YouTube 的評價
查詢電腦名稱指令 在 Charles Mok 莫乃光 Facebook 的最佳貼文
北京干預選舉種票買票驗票惡行大暴露
區選日自稱內地媒體長駐投票站攝錄 部分拒絕透露身份
《鏗鏘集》統計最少涉50個票站共103人
https://www.facebook.com/rthk.HKConnection/posts/2549143388468061
區選日自稱內地媒體長駐投票站攝錄 部分拒絕透露身份
《鏗鏘集》統計最少涉50個票站共103人
《鏗鏘集》在區議會選舉日,收到近百名來自各選區市民投訴,指在票站外有身份不明人士,以攝錄機長時間拍攝票站門口,惹人疑慮。當中部分進行拍攝人士拒絕表明身份,有部分人則自稱為內地媒體,但只有少數記者願意出示採訪證明。《鏗鏘集》記者親身視察部分投票站,嘗試釐清攝錄人士的身份,並整理市民提供的資料製作成互動地圖。
綜合市民提供和《鏗鏘集》記者現場視察的資料,有關情況遍佈港、九、新界15個選區,最少涉及50個票站及103人,當中大部分票站並非焦點票站、未有政治明星參選;其中在大埔區、元朗區各有10個和9個票站出現類似情況。在103名進行錄影的人士當中,有60人自稱是內地媒體記者,其餘人士皆屬身份不明或拒絕透露具體身份。
長時間逗留 拍攝手法異於一般媒體
選民向《鏗鏘集》記者指出,進行攝錄的人士大多在早上7時半投票開始前已抵達票站,把攝錄器材對著票站門口或排隊人龍拍攝,部分票站更同時出現兩隊攝製隊。有關人士長期逗留在同一票站外錄影,最少長達兩、三小時,期間極少轉換拍攝角度、且未有在現場採訪,與一般傳媒機構做法不同。
由於他們的器材沒有貼上機構標誌,僅有少部分人士穿著「記者」字樣的黃色背心,不少選民表示擔心自己的容貌被不明人士記錄。而當選民向有關人士查證他們的身份時,不少人拒絕透露、甚至直接離開;也有人只表示自己是內地媒體,但拒絕表明所屬機構名稱及出示記者證明。
《鏗鏘集》記者當日在接獲投訴後,走訪荃灣、葵青、大埔、元朗、北區共14個票站,在其中7個票站遇到相關人士在票站外拍攝。在荃灣祁德尊選區王少清中學門外,有4名男士以攝錄機和相機、正面拍攝排隊進入票站的選民。記者向票站職員表示有市民關注攝錄人士的身份,唯職員表示「他們在公眾地方正常拍攝,我們無權阻止,也沒有權力去查他們的證明文件…若做一些超出我們權限的行為,恐怕會被人投訴。」
當《鏗鏘集》記者和監察投票代理人向有關人士查詢,他們自稱是內地媒體,最初拒絕透露來自甚麼機構;直至代理人再向票站主任投訴,其中一名男士始出示《南方都市報》記者證,之後一直逗留到下午才離開。
而在荃灣南選區聖芳濟中學,就有兩隊攝製隊共五人在票站的對面馬路攝錄,理論上可從側面拍攝到排隊的選民。《鏗鏘集》記者在現場觀察到有關人士,長時間在同一位置錄影,不時把玩手機,不像一般攝影師不時調整鏡頭或角度;他們也一律不打開顯示屏,旁人無法看清其攝錄內容,只能憑攝錄機的紅色閃燈判斷是否正在錄影。
強調行為屬新聞自由 部分人士留至投票結束
《鏗鏘集》記者在場期間,最少有兩名市民向攝錄人士表達不滿,有關人士回應指自己是記者:「那麼你(市民)快點報警,我在此等你...這是新聞採訪自由...我覺得我是合法的。」該名記者向《鏗鏘集》表示,是《南方都市報》駐廣州記者,但身上沒有記者證和卡片,自發與另一名同事來拍攝選舉,又表示不知道機構是否有安排其他同事來港採訪。
《鏗鏘集》記者在當晚10時左右返回同一個票站,發現其中一隊攝製隊仍在進行攝錄;直至10時半投票結束後,一行三人收拾器材離開。由市民提供的相片和片段顯示,在50個票站中,最少有14個票站的攝製隊,一直逗留至入黑或投票結束後才離開。
僅33人披露所屬媒體 其中6人曾出示記者證明
當日願意透露自己所屬媒體的記者有33人,主要來自廣東省或深圳,分別報稱任職《廣州新快報》、《南方都市報》、廣東電視台、深圳報業集團、廣州廣播電視台等等,另有幾名報稱來自福建省、海口市和汕頭市的記者。在這33人中,只有6名記者曾出示印有自己相片和姓名的記者證。
《鏗鏘集》透過國家新聞出版廣電總局轄下中國記者網查證6名記者的姓名和所屬機構,只有兩名分別來自《南方都市報》和廣州廣播電視台的記者,能透過網站核實到記者身份;另外兩名來自海口市的記者,則能在其任職媒體網站找到署名文章,其餘兩名記者就無法查證。
內媒報道寥寥 多採用新華社通稿
《鏗鏘集》記者翻查上述多間媒體於11月24日至27日(截至晚上10時),在官方網站、微信、微博、報紙、應用程式等平台發佈的新聞,未有發現關於香港區議會選舉的詳細文字或影像報道。其中《廣東新快報》、深圳報業集團屬下《深圳特區報》、廣東電視台等,僅於11月26日引用新華社約300字通稿,報道香港區選結束,「止暴制亂、恢復秩序仍是香港當前最緊迫的任務」。
《南方都市報》亦未有報道區議會選舉當日情況,只在微博和微信帳號發表「港鐵向暴徒索償」、「香港崇光百貨經營受阻」、年輕人向港警宿舍投汽油彈被捕等新聞。眾多媒體中,深圳衛視新聞報道相對有較長的篇幅,不過在最長的一段兩分鐘新聞中,幾個票站的畫面合共只佔約30秒,也未有任何票站的縮時影像。
《鏗鏘集》與幾名內地記者聯繫,希望了解內地媒體如何部署今次區選報道?自稱內地媒體人士長時間在票站外拍攝又是否正常?有已離開體制的前記者表示,看不見有內地媒體大肆報道香港的區選、「在視頻中也看不到有拍了一整天的素材」。他又指那些長期逗留在票站外的記者「要不幫黨國機器監控,要不想拍攝有利中共的片段如暴徒衝擊等」。有現職廣州記者就表示未聽聞中宣部有特別指令下達予記者。
記者:蔡玉玲 尹仲然 馬可恩
(註:互動地圖想達到最佳觀看效果,在手機上可使用google map應用程式,若使用safari請勿使用私密瀏覽;若使用桌上電腦,建議使用Chrome瀏覽器)
查詢電腦名稱指令 在 吳老師excel函數與vba大數據教學 Facebook 的最讚貼文
VBA處理大數據政府開放與快速做出查詢系統
完整連結:
http://terry55wu.blogspot.tw/2016/05/vba.html
這是在東吳大學進修推廣部的VBA進階課上課的範例,
分享如何用簡單的VBA知識,就可以輕易地做出查詢系統來,
讓您快速輸入查詢關鍵字,就可以輕易地將查詢結果輸出到新的工作表中,
只需要有些VBA的基本知識,再多認識工作表物件(sheets)就足夠了。
建議先學會以下分享課程:
用EXCEL批次查詢實價登錄開放資料(大數據處理實例) [連結]
用EXCEL設計按清單批次查詢資料(自動新增工作表) [連結]
公訓處Big Data加值應用課程分享 [連結]
用EXCEL快速建立資料查詢系統(錄製巨集與修改) [連結]
如何建立EXCEL版的成語查詢系統 [連結]
如何快速在EXCEL中建立查詢系統(免資料庫)之1 [連結]
如何快速在EXCEL中建立查詢系統(免資料庫)之2 [連結]
如何將單次查詢改為批次查詢 [連結]
資料庫批次篩選新增與更名工作表 [連結]
大數時代來臨如果不懂得裡用自動化方式處理資料,
處理資料將非常沒有效率,
至於處理大數據的方案很多,
但最通行也沒有額外費用的大概只剩VBA了。
而且開啟EXCEL就包含VBA,除了在Windows外,
MAC蘋果電腦一樣也有EXCEL,
VBA也可以沿用以前VB的資源,這樣看來VBA處理大數據應該沒有什麼對手了。
本範例主要是利用EXCEL的篩選功能時做成VBA,
可以一鍵就可以批次查出政府開放的實價登錄的查詢結果,
自動依據清單,可以自動將清單項目,逐一自動新增工作表,
並將查詢結果匯入,也可以隨時更改查詢需求,
除了便利外,也非常有彈性,
並可結合從網路下載資料到EXCEL中,隨時更新最新的資訊。
當然未來也可以結合雲端資料庫,與APP連動了。
內政部不動產實價登錄網站 [連結]
範例檔 [下載]
上課內容:
01_下載內政部實價登錄開放資料
02_下載EXCEL檔案
03_只下載新北市開放資料
04_留下不動產買賣資料
05_貼上查詢VBA程式做修改
06_產生輸入地址關鍵字介面
07_自動新增工作表並輸出結果
程式碼:
教學影音(完整版在論壇):
http://terry55wu.blogspot.tw/2016/05/vba.html
教學影音完整版在論壇:
https://groups.google.com/forum/#!forum/scu_excel_vba2_86
課程特色:
1.如何將函數轉成VBA2.VBA與資料庫快速結合
EXCEL函數、 VBA程式設計與資料庫是分別屬於三個領域的知識,
但卻是目前大家都需要的一項專業技能,要把三者融合的很好實在非常不容易,
剛好我有近20年的VB程式設計與資料庫設計的經驗,
教EXCEL函數與相關課程也有多年,因此清楚如何把最重要的知識教給大家,
ADO資料庫設計的知識非常多,但根據我多年的設計實務經驗,
覺得最重要的是掌握SQL語言,就可以輕易的完成查詢、新增、修改與刪除等功能,
就可以輕易的完成自己想處理的大量資料,大大提高工作效率了!
上課用書是:
Excel函數&VBA其實很簡單(http://www.books.com.tw/exep/prod/booksfile.php…)
Excel VBA 與資料庫整合大活用(http://www.books.com.tw/exep/prod/booksfile.php…)
完整教學影音DVD申請:http://goo.gl/ZlBZE
論壇:http://groups.google.com/group/labor_excel_vba?hl=zh-TW
相關教學連結:
如何設計VBA表單與EXCEL當資料庫用(85期)
提高效率VBA入門班第1次上課心得分享
EXCEL VBA處理股票分析自動最佳化範例
如何在EXCEL VBA中快速刪除空白列
定存範例轉VBA與只能輸入數字的InputBox
如何學會EXCEL VBA資料庫系列之一
EXCEL VBA入門:如何撰寫自動格式化的VBA程式
EXCEL VBA入門之一:如何函數轉VBA
VB.NET設計(九九乘法表&小狗動畫&撲克牌&字幕)
回覆Excel VBA入門與進階課的差異?
如何批次下載股市資料到EXCEL中之2
如何用VBA快速取得期貨交易資料(開收高低量)
如何在EXCEL VBA隱藏與顯示工作表
如何移動工作表與排序之1
如何批次下載股市資料到EXCEL中之1
如何批次下載股市資料到EXCEL中
如何建立表單與將EXCEL當成資料庫
如何讓用ACCESS將EXCEL的資料
如何排序工作表
如何將單次查詢改為批次查詢(EXCEL VBA自動化)
如何在EXCEL VBA的工作表隨機上顏色
如何快速在EXCEL中建立查詢系統(免資料庫)之2
如何精簡VBA程式與傳遞引數
如何快速在EXCEL中建立查詢系統(免資料庫)之1
如何將大量工作表整合在一個工作表
如何在EXCEL VBA新增沒有重複名稱工作表
如何自動下載YAHOO股市資料到EXCEL中
如何建立表單與將EXCEL當成資料庫使用
如何在EXCE VBA中複製工作表
如何在EXCEL VBA如何保護工作表
如何在EXCEL VBA新增沒有重複名稱工作表
如何在EXCEL工作表中移動
EXCEL VBA辦公自動化_如何建立查詢系統
如何當下拉清單改變時自動抓取資料之一
如何將數學函數轉EXCEL VBA設計之二
如何增加EXCEL VBA按鈕
如何設定EXCEL VBA開發環境設定說明
如何將EXCEL函數轉成VBA
如何再VBA中建立EXCEL的自訂函數讓公式變簡單
1.EXCEL VBA設計(自強基金會2012)第4次上課
http://terry55wu.blogspot.tw/2012/03/excel-vba20124.html
2.如何把EXCEL"函數"變為 "VBA"?自強基金會2012第5次上課
http://terry55wu.blogspot.tw/2012/04/excel-vba.html
3.自強基金會2012第8次上課
http://terry55wu.blogspot.tw/2012/05/excel-vba20128.html
4.自強基金會2012第9次上課
http://terry55wu.blogspot.tw/2012/05/excel-vba20129.html
5.EXCEL_VBA與資料庫--自強基金會2012(Ending)
http://terry55wu.blogspot.tw/2012/…/excelvba-2012ending.html
EXCEL,VBA,函數東吳進修推廣部,EXCEL VBA 函數 程式設計 線上教學 excel vba 教學 excel vba指令教學 vba範例教學excel excel vba教學視頻 excel函數教學 excel函數
查詢電腦名稱指令 在 鍾日欣 Youtube 的最佳解答
我是JC老師
電腦相關課程授課超過6000小時的一位AutoCAD課程講師
由於實在太多同學向JC老師反映,希望可以有線上課程學習
所以就決定錄製一系列的AutoCAD線上影片教學
而且不加密、不設限、不販售,就是純分享,希望可以幫助到有需要的朋友們
如果這部AutoCAD教學影片對你有幫助的話
請幫我按個讚,給我點鼓勵,也多分享給需要的朋友們喔~
---------------------------------------------------------------------------------------------------------
單行文字DTEXT、TEXT(DT):
● 建立單行文字物件。
● 指定字型-執行指令-指定文字插入點-指定高度-指定文字旋轉角-輸入文字
● ENTER表示換行,ENTER / ENTER表示確定文字輸入
● J對正:
◆ 靠左對齊:CAD預設的對齊方式即是靠左對齊
◆ 靠右對齊(R):在指定文字插入點時先按下R,文字即是靠右對齊
◆ 置中對齊(C):在指定文字插入點時先按下C,文字即是置中對齊,文字向底線中心點對齊
◆ 中央對齊(M):在指定文字插入點時先按下M,文字即是中央對齊,文字向中線中央點對齊
◆ 對齊(A):在指定文字插入點時先按下A,文字即是對齊對齊,文字寫於兩點之間比例維持不變
◆ 佈滿對齊(F):在指定文字插入點時先按下F,文字即是佈滿對齊,文字寫於兩點之間高度維持不變
● S字型:
◆ 輸入字型名稱(建議直接用按的會比較快)
◆ 名稱必須完全對
◆ ?列式會將所有字型名稱列出
● 文字寫入技巧:
◆ 輸入文字時,當你按下第一個ENTER可換行繼續輸入文字
◆ 輸入完成後,按下ENTER換行,不需打字再按一次ENTER即可結束輸入文字
◆ 上述的輸入方式不可用滑鼠右鍵的ENTER來替代,必須是鍵盤的ENTER也不可以是空白鍵
◆ 剛結束的文字書寫如果希望再繼續寫下一行,執行DTEXT後指定文字起點直接按下ENTER不需指定位置,即可繼續下一行書寫,此時文字會呈現反白
◆ 對文字連點兩下可編輯文字
◆ 型式式工具列可快速查詢及修改文字字型
● 控制碼介紹:
◆ %%O:頂線模式開關(¯)
◆ %%U:底線模式開關(_)
◆ %%P:「正負」公差符號(±)
◆ %%C:圓直徑標註符號,只有大字體才能使用(Ø)
◆ %%D:角度符號(°)
◆ %%%:百分比符號(%)
---------------------------------------------------------------------------------------------------------
AutoCAD 2016 2D 線上教學影片目錄:http://bit.ly/2Y5F4Mw
AutoCAD 2016 2D 線上教學影片範例下載:https://bit.ly/3eOuKQR
AutoCAD 2D 常用快速鍵清單整理:http://bitly.com/2dUEJ9d
建築室內設計Arnold擬真呈現教學影片目錄:https://bit.ly/2VbZmmd
TQC AutoCAD 2008 2D 線上教學影片目錄:http://bitly.com/2dUGQtB
3ds Max 2015 線上教學影片目錄:http://bitly.com/2dUGqn3
JC老師個人網站:http://jc-d.net/
JC老師個人FB:https://www.facebook.com/ericjc.tw
JC-Design LINE ID:@umd7274k
![post-title](https://i.ytimg.com/vi/SXNxK1M57FA/hqdefault.jpg)
查詢電腦名稱指令 在 鍾日欣 Youtube 的最讚貼文
我是JC老師
電腦相關課程授課超過6000小時的一位AutoCAD課程講師
由於實在太多同學向JC老師反映,希望可以有線上課程學習
所以就決定錄製一系列的AutoCAD線上影片教學
而且不加密、不設限、不販售,就是純分享,希望可以幫助到有需要的朋友們
如果這部AutoCAD教學影片對你有幫助的話
請幫我按個讚,給我點鼓勵,也多分享給需要的朋友們喔~
---------------------------------------------------------------------------------------------------------
單行文字DTEXT、TEXT(DT):
● 建立單行文字物件。
● 指定字型-執行指令-指定文字插入點-指定高度-指定文字旋轉角-輸入文字
● ENTER表示換行,ENTER / ENTER表示確定文字輸入
● J對正:
◆ 靠左對齊:CAD預設的對齊方式即是靠左對齊
◆ 靠右對齊(R):在指定文字插入點時先按下R,文字即是靠右對齊
◆ 置中對齊(C):在指定文字插入點時先按下C,文字即是置中對齊,文字向底線中心點對齊
◆ 中央對齊(M):在指定文字插入點時先按下M,文字即是中央對齊,文字向中線中央點對齊
◆ 對齊(A):在指定文字插入點時先按下A,文字即是對齊對齊,文字寫於兩點之間比例維持不變
◆ 佈滿對齊(F):在指定文字插入點時先按下F,文字即是佈滿對齊,文字寫於兩點之間高度維持不變
● S字型:
◆ 輸入字型名稱(建議直接用按的會比較快)
◆ 名稱必須完全對
◆ ?列式會將所有字型名稱列出
● 文字寫入技巧:
◆ 輸入文字時,當你按下第一個ENTER可換行繼續輸入文字
◆ 輸入完成後,按下ENTER換行,不需打字再按一次ENTER即可結束輸入文字
◆ 上述的輸入方式不可用滑鼠右鍵的ENTER來替代,必須是鍵盤的ENTER也不可以是空白鍵
◆ 剛結束的文字書寫如果希望再繼續寫下一行,執行DTEXT後指定文字起點直接按下ENTER不需指定位置,即可繼續下一行書寫,此時文字會呈現反白
◆ 對文字連點兩下可編輯文字
◆ 型式式工具列可快速查詢及修改文字字型
● 控制碼介紹:
◆ %%O:頂線模式開關(¯)
◆ %%U:底線模式開關(_)
◆ %%P:「正負」公差符號(±)
◆ %%C:圓直徑標註符號,只有大字體才能使用(Ø)
◆ %%D:角度符號(°)
◆ %%%:百分比符號(%)
---------------------------------------------------------------------------------------------------------
AutoCAD 2016 2D 線上教學影片目錄:http://bit.ly/2Y5F4Mw
AutoCAD 2016 2D 線上教學影片範例下載:https://bit.ly/3eOuKQR
AutoCAD 2D 常用快速鍵清單整理:http://bitly.com/2dUEJ9d
建築室內設計Arnold擬真呈現教學影片目錄:https://bit.ly/2VbZmmd
TQC AutoCAD 2008 2D 線上教學影片目錄:http://bitly.com/2dUGQtB
3ds Max 2015 線上教學影片目錄:http://bitly.com/2dUGqn3
JC老師個人網站:http://jc-d.net/
JC老師個人FB:https://www.facebook.com/ericjc.tw
JC-Design LINE ID:@umd7274k
![post-title](https://i.ytimg.com/vi/8w274aYVmRg/hqdefault.jpg)
查詢電腦名稱指令 在 鍾日欣 Youtube 的精選貼文
我是JC老師
電腦相關課程授課超過6000小時的一位AutoCAD課程講師
由於實在太多同學向JC老師反映,希望可以有線上課程學習
所以就決定錄製一系列的AutoCAD線上影片教學
而且不加密、不設限、不販售,就是純分享,希望可以幫助到有需要的朋友們
如果這部AutoCAD教學影片對你有幫助的話
請幫我按個讚,給我點鼓勵,也多分享給需要的朋友們喔~
---------------------------------------------------------------------------------------------------------
單行文字DTEXT、TEXT(DT):
● 建立單行文字物件。
● 指定字型-執行指令-指定文字插入點-指定高度-指定文字旋轉角-輸入文字
● ENTER表示換行,ENTER / ENTER表示確定文字輸入
● J對正:
◆ 靠左對齊:CAD預設的對齊方式即是靠左對齊
◆ 靠右對齊(R):在指定文字插入點時先按下R,文字即是靠右對齊
◆ 置中對齊(C):在指定文字插入點時先按下C,文字即是置中對齊,文字向底線中心點對齊
◆ 中央對齊(M):在指定文字插入點時先按下M,文字即是中央對齊,文字向中線中央點對齊
◆ 對齊(A):在指定文字插入點時先按下A,文字即是對齊對齊,文字寫於兩點之間比例維持不變
◆ 佈滿對齊(F):在指定文字插入點時先按下F,文字即是佈滿對齊,文字寫於兩點之間高度維持不變
● S字型:
◆ 輸入字型名稱(建議直接用按的會比較快)
◆ 名稱必須完全對
◆ ?列式會將所有字型名稱列出
● 文字寫入技巧:
◆ 輸入文字時,當你按下第一個ENTER可換行繼續輸入文字
◆ 輸入完成後,按下ENTER換行,不需打字再按一次ENTER即可結束輸入文字
◆ 上述的輸入方式不可用滑鼠右鍵的ENTER來替代,必須是鍵盤的ENTER也不可以是空白鍵
◆ 剛結束的文字書寫如果希望再繼續寫下一行,執行DTEXT後指定文字起點直接按下ENTER不需指定位置,即可繼續下一行書寫,此時文字會呈現反白
◆ 對文字連點兩下可編輯文字
◆ 型式式工具列可快速查詢及修改文字字型
● 控制碼介紹:
◆ %%O:頂線模式開關(¯)
◆ %%U:底線模式開關(_)
◆ %%P:「正負」公差符號(±)
◆ %%C:圓直徑標註符號,只有大字體才能使用(Ø)
◆ %%D:角度符號(°)
◆ %%%:百分比符號(%)
---------------------------------------------------------------------------------------------------------
AutoCAD 2016 2D 線上教學影片目錄:http://bit.ly/2Y5F4Mw
AutoCAD 2016 2D 線上教學影片範例下載:https://bit.ly/3eOuKQR
AutoCAD 2D 常用快速鍵清單整理:http://bitly.com/2dUEJ9d
建築室內設計Arnold擬真呈現教學影片目錄:https://bit.ly/2VbZmmd
TQC AutoCAD 2008 2D 線上教學影片目錄:http://bitly.com/2dUGQtB
3ds Max 2015 線上教學影片目錄:http://bitly.com/2dUGqn3
JC老師個人網站:http://jc-d.net/
JC老師個人FB:https://www.facebook.com/ericjc.tw
JC-Design LINE ID:@umd7274k
![post-title](https://i.ytimg.com/vi/mJsOMHWaeeA/hqdefault.jpg)
查詢電腦名稱指令 在 Comments - YouTube 的推薦與評價
... 電腦. 53.五分鐘學 電腦 :想要查主機板規格- 名稱 /製造商/型號,但不想安裝軟體或拆 電腦 外殼,簡單一行 指令 讓你快速搞定!w11/w10. 134 views · 2 weeks ... ... <看更多>