2012-06-22 26 views
3

我有一些代碼可以從數據庫中讀取記錄。當我讀,記錄集變量修改表格值爲它自己的格式。 對於EG:如何在VBA中將字符串讀入記錄集

在數據庫

時間值是12345(不日期&時間),但是當記錄集讀取它,它 之際,對於如:23-06-2012 10:15: 23

我剛剛發現記錄集本身在做它後以自己的格式存儲值。

Set rs = CmdSqlData.Execute()

那麼,有沒有辦法定義記錄爲String

這是代碼。

Dim rs As ADODB.RecordSet 
Set rs = CmdSqlData.Execute() 
Do While (rs.EOF = FALSE And rs.BOF = FALSE) 
    p = rs.GetRows(1) 
    cell(1,1) = p(0,0) 
Loop 

任何人都可以請讓我知道如何讀取數據的字符串(因爲它是在數據庫),以便在格式沒有任何變化都會發生。

注:我不能Excel單元格的格式轉換,由於其他的要求,但我想讀的寄託都作爲字符串從表

+0

嘗試之前'細胞(1,1)= P(0,0)加入這一行''..細胞(1,1).NumberFormat = 「HH:MM:SS」' –

+0

@SiddharthRout :我不會有這樣的格式,因爲我也有其他專欄。我可能不知道這種格式何時到達單元格。由於某些要求,我已經爲所有單元格製作了字符串格式的excel。我只想將記錄集讀作「String」。 有沒有其他辦法 – logan

+0

我相信有一個'rs.GetString()'方法。 –

回答

4

如果你寫

CStr(p(0,0)) 

到單元格,Excel將轉換爲適合內容的類型,所以如果p(0,0)是一個數字,那麼該單元格就是數字。

但是,如果寫

ActiveSheet.Cells(1, 1) = "'" & p(0, 0) 

單元格A1將包含「2來查看,但可以被操縱爲字符串。這是從Excel的早期版本剩下的,在那裏輸入一個字符串,你必須用一個單引號作爲前綴。

A1 
2 
=A1=2 FALSE 
=A1="2" TRUE 
+0

+ 1我幾乎忘了'''大聲笑 –

+0

@SiddharthRout:這個單引號會被忽略,只有字符串會被存儲在excel中嗎? (對不起,我正在處理服務器機器,所以我不能立即檢查) – logan

+0

@logan你是什麼意思?我的解釋的哪一部分不清楚(答案是我的,順便說一句)? – Fionnuala

相關問題