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

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

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

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

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


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