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单元格格式,但我想将所有内容读取为表中的字符串
如果你写
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)