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

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。

大家快去测试一下吧!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Access开发易登软件

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值