我正在尝试使用 MS Access 对我无法控制的 ODBC 服务器进行更新。我必须使用 Passthrough 的原因是我正在访问的记录有超过 255 个字段(如果可以的话,我会使用链接表)。
我一直在使用此资源通过 Passthrough ( http://www.techonthenet.com/access/tutorials/passthrough/basics09.php )获取数据
查询很简单:SELECT FullName, PointNumber FROM DNP3.CDNP3AnalogIn
ODBC 连接字符串是: ODBC;DSN=SCX6_DB;LOCATION=Main;UID=admin;PWD=password;LOCALTIME=False;
现在在 Access 数据库中,我有一个表(SCADA DB 标记)与字段(FullName,PointNumber)的名称相同,我想使用 Update Passthrough 查询更新 ODBC 数据库中的字段,但我不确定该怎么做这个。
我将之前的查询保存为 DNP3_CDNP3AnalogIn 查询,并尝试创建一个新查询:
UPDATE [DNP3_CDNP3AnalogIn Query] INNER JOIN [SCADA DB Tags] ON
[DNP3_CDNP3AnalogInQuery].FullName = [SCADA DB Tags].FullName
SET [DNP3_CDNP3AnalogIn Query].[PointNumber] = [SCADA DB Tags].[PointNumber];
但我从 Access 收到错误消息:Operation must use an updateable query.
我知道有办法做到这一点,但我似乎找不到一个例子(我可能没有在谷歌上搜索正确的短语)。微软页面(http://technet.microsoft.com/en-us/library/bb188204%28v=sql.90%29.aspx)说:There is, however, one important limitation: the results returned by SQL pass-through queries are always read-only. If you want to enable users to perform updates based on the data retrieved, you must write code to handle this.
不幸的是它没有给出一个例子!
谁能给我一个解决方案,如果需要,我可以使用 VBA 吗?如果需要,我还可以提供更多背景信息。不幸的是,我不是 Access 方面的专家,我只是想提出一个可以节省我一些时间的自动化解决方案。