2011-12-30 3 views
1

Я писал приложения MS Access в течение длительного времени. Я просто переключился на Access 2010, и теперь, когда я открываю форму, в которой я создаю InputParameters в коде, приложение предлагает мне ввести параметры. Я озадачен и не могу понять это.MS Access 2010 теперь запрашивает параметры при загрузке формы

Следующий код не работает на всех предыдущих версиях MS Access до Access 2010:

Dim strRS As String 
    Dim lngID as Long 
    Dim intSomethignElse as Integer 

    strRS = "dbo.StoredProcedureName" 
    lngID = 1 
    intSomethignElse = 2 

    Forms!SomeFormName.InputParameters = "@parameter1 = " & lngID & ", @parameter2 = " & intSomethignElse 

'Verify the parameters do indeed exist and they do: 
    Debug.Print Forms!SomeFormName.InputParameters 

    Forms!SomeFormName.RecordSource = strRS 

Теперь, когда форма загружается я получаю запрос на ввод @ и @ параметра 1 PARAMETER2. Как мне заставить это снова работать в MS Access 2010? Любая помощь приветствуется.

+0

Что-то в строках 'Forms! SomeFormName.RecordSource =" exec dbo.StoredProcedureName @ parameter = "& lngID' любое использование для вас? – Fionnuala

+0

Я предполагаю, что это проект данных Access? Функция InputParameters ТОЛЬКО работает для проекта данных и не работает для обычных баз данных доступа mdb или accDB (стандартного). Если вы используете inputParameters для не ADP или используете связанные таблицы для SQL-сервера, то функция InputParameters недоступна. –

+1

Если мое предложение не устраивает, было бы хорошо знать, почему нет. Я тестировал с SQL Server и 2010 adp. – Fionnuala

ответ

1

Я имел подобный код VBA. Он работал отлично в Access 2010 до недавнего времени, и я получил ту же проблему, что и всплывающее окно с запросом параметров.

После того как я изменить код simliar на

Forms!SomeFormName.RecordSource = "exec dbo.StoredProcedureName @parameter=" & lngID 

, как Remou предложил в комментариях, мое приложение работает снова.

1

Может быть, RecordSource не пуст. Удостоверьтесь, что он пуст в дизайне.


РЕДАКТИРОВАТЬ:

msdn говорит: хранимая процедура должна быть выполнена с помощью командной строки, содержащей {} синтаксис вызова с одним? маркер для каждого параметра, отличного от значения по умолчанию, в списке InputParameters.

Я не знаю синтаксис вызова, но я хотел бы попробовать что-то вроде этого:

strRS = "exec dbo.StoredProcedureName ?, ?" 
+0

Я проверил это, спасибо. Я убедился, что и InputParameters и RecordSources были пустыми при загрузке формы. –

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