标签: linked-tables

链接访问数据库"记录已被其他用户更改"

我正在维护一个链接到MSSQL2000数据库的多用户Access 2000 DB,而不是我编写的.

数据库设计很差,所以你必须忍受我.

在"客户"表单上有一个"Customer_ID"字段,默认情况下需要获取下一个可用的客户ID,但用户可以选择使用现有客户ID覆盖此选项.

现在,Customer_ID字段不是Customer表的PK.它也不是唯一的.

如果客户拨打两次提交作业,该表将获得两条记录,每条记录具有相同的客户信息和相同的客户ID.

如果用户创建新票证,Access会快速查找下一个可用的客户ID并将其填入.但它不会保存记录.显然是一个问题 - 两个用户编辑必须跟踪彼此的工作,这样他们就不会欺骗客户ID.

所以我想修改"新记录"按钮,以便在创建新票据后立即保存票证.

问题是,当我测试更改时,我得到"此记录已被其他用户更改,因为您开始编辑它".

绝对没有DB上的其他用户."其他用户"可能是我被迫保存的.

有任何想法吗?

sql ms-access linked-tables

15
推荐指数
4
解决办法
4万
查看次数

以编程方式更改链接表位置

我有一个Access数据库,在第二个数据库中有一个链接表,与第一个数据库位于同一目录中.

我想将整个目录复制到一个新位置(用于测试),并且数据库一仍然链接到数据库二中的表,但是链接仍然是原始目录,而不是新位置.

我想做两件事之一:要么

  1. 以数据库路径为相对的方式链接到数据库2中的表 - 指向数据库2的路径不是硬编码的.

    要么

  2. Form_Load(或autoexec宏)中有一个例程来检查application.path并以编程方式相应地调整链接.

ms-access access-vba linked-tables

11
推荐指数
2
解决办法
5万
查看次数

MS Access链接表与VBA

如何将表从一个MS Access数据库(*.mdb或*.accdb)链接到VBA中的另一个Access数据库?

基本上我只是使用VBA来复制外部数据向导的功能.

我用谷歌搜索了这个,我看到了很多关于如何更新或重新链接表的示例以及链接到SQL数据库的许多示例,但很少有Access数据库之间的简单链接表.

ms-access ms-access-2007 access-vba linked-tables ms-access-2010

10
推荐指数
2
解决办法
3万
查看次数

链表只读

我有一个访问2003(mdb)数据库的住房项目我每季度更新一次我们当地的规划办公室.我们办公室的其他人可以从看到相同的数据中受益.我认为最简单的方法是给它们一个单独的访问数据库(无论是版本2003还是2007),从它链接到我更新的源表.但是,为了防止它们在查看时无意中更改源数据,我想使链接表只读.

有关如何限制Access 2007的链接表的访问权限的任何提示?

permissions ms-access ms-access-2007 linked-tables

9
推荐指数
2
解决办法
2万
查看次数

当文件夹更改时,保留相同文件夹中Access DB的链接表

我有两个共享链表的Access数据库.它们一起部署在目录中,并通过Word表单中的代码进行访问.

当两个数据库(一起)复制到另一个文件夹时,如何确保保留链接?由于我不是"打开"数据库本身(它是通过ADO访问),我不知道如何编写代码来刷新链接.

ms-access hyperlink linked-tables

8
推荐指数
1
解决办法
8309
查看次数

使用DAO和Sql Server链接表的事务

我正在将一个clasic Access应用程序迁移到Sql Server,即DAO + Linked表.

我发现了一个令人反感的行为:当我使用链接表上的记录集进行更改时,Access使用多个连接.多个连接在服务器端同时意味着多个事务.这些交易是独立的.没有嵌套.

使用链接表到.mdb文件的标准MS-Access行为是不同的.一次只有一笔交易.执行提交之前,在同一DAO.Workspace中运行的任何代码都可以看到每个数据库更改.

规则已更改,使用客户端事务的现有DAO代码将失败.

如果我使用打开为dbOpenDynaset的记录集添加或更新记录,则任何尝试读取它们的代码都将失败:找不到新记录并查看原始状态的现有记录.为什么?因为操作是在多个独立的交易中进行的

执行示例提供的代码,sql profiler将向您显示使用不同的事务ID进行的不同操作.

我已经使用ADO对此进行了测试,一切运行良好.但是有成千上万的代码行.

除了使用ADO重写代码之外,还有其他解决方案吗?

