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

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

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

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

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

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

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

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

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


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