问题标签 [ms-access-2002]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
50 浏览

vba - Access 2002 VBA - 尝试在表中输入值时出现附加查询错误

我在 Access 2002 中有一个表单,其字段由查询提供。它逐行显示记录数据。最后有一个名为“已确认”的复选框。此表单的目的是让用户确认已查看记录。在复选框的“OnClick”事件中,我有自动填充用户名字段和当前日期字段的代码。有四种不同的记录/通知类型。所有这些都有效。有一种通知类型,类型 2。

当试图确认这种类型的记录时,它必须将用户名和日期输入到当前查询之外的另一个表中。这是代码:

我同时拥有 DoCmd.RunSQL 和 CurrentDb.Execute 的原因是出于测试目的。运行 CurrentDb.Execute 时,我不会收到任何错误,但该表不会填充该记录的这两个值。当我使用 DoCmd.RunSQL 时,我得到一个确认窗口,询问我是否要附加该行。当我说是时,有一个错误指出我无法在追加查询中追加记录。我只想将这些值放入此表中。

更新:在 MS SQL 2008 中创建表 SQL,在 Access 2002 中创建链接表:CREATE TABLE [dbo].[Maintenance]( [MaintenanceID] [int] IDENTITY(1,1) NOT FOR REPLICATION NOT NULL, [AssetID] [int] NOT NULL, [MaintenanceDate] [datetime] NULL, [MaintenanceDescription] [nvarchar](255) NULL, [MaintenancePerformedBy] [nvarchar](100) NULL, [MaintenanceCost] [float] NULL, [NextMaintenanceDate] [datetime] NULL, [Acknowledged] [bit] NOT NULL, [AckTimeStamp] [timestamp] NULL, [AckBy] [varchar](50) NULL, [AckDate] [datetime2](7) NULL, CONSTRAINT [PK_Maintenance] PRIMARY KEY CLUSTERED ( [MaintenanceID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY]

0 投票
2 回答
212 浏览

sql-server - MS SQL 2008/Access 2002 VBA - 检查数据库的当前记录,如果不存在则输入

我正在尝试创建一个 SQL 字符串,它将检查表 Notification 的当前记录条件(两个不同的 ID 值)。如果它找到具有这两个值的记录,它将不会将该记录输入到表中。如果它没有找到它,它会。

我已经尝试使用 VBA 来解决这个问题,但似乎我能够做到这一点的唯一方法是使用 SQL,因为 Access 字段类型与 SQL 字段类型不同导致的常量类型不匹配错误(IE:整数在 SQL 中可以,但在 Access VBA 中导致溢出的值)。

我一直在尝试找到某种 WHERE 语句,它可以让我检查表以查看 AssetID 和 NotificationTypeID 是否已经在表中。如果是,则忽略插入并继续。

我已经看到其他类型的 SQL 示例可以回答这个问题,但我无法让它们在 VBA 中工作。

更新的代码(注意:'我知道,AssetID 应该是 LONG。它是 SQL 中的一个 Int,但是当在 vba 中为 Access 设置为 Int 时,我收到一条溢出消息'当我尝试将其设置为 long 时,有一个类型不匹配。字符串目前似乎可以在 SQL 中用于将值放入数据库中)

这仍然不适用于 .AddNew。它应该,但由于某种原因返回一个 Invalid Operation 错误。

0 投票
0 回答
47 浏览

database - 在 Windows 10 上运行 Access 数据库时收到错误

我在Access 2002中创建了一个数据库,该数据库在 2 周前(2019-02-15)之前运行良好。我正在使用MS Access 2013运行Windows 10。我收到一个编译错误:任何人都可以帮忙解决他们认为的问题以及解决问题的最佳方法吗?The code in this project must be updated for use on 64bit systems.