我可以修改标准的Access行为吗?(使用读取未提交的隔离级别,指示不打开新连接,...)

下面的代码重现了这个问题.这很简单:

1.-在现有记录上打开记录集
2.-添加新记录
3.-尝试阅读最近添加的记录

如果我在(1)中使用dbOpenDynaset,我将看不到(3)中的新记录.

我正在使用Acc-2010,.accdb格式文件和Sql Server 2008 R2

谢谢.

    Private Sub test0()
     Dim bResult As Boolean

    Dim bUseTrans As Boolean 'New record added in transaction

    Dim rsExist As DAO.Recordset2 'Dummy recordset
     Dim tRecordsetExist As DAO.RecordsetTypeEnum 'Dummy recordset type:
                                                  '  with dbOpenDynaset fail.
                                                  '  Any other works fine

    Dim rs2Add As DAO.Recordset

    Dim rs2Read As DAO.Recordset 'Used to read recently added record
     Dim tRecordset2Read As DAO.RecordsetTypeEnum …
Run Code Online (Sandbox Code Playgroud)

sql-server ms-access dao transactions linked-tables

6
推荐指数
1
解决办法
4116
查看次数

通过 DSN 使用 SQLServer 链接表与 MS Access 数据库的 ODBC 连接

所以我有一个 msaccess 数据库,其中有几个链接表,这些表通过内置用户名和密码的 DSN 指向 SQL Server 数据库。

在我的 .net 应用程序中,我需要连接到我的访问数据库,并对链接的表运行查询。我尝试过 OLEDB 和 ODBC 方法,它们似乎都不适用于指向 SQL Server 的链接表,但指向其他访问表的链接表很好。我收到一个错误,例如:ODBC---连接到“THISDSN”失败。

有没有办法连接到我的访问数据库,以便我可以简单地运行查询,而链接表是 SQL 服务器还是只是访问表都没有关系?

c# sql-server ms-access odbc linked-tables

6
推荐指数
1
解决办法
4994
查看次数

Spring-boot jpa如何找到具有最大值的实体

让我们告诉你我有两张桌子。

CREATE TABLE user (ID int AUTO_INCREMENT,PRIMARY KEY (ID));
CREATE TABLE points (ID int AUTO_INCREMENT, user_id int, points int,PRIMARY KEY (ID));
Run Code Online (Sandbox Code Playgroud)

如何使用 spring-boot jpa 来请求这样的用户和最大积分?

select u.ID,max(p.points) from user u, points p where u.id=p.user_id
Run Code Online (Sandbox Code Playgroud)

或者有什么替代方案可以解决此类问题?

jpa linked-tables spring-boot

6
推荐指数
2
解决办法
6万
查看次数

以编程方式更改ms访问中链接表的连接

我已经为我的问题引用了其他页面,但我仍然无法使其工作.鉴于我有三个例子,我觉得有点慢,但仍然无法解决这个问题.

以编程方式更改链接表位置

链接表ms访问2010更改连接字符串

更新Access链接表以使用UNC路径

这是我正在使用的代码:

Dim tdf As TableDef
Dim db As Database
Set db = CurrentDb
Set tdf = db.TableDefs("DeviceListT")
tdf.Connect = "ODBC;DATABASE=" & CurrentProject.path _
                               & "\HarmonicProfileDatabase_be.accdb"
tdf.RefreshLink
Run Code Online (Sandbox Code Playgroud)

问题是当我运行它时会弹出一个窗口.

选择数据源

我不确定我应该做什么,也不想让它首先弹出,因为我将ms访问文件提供给其他人,他们也不知道如何处理这个窗口.

ms-access odbc access-vba linked-tables

5
推荐指数
1
解决办法
1万
查看次数

Access使用ODBC链接表替换本地表并保留原始名称引用

我试图用ODBC数据源中的链接表替换Access DB中的所有本地表。我可以导入以“ xyz_table”形式出现的新表。我想用“ xyz_table”替换旧的本地“表”。但是,当我删除“表”或重命名“ xyz_table”以替换“表”时,它将删除原始本地“表”的所有关系/对象依赖性。(查询,表格,报告等)

无论如何,有没有保存/应用从原始本地“表”到新的ODBC链接“ xyz_table”的关系/对象依赖关系。我不想手工尝试重新链接所有关系/对象依赖项。

任何帮助将不胜感激。

ms-access odbc replace table-relationships linked-tables

4
推荐指数
1
解决办法
8771
查看次数