2017-03-08 54 views
0

我有一个Excel表上的数据,我用SQL来查询获取数据集。 这是查询返回的列。Excel中的SQL查询显示空白的某些值

Sample Data

然而,仅在数字格式的项目显示,如果该项目是字母数字,它是空白。结果查询是以下:

enter image description here

我已经格式化此列的文字和下面是我的连接字符串:

objConnectionXL.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _ 
    "Data Source=" & ThisWorkbook.FullName & ";" & _ 
     "Extended Properties=""Excel 8.0;HDR=Yes;"";" 

使用的查询字符串:

sQueryFilteredValues = "Select [Reference] From [Data$] Where " & sFilterCriteria 

我也尝试使用下面的查询字符串,但结果相同:

sQueryFilteredValues = "Select CSTR([Reference]) From [Data$] Where " & sFilterCriteria 

记录:

objRecordsetXL.Open sQueryFilteredValues, objConnectionXL, adOpenStatic, adLockOptimistic, adCmdText 

其中:ADOPENSTATIC = 3,ADLOCKOPTIMISTIC = 3,为adCmdText = & H1

而且我用下面记录复制到Excel

rngRange.Offset(1, 0).CopyFromRecordset objRecordsetXL 

如何我也在记录集上显示字母数字项目? 谢谢!

+0

什么是这些单元格上的'.NumberFormat'? – Ralph

+0

我已将.NumberFormat设置为“@”。 –

回答

0

问题在于我将查询结果复制到的范围。只有源范围具有文本格式。我将查询结果复制到的范围的格式一般,所以我猜Excel根据第一个单元格值自动将数据转换为数字。

我通过将格式更改为文本来解决此问题。