#vba #ms-access
Вопрос:
В MS Access я хочу переименовать имя файла вложения с идентификатором и именем файла, чтобы не возникало проблем с дубликатами. Например, если идентификатор равен 1, а имя файла-ABC, то имя в папке должно быть 1ABC или 1_ABC, все в порядке. В настоящее время он сохраняется как расширение ABC. (pdf/docx/txt).
Комментарии:
1. Каковы значения переменных в этой строке, когда вы получаете сообщение об ошибке?
2. В таблице MS Access поле ИДЕНТИФИКАТОР содержит значения от 1 до 178. Первая строка-1, вторая строка-2. Я хочу взять значение идентификатора из поля идентификатора и объединить его с именем файла при сохранении вложения. В Дубуге он просит меня присвоить значение ID =1. Но я хочу воспользоваться программой, чтобы получить значение из поля таблицы.
3. У тебя нет
rsB
… ваш код не может быть скомпилирован.
Ответ №1:
Попробуй это.
Private Sub Command0_Click() Dim counter As Long counter = SaveAttachments("D:Test1") MsgBox counter amp; " files exported." End Sub
Public Function SaveAttachments(savePath As String, Optional strPattern As String = "*.*") As Long Dim r As DAO.Recordset Dim r2 As DAO.Recordset2 Dim strFullPath As String Dim counter As Long Set r = CurrentDb().OpenRecordset("Notices") Do While Not r.EOF Set r2 = r("Attachments").Value Do While Not r2.EOF If r2("FileName") Like strPattern Then strFullPath = savePath amp; "" amp; r("ID") amp; "_" amp; r2("FileName") If Dir(strFullPath) = "" Then r2("FileData").SaveToFile strFullPath counter = counter 1 End If End If r2.MoveNext Loop If Not r2 Is Nothing Then r2.Close r.MoveNext Loop If Not r Is Nothing Then r.Close SaveAttachments = counter End Function