2009-06-17 1 views
1

Извините, если это вопрос о нобе, но мне дана сомнительная честь поддерживать старое унаследованное приложение Access 2000 .adp, написанное плохо кем-то лет назад, дольше, когда у меня мало опыта с Access или VB самостоятельно :)Неверное количество аргументов для DoCmd.OpenReport в MS Access

Я установил машину WinXP dev с Access 2000 (это проект Access 2000), чтобы выполнить некоторую работу поддержки. Существует предварительно существовавшее строка кода, который предполагается напечатать отчет, который вызывает DoCmd.OpenReport 6 аргументов:

DoCmd.OpenReport ReportName, acViewPreview, , "orderId = 1234", , Printtype 

Когда я запускаю его я получаю ошибку компиляции: «Неверное число аргументов или недействителен присвоение собственности ".

Так что я использовал intellisense на DoCmd.OpenReport, а мой редактор кода VB-кода говорит мне, что он ожидает только 4 аргумента, а не 6: ReportName, acViewNormal, FilterName и WhereCondition. Когда я иду в обозревателе объектов для команды, это определение:

Sub OpenReport (ReportName, [Просмотреть как AcView = acViewNormal], [FILTERNAME], [WhereCondition]) Участник Access.DoCmd (т.е. 4 арг)

Глядя на различные сообщения в Интернете, некоторые люди, кажется, проходят 4 аргумента, некоторые 6. Что дает? Я предполагаю, что существуют разные версии библиотек кода доступа, и я ошибаюсь. Но я не знаю, с чего начать это решение. Кто-нибудь знает Access и может помочь мне?

ответ

1

В Access 2000, метод OpenReport принял 4 параметра:

DoCmd.OpenReport reportname[, view][, filtername][, wherecondition]

где [, параметр] не являются обязательными.

В Access XP, OpenReport получили более 2 параметра, чтобы дать:

DoCmd.OpenReport reportname[, view][, filtername][, wherecondition][, windowmode][, openargs]

PrintType используется в качестве аргумента для доклада и должны быть переданы в использовании другого метода, например, читать из поля формы или публичного имущества.

+0

Да, это ответ, спасибо! Установка Access XP вместо Access 2000 решила проблему. Странно, он говорит в разных заголовках заголовков, что проект является форматом Access 2000 (вот почему я не получил доступ к Access 2000), но код явно нацелен на Access XP. –

+0

Формат файла больше зависит от пределов базы данных струй (таблица и размер записи) и свойств формы и отчета (вложенные уровни). Таким образом, вы можете использовать формат файла Access 2000 в Access XP, но теперь используете VB6 (Visual Basic для приложений), как показано в диалоговом окне «Инструменты»> «Ссылки» окна «Код». – Ajw

+0

@Ajw Фактически формат файла, который имеет значение в отношении размера файла MDB, - это Access 97 и старше, которые были только 1 Гб. Access 2000 и hewer/Jet 4.0 поддерживают размер файла 2 Гб. –

0

Просто удалите все после аргумента WhereCondition. Дополнительные аргументы для более поздней версии Access (они для WindowMode и OpenArgs)

+0

не означает, что, возможно, плакат не применил последние служебные страницы для Access 2000 и двигателя Jet? –

+0

Я установил все последние пакеты обновлений, это не решило проблему. Проблема в том, что мне нужен Access XP (см. Принятый ответ) –

+0

Доступ к XP или более поздней версии, вы имеете в виду. –

Смежные вопросы