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

log*_*gan 4 excel vba recordset excel-vba

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

在数据库中

时间值为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
Run Code Online (Sandbox Code Playgroud)

任何人都可以让我知道如何以String形式读取数据(因为它在数据库中),以便不会发生格式更改。

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

Fio*_*ala 5

如果你写

CStr(p(0,0))
Run Code Online (Sandbox Code Playgroud)

对于单元格,Excel将转换为内容的适当类型,因此,如果p(0,0)是数字,则该单元格将是数字。

但是,如果您写

ActiveSheet.Cells(1, 1) = "'" & p(0, 0)
Run Code Online (Sandbox Code Playgroud)

要查看的单元格A1将包含'2,但可以作为字符串进行操作。这是Excel早期留下的,在其中输入必须用单引号作为前缀的字符串。

A1
2   
=A1=2   FALSE
=A1="2" TRUE
Run Code Online (Sandbox Code Playgroud)