Ms access 跨数据库数据库上的联合查询访问

Ms access 跨数据库数据库上的联合查询访问,ms-access,odbc,interbase,Ms Access,Odbc,Interbase,我正在通过ODBC Easysoft版本7在Interbase数据库上执行Access 2010的查询。一切正常,除非我发出工会查询,例如: SELECT TRIP.TRIPDATE, RESERVATION.BOOKINGREF, RESERVATION.LEADNAME, TRIP.DRIVERID, RESERVATION.STATUS, RESERVATION.DATECANCELLED, TRIP.TRANSPORTTYPEID FROM TRIP INNER JOIN RESERVA

我正在通过ODBC Easysoft版本7在Interbase数据库上执行Access 2010的查询。一切正常,除非我发出工会查询,例如:

SELECT TRIP.TRIPDATE, RESERVATION.BOOKINGREF, RESERVATION.LEADNAME, TRIP.DRIVERID, RESERVATION.STATUS, RESERVATION.DATECANCELLED, TRIP.TRANSPORTTYPEID
FROM TRIP INNER JOIN RESERVATION ON TRIP.TRIPID = RESERVATION.ARRIVALTRIPID
WHERE (((TRIP.TRIPDATE) Between #2/1/2012# And #2/29/2012#) AND ((TRIP.DRIVERID)=2) AND ((RESERVATION.DATECANCELLED) Is Null) AND ((TRIP.TRANSPORTTYPEID)=12))


UNION 

SELECT TRIP.TRIPDATE, RESERVATION.BOOKINGREF, RESERVATION.LEADNAME, TRIP.DRIVERID, RESERVATION.STATUS, RESERVATION.DATECANCELLED, TRIP.TRANSPORTTYPEID
FROM TRIP INNER JOIN RESERVATION ON TRIP.TRIPID = RESERVATION.DEPARTURETRIPID
WHERE (((TRIP.TRIPDATE) Between #2/1/2012# And #2/29/2012#) AND ((TRIP.DRIVERID)=2) AND ((RESERVATION.DATECANCELLED) Is Null) AND ((TRIP.TRANSPORTTYPEID)=12));
当我从Access运行此查询时,我得到

ODBC-调用失败,[Easysoft][Interbase]动态SQL错误,SQL错误 代码=-104,令牌未知-第1行,字符0,-104

单独运行select查询时,它们工作正常,但通过UNION连接时,我会遇到此错误

任何帮助都将不胜感激


谢谢

您没有提到您的查询是传递查询还是在Access查询中使用链接的ODBC表

如果您使用的是普通访问查询 在普通Access查询中使用链接的ODBC表时,Access数据引擎将根据需要重写查询,使其与其他数据库引擎兼容。 但有时,它可能会失败

确保每个SELECT查询都能独立工作并返回正确的数据

尝试一个更简单的UNION查询,以确保问题来自UNION关键字本身

全联盟试试

尝试改用传递查询

如果您使用的是传递查询 传递查询被逐字发送到ODBC引擎,Access只收集结果而不重写查询本身

确保每个SELECT查询作为传递查询工作,并独立返回正确的数据

请确保您的电脑。 对于Access SQL,您使用的是正确的,但是不同的数据库接受不同的格式

尝试使用仅涉及1或3个字段的简单SELECT语句进行更简单的联合查询

试试所有人

您不会在问题中显示它,但为了以防万一,如果您使用ORDERBY语句,您可以使用UNION查询

尝试强制转换字段的数据类型。可能是这样的,联合失败是因为它假定检索到的数据是不同类型的

请尝试改用标准访问查询