用SQL 陳述句 取得符合條件的資料集,
要將資料集的某兩個欄位,寫入 excel 中不相鄰的兩列單元格中.如何進行?
我現在使用的是回圈
第一行放名稱
for J=2 to 資料集的最后一條
.cells(j,1)=資料集的第一條,第一個欄位
.cells(j,11)=資料集的第一條,第五個欄位
next j
這樣進行的,發現速度比較慢,還有什么更好的辦法么?
uj5u.com熱心網友回復:
'單獨做兩個查詢
'記錄集rs1只選擇原第一個欄位
'記錄集rs2只選擇原第五個欄位
'不用回圈可以批量復制
.Range("A2").CopyFromRecordset rs1
.Range("K2").CopyFromRecordset rs2
uj5u.com熱心網友回復:
CopyFromRecordset 正解。+10086
uj5u.com熱心網友回復:
把 Excel 作為 Jet Engine 的外部資料庫,直接寫 Insert Into ... Select * From ...。uj5u.com熱心網友回復:
感謝指導。繼續請教。我在sql 表中的記錄有列 如下:
產生日期 、金額、記錄屬性、記錄時間 、記錄人、序號(自增)
記錄屬性有八個類別
我需要在excel 的每個表中列出四個屬性的,如下 :
表1:
內銷金屬 內銷塑料 內銷木質 內銷紙質 內銷金屬記錄序號 內銷塑料記錄序號 內銷木質記錄序號 內銷紙質記錄序號
2.00 3.00 10.00 5.00 12 14 16 18
1.00 30.00 5.00 6.00 13 15 17 19
......
表2:
外銷金屬 外銷塑料................................
類似表的結構。
產生sql 表中查詢后寫入excel表
是定義16個不同的RECORDESET 記錄集 ,然后賦值給excel。 還是定義一個記錄集,使用不同的SELECT 陳述句進行16次查詢,賦值呢?
各有什么利弊呢?
uj5u.com熱心網友回復:
再或者使用 查詢一次產生不同的子記錄呢?
記錄集的 Filter 屬性可以過濾記錄,“產生“一個臨時的記錄集:
ADODC1.Recordset.Filter="成績=‘合格’"
n1=ADODC1.Recordset.RecordCount'合格人數
ADODC1.Recordset.Filter="成績=‘不合格’"
n2=ADODC1.Recordset.RecordCount'不合格人數
n3=n1/(n1+n2)'合格率
恢復原來的資料:
ADODC1.Recordset.Filter=“”
uj5u.com熱心網友回復:
如果考慮資料量比較大,應該重復利用用同一個記錄集,貼完資料就釋放可以降低記憶體需求。資料量小兩種方式是感覺不出差異的。
#5的Filter方式也不適合大資料。
還有你可以把一個類別的金額、序號一次性選出來輸出兩列,一張表4個類別輸出后再通過Excel自己的列剪切插入功能調整列的次序。
一次一列太沒效率了。
uj5u.com熱心網友回復:
受教了,感謝.
uj5u.com熱心網友回復:
使用陣列輸出,速度最快。但是沒辦法定制excel的格式,全是文本。轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/96734.html
標籤:VB基礎類
上一篇:依碼士9020通訊
下一篇:關于VB.NET音頻取模程式設計
