更改ADODB.Recordset或ADODB.Connection的语言

时间:2015-11-23 08:19:06

标签: excel vba excel-vba

当我从连接中检索带有记录集的数据时,我无法控制日期语言。这就是我检索数据的方法:

Set rsData = New ADODB.Recordset
Set rsData = conODBC.Execute(sql)

SQL语句的行如下:

TO_CHAR(TO_DATE(TO_CHAR(DB_MONTH), 'MM'),'MON')||DB_YEAR AS DATE_STR

它将DB_MONTH和DB_YEAR转换为DEC16,并且与SQL Developer完美配合。

但是,如果它作为带有VBA的Recordset字段,日期将转换为德语(我使用德语Excel),我收到DEZ16。

当我将数据卸载到工作表中并继续使用它时,这成为一个问题,因为我无法控制数据字符串的返回方式。

1 个答案:

答案 0 :(得分:0)

在运行查询之前,必须将数据语言设置为所需的值。应该是这样的:

Dim cmd As New ADODB.Command
cmd.CommandType = CommandType.Text
cmd.CommandText = "ALTER SESSION SET NLS_DATE_LANGUAGE = 'AMERICAN';"
cmd.Execute