【发布时间】:2015-10-26 00:06:09
【问题描述】:
我有一个 MS-Access 2010 数据库,它通过名为 FNA 的 ODBC 将 Sybase 表链接到它。
我可以很好地从链接表中读取数据,但事实证明向它们写入要困难得多。我正在尝试使用以下插入 sql 将数据从名为 _ModelVersion 的访问表添加到名为 DBA__ModelVersion 的链接表中。有时它会工作一段时间,但主要是我收到一条错误消息“ODBC--在链接表'DBA__Collectors'上插入失败。身份验证违规”
strQuery63 = "INSERT INTO [DBA__ModelVersion] ( ID, EDXVersion, template, DatVersion, DbVersion, AccessVersion ) " & _
"SELECT [_ModelVersion].ID, [_ModelVersion].EDXVersion,[_ModelVersion].ProjectTemplate, [_ModelVersion].DatVersion, [_ModelVersion].DbVersion, [_ModelVersion].AccessVersion " & _
"FROM _ModelVersion "
DoCmd.SetWarnings False
DoCmd.RunSQL strQuery63
DoCmd.SetWarnings True
是否应该使用其他方法?不确定这是否重要,但我有使用链接表作为源的组合框,并且在运行此查询之前,在相关链接表上也使用了 dmax 函数。我读到在 sybase 数据库端创建一个存储过程并从访问中调用它是可行的方法,但我不知道该怎么做,更不用说让存储过程在 Access 端使用 FNA 提取数据了。
编辑:到目前为止我已经尝试过:
1) 确保 sybase 的数据类型在访问中正确显示(sybase 中的数据类型是数字和 varchar,在访问中它们显示为十进制和文本,这似乎很好)
2) sybase表中添加自增主键,并在链接到access时注明
3) 使用 currentdb.execute 和 dbseechanges
4)使用接受的答案here
中显示的方法刷新表格
5)尝试添加一个字段时间戳,其值设置为当前时间戳。没有改善。
功能保持不变:更新查询偶尔会起作用,然后继续给出“运行时错误'3155':ODBC--在链接表上插入失败”,无论我使用VBA还是查询设计来运行查询。
【问题讨论】:
标签: ms-access vba sql-update odbc sybase