2010-10-20 2 views
1

Перефразируя ВОПРОС:передавая параметр от доступа к SQL-серверу

я извиняюсь за то, что неясно. У меня есть текстовое поле и кнопка формы. при нажатии кнопки выполняется этот запрос с сохраненным доступом:

select * from sqlservertable where field=form!textbox.value 

У меня есть передняя часть доступа и серверный сервер sql server.

этот запрос не работает. мне не нравится, что я передаю этот параметр form!textbox.text. есть ли альтернативный способ передать значение текстового поля?

+0

Вы хотите передать его как переменную доступа или как SQL @variable? – JNK

+0

@JNK, я просто хочу передать текст из текстового поля в оператор sql –

+0

Не могли бы вы перефразировать свой вопрос? Я не понимаю ваш вопрос. –

ответ

2

.Text свойство контроля доступа доступен только то, что элемент управления имеет фокус.

Во-вторых, в Access вы ссылаетесь на формы как члены коллекции форм, т. Е. На коллекцию открытых форм.

Таким образом, вы используете:

Forms!FormName!ControlName 

Без указания коллекции Forms в качестве объекта-контейнера для формы, служба выражения доступа не будет знать, где найти контроль.

И как .Value является свойством по умолчанию элементов управления по умолчанию, вам не нужно указывать его, хотя если вы хотите быть действительно придирчивым и явным и набирать больше символов без фактической выгоды в этом контексте, вы можете использовать:

Forms!FormName!ControlName.Value 

Но это не будет вести себя по-другому вообще в этом контексте (единственная ситуация, в которой он будет, если вы пытаетесь заставить оценку контроля перед передачей его в качестве параметра в subrountine, в в этом случае без. Значение вы можете в конечном итоге передать контрольную ссылку вместо значения, что может быть плохо или это может быть хорошо).

+0

, большое спасибо за вашу помощь.Я неправильно сформулировал свой вопрос, сказав, что передаю свойство TEXT, я действительно передавал свойство VALUE, и он не работал –

+0

Но вы не использовали коллекцию Forms. –

1

Вы пробовали установки свойства RecordSource на форме (с кодом) с:

Form.RecordSource = "SELECT ... FROM ... WHERE [Occurrence Date] BETWEEN " & Text1 & " AND " & Text2 
+0

Спасибо за ваш ответ. Я перефразировал свой вопрос. пожалуйста, дайте мне знать, если я могу прояснить anythign else –

+0

Попробуйте меня! Текстовое поле вместо формы! textbox.text –

+0

Кроме того, если вы делаете это по коду, я думаю, вам нужно сделать Me.Requery –