如何在MS-access 2010中向ODBC链接表中添加行

时间:2015-08-03 19:01:17

标签: ms-access access-vba sql-update odbc sybase

我有一个MS-Access 2010数据库,其Sybase表通过名为FNA的ODBC链接到它。

我可以从链接表中读取就好了,但写入它们证明要困难得多。我试图使用下面的插入到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中的数据类型是numberic和varchar,访问时它们显示为十进制和文本似乎没问题)
2)将自动增量主键添加到sybase表并在将其链接到访问时指示它 3)使用currentdb.execute与dbseechanges
4)使用接受的答案here中显示的方法刷新表格 5)尝试添加字段时间戳,并将值设置为当前时间戳。没有改善。

Funcionallity保持不变:更新查询偶尔会工作,然后继续给出“运行时错误'3155':ODBC - 在链接表上插入失败”,可以看出我是否使用VBA或查询设计来运行查询。

1 个答案:

答案 0 :(得分:0)

我在ODBC链接表上使用RunSQL过去遇到过一些问题。处理带有主键的链接表时,需要使用dbSeeChanges选项。

上面提到的错误表示没有设置主键的表。右键单击该表并进入“设计”视图(在MSAccess中)。突出显示要创建主键(唯一标识符)的行。单击带有金钥匙图标的按钮。

尝试使用以下内容进行更新/插入...

CurrentDb.Execute "INSERT INTO tblYourTableName VALUES ('YourTextValue',123)", dbSeeChanges

替换你的表/列/值。