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)
- 【Access高效办公】上一年...(10.30)
- Access制作的RGB转CM...(09.22)
- Access制作的RGB调色板...(09.15)
- Access制作的快速车牌输入...(09.13)
- 【Access高效办公】统计当...(06.30)
- 【Access高效办公】用复选...(06.24)
- 根据变化的日期来自动编号的示例...(06.20)
- 【Access高效办公】按日期...(06.12)
- 合并列数据到一个文本框的示例;...(05.06)
学习心得
最新文章
- 【Access高效办公】上一年度累...(10.30)
- Access做的一个《中华经典论语...(10.25)
- Access快速开发平台--加载事...(10.20)
- 【Access有效性规则示例】两种...(10.10)
- EXCEL表格扫描枪数据录入智能处...(10.09)
- Access快速开发平台--多行文...(09.28)
- 关于从Excel导入长文本数据到A...(09.24)
- Access制作的RGB转CMYK...(09.22)
- 关于重装系统后Access开发的软...(09.17)
- Access制作的RGB调色板示例(09.15)


.gif)
