acFormatPDF
по умолчанию не становится глобально доступной константой в VB.NET (как это было бы в VBA). Поэтому вы должны ссылаться на полное пространство имен: Microsoft.Office.Interop.Access.Constants.acFormatPDF
.
В качестве альтернативы, вы можете добавить оператор Imports
в начале файла: Imports Microsoft.Office.Interop.Access
; тогда вы можете использовать константу acFormatPDF
без полного пространства имен. Это позволит вам упростить другой код.
Вы также можете добавить импорт глобального уровня на уровне проекта, в настройках проекта VB.NET.
Поскольку значением этой константы является строка "PDF Format (*.pdf)"
, вы также можете передать саму строку.
Обновление
Если у вас есть оператор Imports
, ваш код не компилируется с другой ошибкой:
BC30521 Не удалось разрешить перегрузку, так как недоступное значение «OutputTo» наиболее конкретно для этих аргументов:
'Sub OutputTo (ObjectType As AcOutputObjectType, [ObjectName As Object], [OutputFormat As Object], [OutputFile As Object], [AutoStart As Object], [TemplateFile As Object], [Кодировка как объект])': нет наиболее конкретно.
'Sub OutputTo (ObjectType As AcOutputObjectType, [ObjectName As Object], [OutputFormat As Object], [OutputFile As Object], [AutoStart As Object], [TemplateFile As Object], [Кодировка как объект], [OutputQuality As AcExportQuality = acExportQualityPrint]) ': Не очень конкретно.
Если вы посмотрите на определение типа DoCmd
, вы увидите, что для OutputTo
определены две перегрузки; компилятору VB.NET не удается выбрать один из других.
Чтобы решить эту проблему, вы можете передать значение для последнего аргумента, что приведет к использованию второй перегрузки; значение по умолчанию для этого аргумента AcExportQuality.acExportQualityPrint
. Либо используйте позиционные аргументы, используя дополнительные запятые, чтобы ввести значение в последний аргумент:
AP.DoCmd.OutputTo(AcOutputObjectType.acOutputReport, "", Constants.acFormatPDF,
dPath & "\" & dReport, True,,,
AcExportQuality.acExportQualityPrint)
или именованные аргументы:
AP.DoCmd.OutputTo(AcOutputObjectType.acOutputReport, "", Constants.acFormatPDF,
dPath & "\" & dReport, True,
OutputQuality:=AcExportQuality.acExportQualityPrint)
(ссылки 1 и 2 )