Объединить поле идентификатора с именем файла

#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