Mysql Excel VBA ODBC连接导入的列格式

Mysql Excel VBA ODBC连接导入的列格式,mysql,vba,excel,odbc,Mysql,Vba,Excel,Odbc,我正在寻找一种方法来重新格式化正在使用ODBC连接导入到我的工作表中的某些字段。这些字段尤其是日期字段。我需要将它们作为文本或其他格式导入,因为数据库中的数据有时会有1850-01-01或0001-01-01的日期。导入excel时,日期仅显示为符号 以下是我当前使用的已编辑查询: 公共子刷新\u数据 将cnDB设置为新ADODB.Connection'声明连接对象。 Dim rsRecords作为新的ADODB.Recordset'声明一个记录集对象。 '打开连接 cnDB.opendsn=D

我正在寻找一种方法来重新格式化正在使用ODBC连接导入到我的工作表中的某些字段。这些字段尤其是日期字段。我需要将它们作为文本或其他格式导入,因为数据库中的数据有时会有1850-01-01或0001-01-01的日期。导入excel时,日期仅显示为符号

以下是我当前使用的已编辑查询:

公共子刷新\u数据 将cnDB设置为新ADODB.Connection'声明连接对象。 Dim rsRecords作为新的ADODB.Recordset'声明一个记录集对象。 '打开连接 cnDB.opendsn=DB;数据库=DB;Servername=server.net;UID=用户名;密码=密码;端口=0000;只读=0;SQLBitOneZero=0;LegacySQLTables=0;数值Schar=0;ShowSystemTables=0;LoginTimeout=0;QueryTimeout=0;DateFormat=1;SecurityLevel=仅固化;卡塞特档案= rsRecords.打开从DATABASE.TABLE、cnDB中选择区域CD、客户编号、生效日期 '在正确的表中打印记录 .RangeA2.CopyFromRecordset rsRecords "关上一切, RSR记录,结束 设置rsRecords=Nothing cnDB,结束 设置cnDB=Nothing 端接头
列EFF_DATE是有问题的列。

将我自己问题的答案发布给未来的后代:


当我的SELECT语句是EFF_DATE时,我将其改为将CASTEFF_DATE读为varchar30,然后保存数据库本身的格式。

您确定这些列不够宽,无法显示日期吗?如果列不够宽,无法完整显示日期,则只会显示这是某种可接受的解决方案,因为数据包含的日期超出了Excel中的有效日期范围格式0(短日期),您将得到1/0/1900,因此Excel中最早的有效日期为1/1/1900。它造成的问题是Excel不会这样对待日期。有关更多信息,请参阅。在本例中,Excel中的日期格式不是日期,这对我来说没什么大不了的。但我知道你从哪里来,如果我需要把它们格式化为日期的话。