如何在没有在PC上安装MSAccess的情况下使用Delphi Application在MS Access数据库中创建VIEW?

Gan*_*pat 4 database delphi ms-access view

我想在MS Access上创建VIEW定义.我使用了以下CREATE VIEW声明:

SELECT 
   MFP.FollowUpPlan_Id, 
   MFP.FollowUpPlan_Name AS PlanName, 
   DFP.Sequence_No AS SequenceNo, 
   MFS.FollowUpSchedule_Name AS ScheduleName    
FROM 
   MAS_FollowUp_Plan AS MFP, 
   DET_FollowUp_Plan AS DFP, 
   MAS_FollowUp_Schedule AS MFS
WHERE 
   (((MFP.FollowUpPlan_Id)=DFP.FollowUpPlan_Id) AND
   ((DFP.FollowUpSchedule_Id)=MFS.FollowUpSchedule_Id)) AND
   MFP.is_Deleted = FALSE AND
   DFP.is_Deleted = false     
ORDER BY 
   MFP.FollowUpPlan_Id, DFP.Sequence_No;       
Run Code Online (Sandbox Code Playgroud)

但它抛出一个错误:

Only Simple Select Queries are allowed in view.
Run Code Online (Sandbox Code Playgroud)

请帮忙,先谢谢.

Han*_*sUp 6

正如Jeroen所解释的,这里的问题是Access CREATE VIEW声明的限制.对于这种情况,您可以CREATE PROCEDURE改为使用.它将创建db的QueryDefs集合的新成员---因此从Access用户界面将显示为新的命名查询.

以下声明适用于我使用VBScript中的ADO.从以前的Delphi问题来看,我的理解是Delphi也可以使用ADO,所以我相信这也适合你.

CREATE PROCEDURE ViewSubstitute AS
SELECT
    MFP.FollowUpPlan_Id,
    MFP.FollowUpPlan_Name AS PlanName,
    DFP.Sequence_No AS SequenceNo,
    MFS.FollowUpSchedule_Name AS ScheduleName
FROM
    (MAS_FollowUp_Plan AS MFP
    INNER JOIN DET_FollowUp_Plan AS DFP
    ON MFP.FollowUpPlan_Id = DFP.FollowUpPlan_Id)
    INNER JOIN MAS_FollowUp_Schedule AS MFS
    ON DFP.FollowUpSchedule_Id = MFS.FollowUpSchedule_Id
WHERE
    MFP.is_Deleted=False AND DFP.is_Deleted=False
ORDER BY
    MFP.FollowUpPlan_Id,
    DFP.Sequence_No;
Run Code Online (Sandbox Code Playgroud)