Ms access 跨数据库数据库上的联合查询访问
我正在通过ODBC Easysoft版本7在Interbase数据库上执行Access 2010的查询。一切正常,除非我发出工会查询,例如: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
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查询 尝试强制转换字段的数据类型。可能是这样的,联合失败是因为它假定检索到的数据是不同类型的 请尝试改用标准访问查询