2017-10-11 130 views
0

目前我有一张表,其中'ID'字段是通过多个其他字段的组合自动生成的。例如:ID ='2017_FileName_Chancellor' 现在我一直在想方设法让我重命名该附件到该ID(通过可能按下表格中的一个按钮),而无需手动复制粘贴ID并将附加文件重命名为这对于成千上万的记录来说会很乏味。无论如何对我来说这样做?我对VBA一无所知,所以我不能篡改它。尝试重命名表中某个字段的Access中的附件

提供了我的桌子的图片可能会帮助https://i.imgur.com/gaTUCtk.png

回答

0

要更改附件的名称在Access:

Private Sub Command15_Click() 
    Dim NewName As String 
    Dim NewNameWithExt As String 

    NewName = Me.TestID.Value 

    NewNameWithExt = NewName & ".txt" 

    DoCmd.RunSQL ("UPDATE TestTable SET TestAttachment.FileName = '" & 
    NewNameWithExt & "' WHERE TestID = " & NewName) 

End Sub 

更改桌面上的文件的名称:

Private Sub Command0_Click() 
    Dim NewName As String 
    Dim OldName As String 
    Dim rs As Object 
    Dim strSQL As String 

    Set rs = CreateObject("ADODB.Recordset") 

    strSQL = "SELECT TestAttachment.FileName FROM TestTable WHERE TestID = 1" 

    rs.Open strSQL, CurrentProject.Connection, 1, 3 

    Do Until rs.EOF 
     OldName = rs.Fields(0) 
     NewName = CurrentDb.TableDefs("TestTable").Fields(0).Name 

     Name "C:\Users\TestUser\desktop\" & OldName As 
     "C:\Users\TestUser\desktop\" & NewName & ".TXT" 

     rs.MoveNext 
    Loop 

    rs.Close 
    Set rs = Nothing 

End Sub 
+0

我希望重新命名的文件位于每个记录表的附件字段中,就像https://i.imgur.com/mEgr00y.png –

+0

好吧我已经更新了我的回复t o反映你最后的评论。请注意,如果您从多个表中提取数据,则必须找出循环表的方法。 – Steve

+0

我不需要它为所有的记录/表格做这件事,我只想按下按钮并重命名附件以查看表格中当前的记录。 –

相关问题