我正在维护一个链接到MSSQL2000数据库的多用户Access 2000 DB,而不是我编写的.
数据库设计很差,所以你必须忍受我.
在"客户"表单上有一个"Customer_ID"字段,默认情况下需要获取下一个可用的客户ID,但用户可以选择使用现有客户ID覆盖此选项.
现在,Customer_ID字段不是Customer表的PK.它也不是唯一的.
如果客户拨打两次提交作业,该表将获得两条记录,每条记录具有相同的客户信息和相同的客户ID.
如果用户创建新票证,Access会快速查找下一个可用的客户ID并将其填入.但它不会保存记录.显然是一个问题 - 两个用户编辑必须跟踪彼此的工作,这样他们就不会欺骗客户ID.
所以我想修改"新记录"按钮,以便在创建新票据后立即保存票证.
问题是,当我测试更改时,我得到"此记录已被其他用户更改,因为您开始编辑它".
绝对没有DB上的其他用户."其他用户"可能是我被迫保存的.
有任何想法吗?
我有一个Access数据库,在第二个数据库中有一个链接表,与第一个数据库位于同一目录中.
我想将整个目录复制到一个新位置(用于测试),并且数据库一仍然链接到数据库二中的表,但是链接仍然是原始目录,而不是新位置.
我想做两件事之一:要么
以数据库路径为相对的方式链接到数据库2中的表 - 指向数据库2的路径不是硬编码的.
要么
在Form_Load(或autoexec宏)中有一个例程来检查application.path并以编程方式相应地调整链接.
如何将表从一个MS Access数据库(*.mdb或*.accdb)链接到VBA中的另一个Access数据库?
基本上我只是使用VBA来复制外部数据向导的功能.
我用谷歌搜索了这个,我看到了很多关于如何更新或重新链接表的示例以及链接到SQL数据库的许多示例,但很少有Access数据库之间的简单链接表.
ms-access ms-access-2007 access-vba linked-tables ms-access-2010
我有一个访问2003(mdb)数据库的住房项目我每季度更新一次我们当地的规划办公室.我们办公室的其他人可以从看到相同的数据中受益.我认为最简单的方法是给它们一个单独的访问数据库(无论是版本2003还是2007),从它链接到我更新的源表.但是,为了防止它们在查看时无意中更改源数据,我想使链接表只读.
有关如何限制Access 2007的链接表的访问权限的任何提示?
我有两个共享链表的Access数据库.它们一起部署在目录中,并通过Word表单中的代码进行访问.
当两个数据库(一起)复制到另一个文件夹时,如何确保保留链接?由于我不是"打开"数据库本身(它是通过ADO访问),我不知道如何编写代码来刷新链接.
我正在将一个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) 所以我有一个 msaccess 数据库,其中有几个链接表,这些表通过内置用户名和密码的 DSN 指向 SQL Server 数据库。
在我的 .net 应用程序中,我需要连接到我的访问数据库,并对链接的表运行查询。我尝试过 OLEDB 和 ODBC 方法,它们似乎都不适用于指向 SQL Server 的链接表,但指向其他访问表的链接表很好。我收到一个错误,例如:ODBC---连接到“THISDSN”失败。
有没有办法连接到我的访问数据库,以便我可以简单地运行查询,而链接表是 SQL 服务器还是只是访问表都没有关系?
让我们告诉你我有两张桌子。
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)
或者有什么替代方案可以解决此类问题?
我已经为我的问题引用了其他页面,但我仍然无法使其工作.鉴于我有三个例子,我觉得有点慢,但仍然无法解决这个问题.
这是我正在使用的代码:
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访问文件提供给其他人,他们也不知道如何处理这个窗口.
我试图用ODBC数据源中的链接表替换Access DB中的所有本地表。我可以导入以“ xyz_table”形式出现的新表。我想用“ xyz_table”替换旧的本地“表”。但是,当我删除“表”或重命名“ xyz_table”以替换“表”时,它将删除原始本地“表”的所有关系/对象依赖性。(查询,表格,报告等)
无论如何,有没有保存/应用从原始本地“表”到新的ODBC链接“ xyz_table”的关系/对象依赖关系。我不想手工尝试重新链接所有关系/对象依赖项。
任何帮助将不胜感激。
linked-tables ×10
ms-access ×9
access-vba ×3
odbc ×3
sql-server ×2
c# ×1
dao ×1
hyperlink ×1
jpa ×1
permissions ×1
replace ×1
spring-boot ×1
sql ×1
transactions ×1