Access快速开发平台--修复因Office新补丁引起的链接表中显示“#已删除的”问题
时 间:2022-05-30 23:07:54
作 者:红尘如烟 ID:10768 城市:成都
摘 要:修复Access快速开发平台中因Office新补丁引起的链接表中显示“#已删除的”问题。
正 文:
'解决方案:将表中主键字段类型是nvarchar的改为varchar类型。
'附加说明:1. 对于个别报错的表,请根据立即窗口输出的信息单独进行手工处理。
' 2. 执行完成后可在立即窗口执行RefreshLinkTables或通过数据库配置界面,
' 点击“设为当前”按钮,刷新链接表。
'创 建 者:Eleven Liu
'创建时间:2022-05-30
Sub FixError_ShowDeletedInLinkTables() Dim dbs As Object: Set dbs = CurrentDb Dim tdf As Object For Each tdf In dbs.TableDefs '只有ODBC链接表才做进一步处理 If tdf.Connect Like "ODBC;*" Then Dim idx As Object '循环表中所有索引 For Each idx In tdf.Indexes '如果该索引是主索引(主键) If idx.Primary Then Dim strPkFields As String: strPkFields = "" Dim strSQL As String: strSQL = "" Dim fld As Object '循环主键索引中的所有字段 For Each fld In idx.Fields '如果主键包含文本类型的字段才做处理 If tdf.Fields(fld.Name).Type = dbText Then strSQL = strSQL & vbCrLf & "ALTER TABLE [" & tdf.Name & "] ALTER COLUMN" _ & " [" & fld.Name & "] varchar(" & tdf.Fields(fld.Name).Size & ") NOT NULL;" End If strPkFields = strPkFields & ",[" & fld.Name & "]" Next '如果主键没有文本类型字段,strSQL长度会为0 If Len(strSQL) > 0 Then '注意这里必须采用删除主键,再修改字段类型,然后重新添加主键的方式。 '否则由于索引依赖问题直接修改字段字段类型无法修改成功。 '1.删除主键。 '2.将主键中所有文本字段的数据类型从nvarchar改为varchar '3.重新添加主键。 strSQL = "ALTER TABLE [" & tdf.Name & "] DROP CONSTRAINT [" & idx.Name & "];" & strSQL strSQL = strSQL & vbCrLf & "ALTER TABLE [" & tdf.Name & "] ADD CONSTRAINT" _ & " [" & idx.Name & "] PRIMARY KEY(" & Mid$(strPkFields, 2) & ");" '使用平台ServerRunSQL函数执行SQL语句修改字段类型。 If ServerRunSQL(strSQL) Then Debug.Print "更新成功 " & tdf.Name Else '如果失败了将执行的SQL语句输出到立即窗口,便于调试排查错误。 Debug.Print "更新失败 " & tdf.Name & ",SQL为:" Debug.Print String(100, "-") Debug.Print strSQL Debug.Print String(100, "-") End If End If Exit For End If Next End If Next End Sub
Access快速开发平台QQ群 (群号:321554481) Access源码网店
常见问答:
技术分类:
源码示例
- 【源码QQ群号19834647...(12.17)
- 统计当月之前(不含当月)的记录...(03.11)
- 【Access Inputbo...(03.03)
- 按回车键后光标移动到下一条记录...(02.12)
- 【Access Dsum示例】...(02.07)
- Access对子窗体的数据进行...(02.05)
- 【Access高效办公】上月累...(01.09)
- 【Access高效办公】上月累...(01.06)
- 【Access Inputbo...(12.23)
- 【Access Dsum示例】...(12.16)

学习心得
最新文章
- 仓库管理实战课程(8)-商品信息功...(04.01)
- 仓库管理实战课程(7)-链接表(03.31)
- 仓库管理实战课程(6)-创建查询(03.29)
- 仓库管理实战课程(5)-字段属性(03.27)
- 设备装配出入库管理系统;基于Acc...(03.24)
- 仓库管理实战课程(4)-建表操作(03.22)
- 仓库管理实战课程(3)-需求设计说...(03.19)
- 仓库管理实战课程(2)-软件背景和...(03.18)
- 仓库管理实战课程(1)-讲师介绍(03.16)
- 统计当月之前(不含当月)的记录数怎...(03.11)