Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Изменение RecordSource формы / 17 сообщений из 17, страница 1 из 1
10.10.2003, 15:42
    #32290130
Vsevolod V
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение RecordSource формы
В зависимости от некоторого условия хочу менять рекордсурс формы, но менять не всю строку запроса, а только добавить к ней дополнительное условие. Как это сделать?
Вот что я пробывал:
Код: plaintext
1.
2.
3.
4.
Dim a
Dim sc
a = Me.RecordSource
sc =  " AND [Orders].[Реф №] NOT LIKE "  1 *""
a = a & sc

Проблема в том, что "sc" добавляется после знака ";", что вызывает ошибку.
...
Рейтинг: 0 / 0
10.10.2003, 15:44
    #32290132
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение RecordSource формы
Dim i As Integer
i = InStr(s, ";")
If i>0 Then s=Left(s, i-1)
...
Рейтинг: 0 / 0
10.10.2003, 15:45
    #32290135
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение RecordSource формы
Но если в селекте есть ордер бай, то все равно работать не будет, потому что ордер бай идет после уэр.
...
Рейтинг: 0 / 0
10.10.2003, 15:49
    #32290139
Vsevolod V
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение RecordSource формы
i = InStr(s, ";")
If i>0 Then s=Left(s, i-1)
Саныч, поясни, пожалуйста, что чего делает?
...
Рейтинг: 0 / 0
10.10.2003, 15:53
    #32290146
zz
zz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение RecordSource формы
рэжэт точку-запятую.
...
Рейтинг: 0 / 0
10.10.2003, 15:55
    #32290149
zz
zz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение RecordSource формы
Кстати, насколько я помню, в синтаксисе SQL ; обязательной не является, так что можно просто без нее строку писать.
...
Рейтинг: 0 / 0
10.10.2003, 15:58
    #32290152
Vsevolod V
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение RecordSource формы
Кстати, насколько я помню, в синтаксисе SQL ; обязательной не является, так что можно просто без нее строку писать.
в рекордсурсе она ставится автоматически

рэжэт точку-запятую.
не рэжэт ни хрена
...
Рейтинг: 0 / 0
10.10.2003, 16:01
    #32290162
zz
zz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение RecordSource формы
в рекордсурсе она ставится автоматически
Логично.
не рэжэт ни хрена
Неправда.
...
Рейтинг: 0 / 0
10.10.2003, 16:02
    #32290163
incold
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение RecordSource формы
Один из вариантов:

Исходная строка хранится в Form.tag

Код: plaintext
1.
2.
3.
Dim sc
sc =  " AND [Orders].[Реф №] NOT LIKE "  1 *""
Me.RecordSource= Me.Tag & sc
...
Рейтинг: 0 / 0
10.10.2003, 16:02
    #32290164
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение RecordSource формы
Первая команда ищет позицию, в которой стоит точка с запятой. Вторая берет из исходного стринга ту часть, которая до найденной позиции.

(Боже, насколько это длинно звучит по-русски и насколько коротко на VBA...)

Кстати, вместо s надо поставить ту переменную, в которой сидит стринг с селектом.
...
Рейтинг: 0 / 0
10.10.2003, 16:04
    #32290166
Vsevolod V
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение RecordSource формы
zz
ты тут чем вообще занимаешься??? Ты помочь хочешь или по пиз..ть на пространственные темы?
...
Рейтинг: 0 / 0
10.10.2003, 16:06
    #32290169
zz
zz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение RecordSource формы
Помочь. Тебе дали работающую функцию, а ты кричишь, что она не работает. Что на это можно ответить? Только то, что это неправда.
...
Рейтинг: 0 / 0
10.10.2003, 16:08
    #32290171
Vsevolod V
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение RecordSource формы
Саныч
Спасибо
Выручил :)
...
Рейтинг: 0 / 0
10.10.2003, 16:10
    #32290175
Vsevolod V
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение RecordSource формы
zz
как у меня может заработать функция, когда я не знаю что она делает???
Буква "s" оказалась очень кстати в примере Саныча, потому что строк SQL начинается с "s" и заканчивается ";"
Так что такая фишка вводит в заблуждение:
i = InStr(s, ";")
...
Рейтинг: 0 / 0
10.10.2003, 16:13
    #32290180
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение RecordSource формы
Буква s - это от слова Sаныч.
...
Рейтинг: 0 / 0
10.10.2003, 16:18
    #32290188
Лох Позорный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение RecordSource формы
как у меня может заработать функция, когда я не знаю что она делает???
Вот же еп твою
А не судьба нажать Ф1 и поглядеть, что делают функции InStr и Left???
Нет блин, надо гадать с какой буквы какой оператор sql начинается.
Если бы у тебя был запрос на вставку - ты бы букву i за что-то не то наверное принял
...
Рейтинг: 0 / 0
10.10.2003, 16:19
    #32290190
incold
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение RecordSource формы
2 Vsevolod V
Я конечно постановки задачи не знаю, но если эта процедура выполянется по
нажатию кнопки, то что произойдет при повторном нажатии?

Например:
Есть поле и кнопка изменить источник
Написал поле=1 нажал кнопку
Написал поле=2 нажал кнопку
Получим источник ....поле=1 and поле=2
Если это правильно и так и должно быть, то все Ок.

А если условие должно перезаписываться то см. пост сегодня, 16:02 [372368]
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Изменение RecordSource формы / 17 сообщений из 17, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]