我在 Access 2007 中使用带有 SQL 2005 主干的 VB 代码。我的 SQL 服务器位于单独的机器上,下面的代码在客户端上运行。问题是当我运行下面的 UPDATE 命令时,我收到错误“操作必须使用可更新查询”。我知道这很常见,但我在互联网上的所有研究都没有产生与我的情况相似的任何东西。
Dim MyDB as DAO.Database
Dim sSQL as String
sSQL = "UPDATE tblBMS_Batch SET Status = 70 WHERE Batch_ID = 108582"
MyDB.Execute sSQL
设置的表如下
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[tblBMS_Batch](
[Batch_Id] [int] IDENTITY(1,1) NOT NULL,
[SDetail_Id] [int] NULL,
[Destination_Id] [int] NULL,
[Batch_Number] [smallint] NULL,
[Line_Number] [smallint] NULL,
[Packing_Number] [smallint] NULL,
[Start_Time] [datetime] NULL,
[End_Time] [datetime] NULL,
[Status] [smallint] NULL,
[Batch_Note] [varchar](1000) NULL,
[Employee_Number] [smallint] NULL,
[PLC_BatchNumber] [smallint] NULL,
[Packing_BatchLetter] [varchar](3) NULL,
[Number_Bags] [smallint] NULL,
[Abort_Status] [bit] NULL,
[Return_Bags] [smallint] NULL
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
错误发生在执行上。为了使它更加混乱,完全相同的 UPDATE 直接在 SQL 中工作,我还可以在同一台机器上的单独应用程序中的其他 VB 代码中更新该表(尽管使用 ADODB 连接)。
有任何想法吗?我在这里很困惑。提前致谢。
杰森