2010年10月27日 星期三

[excel][access]excel抓access資料

工作上難免收到 access 的資料庫,要把部份資料抓進來。不要說用人工處理成千上萬筆的資料很痛苦,就連一兩百筆資料要核對就夠累人了。

打開 excel 然後,進到俗稱 VBA 編輯器去,在
工具>>設定引用項目

Microsoft ActiveX Data Objects 6.0 Library
勾起來。是的,我要用 ADO。

首先建立 connection
Dim cn As ADODB.Connection
Set cn = New ADODB.Connection
cn.Open ("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & AccessFileFullPath & ";")

再來開啟 Recordset
Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset
rs.Open "select * from mytable", cn, adOpenStatic, adLockReadOnly

接下來把資料帶出來,最簡單循序的方法如下,每一個 recordset 可以用 index 取該 column 的值,或用 column name 來取值。
Do While rs.EOF = False
iid = rs(0).Value
sname = rs("CityName").Value
rs.MoveNext
Loop

至於 recordset 開啟時的參數有何不同功效,有待改日或高人指點。

2010年10月21日 星期四

[webdav]可惜有限制

原本打算,有了webdav,就可以把網路芳鄰給丟到一邊了。因為這兩個看起來功能真的都一樣,而且好像webdav還可以支援到外部ip,不是很讚嗎?

不過,我遇到一個限制,就是單一檔案傳送,不能超過2G,現在很多好看的檔案都超過2G,叫我怎麼辦呢?

不曉得這個限制是我設定的問題還是apache webdav在compile設參數的問題,亦或是spec天生的限制。

之前看設定檔上面寫LimitXMLRequestBody最大值是2G,我也試過0,也是失敗。

[xml]xml formatter

常常遇到別人寄來的xml沒有縮排,因為都是用機器產生的。
如果要看,雖然可以用瀏覽器來看,但是要手動改幾個內容,還是會找不到位置。
隨手用dot net寫一個,自己用一用,記錄下來以免忘了。

xdoc = new XmlDocument();
xdoc.Load(inputname);
XmlWriterSettings xws = new XmlWriterSettings();
xws.Indent = true;
xws.Encoding = System.Text.Encoding.UTF8;
XmlWriter xw = XmlWriter.Create(outputname, xws);
xdoc.WriteTo(xw);
xw.Flush();
xw.Close();

就這幾行,把inputname及outputname指定了,就搞定了。