程序员开发实例大全宝库

网站首页 > 编程文章 正文

【Access开发】批量修改多个数据库字段名

zazugpt 2025-05-02 14:38:54 编程文章 8 ℃ 0 评论

HI,大家好呀!

又到了一周一更新的时间了,最近我们这里的天气就是过山车,今天穿棉袄,明天就短袖,这忽高忽低的温度真刺激!

那给大家讲点啥呢?我们直接动手来开发吧!

开始之前,先给我一键三连吧!谢谢大家啦!

01

创建窗体

我们先来创建一个窗体,放上一些控件,具体的属性如下:

控件

名称

按钮

btnBrowse

按钮

btnOK

文本框

txtFile

列表框

List_Name

文本框

txtOld

文本框

txtNew

具体的摆放如下图,中间大的那个是列表框,列表框的多重选择要改成“简单”



02

添加代码

接下去,我们就可以来添加代码了,代码有点多,但还是比较基础的。

Private Sub btnBrowse_Click()
Me.txtFile = OpenFile(False)
Me.List_Name.RowSourceType = "Value List"
Me.List_Name.RowSource = FilePath(Me.txtFile, "")
End Sub

Private Sub btnOK_Click()
Dim db As Object 'DAO.Database
Dim tdf As Object ' DAO.TableDef
Dim varItem As Variant
If IsNull(Me.txtNew) Then
MsgBox "新字段名不能为空,请输入修改后名称。", vbExclamation
Me.txtNew.SetFocus
Exit Sub
End If
If IsNull(Me.txtOld) Then
MsgBox "原字段名不能为空,请输入修改前名称。", vbExclamation
Me.txtOld.SetFocus
Exit Sub
End If
For Each varItem In Me.List_Name.ItemsSelected
Set db = DBEngine(0).OpenDatabase(Me.txtFile & "\" & Me.List_Name.Column(0, varItem))
'这里写的是固定的表,也可以修改成动态的
Set tdf = db.TableDefs("T_Test")
tdf.Fields(Me.txtOld).name = Me.txtNew

Next
MsgBox "修改成功。", vbInformation
End Sub

'打开文件或文件夹的函数
Function OpenFile(TF As Boolean) As String
Dim dlgOpen As FileDialog
Dim i As Long, j As Long
'通过文件对话框获取文件或文件夹
If TF = True Then
Set dlgOpen = Application.FileDialog(msoFileDialogFilePicker)
Else
Set dlgOpen = Application.FileDialog(msoFileDialogFolderPicker)
End If
With dlgOpen
If Not .show Then Exit Function
End With
'返回选择的第一个文件或文件夹
OpenFile = dlgOpen.SelectedItems(1)
Set dlgOpen = Nothing
End Function
'获取指定文件中数据库文件的列表
Function FilePath(MyPath As String, Myname As String) As String
Dim myFSO As New FileSystemObject
Dim myFolder As Folder
Dim myfile As File
Dim str As String
'获取文件夹
Set myFolder = myFSO.GetFolder(MyPath)
'判断文件夹是否存在
If myFSO.FolderExists(myFolder) = True Then
str = ""
'存在则返回数据库(.accdb)文件列表
For Each myfile In myFolder.Files
' Debug.Print myfile.Name
If right(myfile.name, 5) = "accdb" Or right(myfile.name, 3) = "mdb" Then
If myfile.name <> Myname Then
str = str & myfile.name & ";"
End If
End If
Next myfile
FilePath = str
Else
'文件夹不存在则返回空值,并弹出提示对话框
MsgBox "文件夹不存在"
FilePath = ""
End If
End Function

03

运行测试

最后,当然还是测试了,我们来看看效果。


注意,这里的测试数据库,我都建立了相同的表,且字段名也是一样的,这样才可以批量修改,这里我们把字段名F1改成test1。

大家快去测试一下吧!

#access##vba##excel##office#

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表