我先在ACCESS数据库里调试好了下面的SQL语句,但是放进VB里执行到它是却报错
SELECT [order].[date] AS 时间, 
[order].[orderID] AS 定单号, 
[order].[breedID] AS 品种, 
[order].[amount] AS 数量, 
[callback].[reclaim_date] AS 反还时间, 
[callback].[amount] AS 反还数量, 
([order].[amount]-[callback].[amount])/[order].[amount] AS 损失率
FROM [order] LEFT JOIN callback ON ([order].[breedID]=[callback].[breedID]) 
AND ([order].[orderID]=[callback].[orderID])
WHERE [order].[customerID]='JLFDIA';
放进VB里是这样的:
rs.Open "SELECT [order].[date] AS 时间, " & _
    "[order].[orderID] AS 定单号," & _
    "[order].[breedID] AS 品种," & _
    "[order].[amount] AS 数量," & _
    "[callback].[reclaim_date] as 反还时间," & _
    "[callback].[amount] AS 反还数量," & _
    "([order].[amount]-[callback].[amount])/[order].[amount] AS 损失率" & _
    "FROM [order] LEFT JOIN callback ON ([order].[orderID]=[callback].[orderID])" & _
    "AND ([order].[breedID]=[callback].[breedID])" & _
    "where [order].[customerID]='JLFDIA';", con, adOpenStatic, adLockPessimistic

解决方案 »

  1.   

    单从语句上看,我只发现有三处没有加空格,如果真是这样运行肯定会出错的。
    一、FROM前面没有空格。
    二、LEFT JOIN后的AND前面没有空格。
    三、WHERE前面没有空格。
      

  2.   

    还有就是在Access里语句结尾可以加“;”,VB里好像不要加的好。
      

  3.   

    "([order].[amount]-[callback].[amount])/[order].[amount] AS 损失率" & _
        "FROM [order] LEFT JOIN callback ON ([order].[orderID]=[callback].[
    损失率   和 FROM 之间没有空格,在损失率和FROM之间加上一个空格即可