powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как корректно сравнить 2 строки?
9 сообщений из 9, страница 1 из 1
Как корректно сравнить 2 строки?
    #32259167
Serzhik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Делаю что-то типа:
Код: plaintext
If IsNull(DLookUp( "Серийный номер" , "Таблица" , "StrComp([Серийный номер],[ПолеФормыВводаНомера]) = 0 ")) Then...

В результате изменяются ВСЕ записи таблицы, а не та, серийный номер которой введен. Раньше серийник был числом, соответственно проверка на обычное равенство проходило нормально. Теперь надо сравнивать строки (серийник может содержать буквы). Что я делаю неправильно?
...
Рейтинг: 0 / 0
Как корректно сравнить 2 строки?
    #32259168
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Написано так, как будто [Серийный номер] и [ПолеФормыВводаНомера] - оба являются полями в таблице. Это действительно так?
...
Рейтинг: 0 / 0
Как корректно сравнить 2 строки?
    #32259169
Serzhik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нет, сорри. Серийный номер берется из таблицы, а [ПолеФормыВводаНомера] - поле из формы.
...
Рейтинг: 0 / 0
Как корректно сравнить 2 строки?
    #32259176
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это строка из оригинала?
Тогда попробуй переписать так:
Код: plaintext
If IsNull(DLookUp( "Серийный номер" , "Таблица" , "StrComp([Серийный номер],"  "" & Forms!МояФорма!НужноеПоле & "  "") = 0 ")) Then...
...
Рейтинг: 0 / 0
Как корректно сравнить 2 строки?
    #32259180
Serzhik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сенькс, работает. Но дальше мне надо сделать:
Код: plaintext
CurrentDB.Execute  "UPDATE Перечень SET Перечень.Кол = Перечень.Кол + "  & Me![ПолеФормыКол] &  "WHERE StrComp([Серийный номер],"  "" & Forms!МояФорма!НужноеПоле & "  "") = 0 "

И вот здесь как раз меняются ВСЕ записи вместо одной
...
Рейтинг: 0 / 0
Как корректно сравнить 2 строки?
    #32259182
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я никогда не пользовался StrComp в запросах, я бы сделал так:
..."UPDATE Перечень SET Перечень.Кол = Nz(Перечень.Кол,0) + " & Nz(Me![ПолеФормыКол];0) & " WHERE [Серийный номер]=""" & Forms!МояФорма!НужноеПоле & """"

И обрати внимание на пробел перед Where
...
Рейтинг: 0 / 0
Как корректно сравнить 2 строки?
    #32259185
Serzhik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А разве сработает проверка [Строка] = [Строка]. Когда серийник был числовым, я именно так и проверял. А теперь, думаю, что надо через строковые функции
...
Рейтинг: 0 / 0
Как корректно сравнить 2 строки?
    #32259188
Serzhik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот фигня. Теперь делаю так:
Код: plaintext
1.
2.
If Not IsNull(DLookup( "Номер" ,  "Перечень" ,  "StrComp([Номер],"  "" & Forms![Новый Товар]![Номер] & "  "") = 0 ")) Then
        CurrentDb.Execute  "UPDATE Перечень SET Перечень.Кол = Перечень.Кол + "  & Forms![Новый Товар]![Кол] &  " WHERE StrComp(Перечень.Номер,"  "" & Forms![Новый Товар]![Кол] & "  "") = 0 ;"
    Else...
.
Не изменяется вообще ни одна запись. Или я дурак, или за 8 часов работы я уже очевидных вещей не замечаю
...
Рейтинг: 0 / 0
Как корректно сравнить 2 строки?
    #32259191
Serzhik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Все заработало, всем спасибо. Если кому интересно, то работает следующий вариант:
Код: plaintext
1.
2.
If Not IsNull(DLookup( "Номер" ,  "Перечень" ,  "StrComp([Номер],"  "" & Forms![Новый Товар]![Номер] & "  "") = 0 ")) Then
        CurrentDb.Execute  "UPDATE Перечень SET Перечень.Кол = Перечень.Кол + "  & Forms![Новый Товар]![Кол] &  " WHERE StrComp(Перечень.Номер,"  "" & Forms![Новый Товар]![Номер] & "  "") = 0 ;"
    Else...

где Перечень - таблица, содержащая Номер в виде строки
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как корректно сравнить 2 строки?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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