Я предполагаю, что OP скопировал acOLECreateEmbed (0) из справочника VBA Office . Для свойства BoundObjectFrame.Action требуется константа. acOLECreateEmbed - константа. См. обозреватель объектов pi c ниже. Выражение acOLECreateEmbed (0) подразумевает компилятору, что acOLECreateEmbed - это функция, принимающая параметр numeri c, или массив.
Я предполагаю, что это задано в ваше приложение, что информация всегда будет вводиться в документ Word сразу после каждой вставки записи. В противном случае создание объекта по этому событию без нужды приведет к раздуванию базы данных. Избежать раздувания можно с помощью приведенной ниже стратегии.
Private Sub OLEWord_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If IsNull(OLEWord.Value) Then 'Avoid overwriting edited document
With OLEWord
.Class = "Word.Document"
.OLETypeAllowed = acOLEEmbedded
.Action = acOLECreateEmbed
.AutoActivate = acOLEActivateDoubleClick
End With
End If
End Sub
Установка BoundObjectFrame.AutoActivate на константу acOLEActivateDoubleClick открывает документ Word в событии _DblClick . Это также можно установить на странице свойств BoundObjectFrame . Событие _MouseDown создаст объект непосредственно перед тем, как _DblClick откроет его для редактирования.
Скриншот acOLECreateEmbed - это константа