Я просматриваю старую почту, в которой было мое решение - «Создание базы данных документов с использованием Microsoft Access» с ответом, предоставленным Renaud BomPuis, в форме примерной базы данных (https://dl.dropboxusercontent.com/u/52900980/StackOverflow/SO25044339.accdb).создание базы данных документа
Я смог обработать исходный код для этого в соответствии с моими потребностями и успешно вставить его в свою основную базу данных. Единственная проблема, с которой я сталкиваюсь, заключается в том, что она создает новую запись в неправильном для меня месте. Когда пользователь нажимает «Загрузить файл», создается новая запись и открывается форма, позволяющая выбрать файл с помощью диалогового окна файла. Но если пользователь меняет свое мнение и клики отменяют, запись уже создана, но пустой путь к файлу.
Хотелось бы создать только новую запись, если пользователь ее подтвердит, но я не могу манипулировать кодом в правильном порядке, чтобы он работал.
Помогите пожалуйста? Большое спасибо.
EDIT: Код с комментариями
Private Sub btnUploadDoc_Click() ' Create a new record in the Documents table for the selected Works No
Dim DocID As Variant
Dim db As dao.Database
Dim rs As dao.Recordset
Set db = CurrentDb()
Set rs = db.OpenRecordset("tblDocuments", dbOpenDynaset, dbFailOnError)
With rs
.AddNew !WorksNo = cboWorksNo
.Update
.Move 0, .LastModified
DocID = !DocID
.Close
End With
Set rs = Nothing
Set db = Nothing
DoCmd.OpenForm "frmDocSelect", WhereCondition:="DocID=" & DocID
End Sub
Можете ли вы показать код на нажатия кнопки Загрузить файл, пожалуйста? В нашей корпоративной сети я не могу загрузить дб –
Private Sub btnUploadDoc_Click() 'Создать новую запись в таблице Документы для выбранного Работы Нет Dim DocId As Variant Dim дб Как dao.Database Dim RS Как dao.Recordset Набор дб = CurrentDb() Set Rs = db.OpenRecordset ("tblDocuments", dbOpenDynaset, dbFailOnError) с интерфейсом RS .AddNew ! WorksNo = cboWorksNo .update .Привести 0, .LastModified DocId =! DocID . Закрыть Завершить Установить rs = Nothing Установить db = Nothing DoCmd.OpenForm "frmDocSelect", WhereCondition: = "DocID =" & DocID End Sub – Chris
Я предполагаю, что ваш код выбора кода находится в форме frmDocSelect. Вы также должны опубликовать это (но отредактируйте исходное сообщение и оберните код в тегах кода, например @Andre сделал для вас последний раз). Я думаю, что, вероятно, проще, если вы проверили файл загрузки перед созданием новой записи - и просто сделайте это в своей текущей форме - перед тем, как открыть новую запись. – dbmitch