如何在VBA中将记录集读取为字符串

时间:2012-06-22 08:57:12

标签: excel vba excel-vba recordset

我有一些代码可以从数据库中读取记录。当我读取时,recordset变量将表值修改为自己的格式。 对于Eg:

在数据库中

  

时间值是12345(不是日期和时间),但是当记录集读取它时,它   例如:2012年6月23日   十点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

任何人都可以让我知道如何将数据读取为String(就像在数据库中一样),这样就不会发生格式变化。

注意:由于其他要求,我无法转换Excel单元格格式,但我想将其视为表格中的字符串

1 个答案:

答案 0 :(得分:5)

如果你写

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