我必須在excel中編寫一些VBA代碼,以便與我的VB.NET程序一起使用,並且我正在苦於VBA的基礎知識,因爲我之前沒有使用它。我發現了一些代碼,它允許我從臨時表中獲取值,並將它們直接放在Excel電子表格的相應字段中。我填充採購訂單文檔,所以傳遞的信息在事情像小計,增值稅,運費,總等VBA在變量中存儲數據庫值
這是我用來填充一個單細胞的代碼:
'get quantity
strQry = "SELECT quantity from [temp];"
Set rs = New ADODB.Recordset
With rs
Set .ActiveConnection = cn
.Open strQry
End With
'append data to document
Worksheets("PurchaseOrder").Range("D22").CopyFromRecordset rs
quantity = rs.Fields("quantity") 'setting the quatity in a variable
的最後一行代碼是我將數量值存儲在一個變量中的嘗試,我需要使用它來計算子總數,因爲子總數未傳遞給excel。填充單元格的代碼工作正常,它只是把數據放在一個變量中來操縱我正在掙扎的東西。直接從數據庫填充單元格可以正常工作,但在最後一行發生錯誤。
在將數量存儲在一個變量中後,我還想將每單位的成本存儲在一個變量中,在開始時使用子字符串等價項去掉£符號,將其轉換爲小數點,然後乘以數量來獲得小計。
我嘗試使用這個下面的代碼:
'get price
strQry = "SELECT costPerUnit from [temp];"
Set rs = New ADODB.Recordset
With rs
Set .ActiveConnection = cn
.Open strQry
End With
'append data to document
Worksheets("PurchaseOrder").Range("N22").CopyFromRecordset rs
costPerUnit = Right(rs(0), Len(costPerUnit) - 1) 'setting the cost per unit in a variable
subtotal = costPerUnit * quantity
Worksheets("PurchaseOrder").Cells("Q47").Value = "£ " & subtotal
任何幫助表示讚賞。謝謝。
這是因爲'Quantity'字段包含> 1值,並且您將它存儲在非數組變量中。嘗試將其存儲在數組或字典對象中。 –
'.MoveFirst'是否工作到第一行以讀取'quantity'。你可以使用本地窗口調試'Recordset'以確保你使用的字段名稱是正確的嗎? –
如果上面提出了多行,那麼您需要同時使用兩個Recordset對象,並且可以同時循環它們('.MoveNext'),逐行進行乘法運算並保持運行總數。或者將數據讀入2個數組並循環。 –