2011-07-28 64 views
0

我正在使用Excel/Access 2007.我在Access中进行了Access查询,并且我尝试使用数据选项卡 - >获取外部数据子选项卡 - >从Access将其导入Excel 。我选择了我的数据库,并选择了我想导入的查询。但是,只有表格的标题以及2个空白行显示出来(通过将它们格式化为表格来证明)。确实有查询中返回的数据,我可以通过检查Access来验证。任何帮助将不胜感激Excel不会从Access导入表格

作为一边,可以这样做编程?

编辑:这是在所有的SQL查询它的荣耀

SELECT [Meter#], [LDC#], [ESCO#], [Brand], [LDCName], [RateClass], [RateSubClass], [CustName], 
[DemandZone], [Type], dbo_Forecasts.Name AS ForecasForecastType, 
Min(IntervalMeterConsumption.[DateFrom]) AS ConsumptionStart, IntermediateLog.[MaxOfDateRead] AS ConsumptionEnd, 
Sum([kWh])/(Sum([Interval])/365) AS AverageAnnual 

FROM (IntermediateLog 
     INNER JOIN (
        (Premise INNER JOIN Meters ON Premise.PremiseCt = Meters.PremiseCt) 
        INNER JOIN IntervalMeterConsumption 
         ON Meters.Meterid = IntervalMeterConsumption.MeterID) 
      ON IntermediateLog.[LDC#] = Premise.CustomerPremiseNo) 
INNER JOIN dbo_Forecasts ON Meters.ForecastID = dbo_Forecasts.ForecastID 

WHERE ((([MaxOfDateRead]-[DateFrom])<=380)) 

GROUP BY IntermediateLog.[Meter#], IntermediateLog.[LDC#], IntermediateLog.[ESCO#], 
IntermediateLog.Brand, IntermediateLog.LDCName, IntermediateLog.RateClass, 
IntermediateLog.RateSubClass, IntermediateLog.CustName, IntermediateLog.DemandZone, 
IntermediateLog.Type, dbo_Forecasts.Name, IntermediateLog.MaxOfDateRead; 
+0

我删除了他们在这个帖子代替简洁 – Tom

+0

的好我加了完整的查询,如果您仍然在意。上面的反应是因为我认为你可以比使用“不要告诉我们”这句话更好地表达这里的SQL查询,然后向我们展示一些不是查询的东西。羽毛有点恼怒,我的不好。 – Tom

+0

您在Excel中使用什么数据访问方法?举例来说,我知道Word 2007对很多向导默认为OLEDB,这意味着使用ANSI 89 SQL的有效Access查询(例如'LIKE“Fent *”')在通过Word执行时不会返回任何行OLEDB。我没有看到SQL中的任何显而易见的东西,它们在SQL 92和SQL 89中将有不同的解释,但这正是我开始寻找的地方。 –

回答

0

你可以尝试删除where子句只是暂时,看看是否有差别。

在Access中运行查询时是否要求参数?

的代码来查询从Access导出到Excel如下:

DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel12, "Query/Table Name", "c:\export.xls" 

感谢马克