powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Пробелы в конце строки и Option Compare *** в модуле, корифеи посмотрите!
4 сообщений из 4, страница 1 из 1
Пробелы в конце строки и Option Compare *** в модуле, корифеи посмотрите!
    #32516449
Alex112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В поле fld таблицы tb есть единственная строка с ОДНИМ ПРОБЕЛОМ в конце, например:

"text "

Делаю запрос, проверяющий есть ли в этой таблице похожая строка, но с ДВУМЯ ПРОБЕЛАМИ в конце:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
Dim str As String
Dim rs As Recordset
str = "text  "
Set rs = CurrentDB.OpenRecordset("SELECT fld FROM tb WHERE fld = '"& str &"';")
If rs.BOF = False Then
   MsgBox "Какая-то лажа!"
End If

При этом в модуле формы первой строкой стоит:

Код: plaintext
Option Compare Database

Меняю на

Код: plaintext
Option Compare Text

Проверка выдает, что строки НЕ РАВНЫ как и ожидается. Но стоит сохранить форму, закрыть и открыть, проверка опять начинает врать и говорить, что строки СОВПАДАЮТ.

A97, SR2, English. Подскажите в чем может быть дело?
...
Рейтинг: 0 / 0
Пробелы в конце строки и Option Compare *** в модуле, корифеи посмотрите!
    #32517250
Фотография Alexander G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Думаю, VBA здесь не причем и Option Compare роли не играет.
Если вставить MsgBox rs!fld = str, получим, как положено - False
Это работа Jet.
Можно создать аналогичный запрос в конструкторе - и он будет так же выдавать "text "
Запрос
SELECT tb.fld, [fld]="text " AS AnswerJet, StrComp([fld],"text ") AS AnswerVBA
FROM tb
WHERE tb.fld='text ';
выдаст -1 как в AnswerJet, так и AnswerVBA,
только в первом это - True, а во втором - что первая строка короче второй

А как повлиять на Jet - не знаю.
...
Рейтинг: 0 / 0
Пробелы в конце строки и Option Compare *** в модуле, корифеи посмотрите!
    #32517256
Фотография Alexander G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
хотя так получится
Код: plaintext
1.
strsql = "SELECT fld FROM tb WHERE fld = '" & str & "' AND StrComp([fld],""" & str & """)=0;"
Set rs = CurrentDb.OpenRecordset(strsql)
...
Рейтинг: 0 / 0
Пробелы в конце строки и Option Compare *** в модуле, корифеи посмотрите!
    #32517389
Alex112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо! Второй вариант подойдет.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Пробелы в конце строки и Option Compare *** в модуле, корифеи посмотрите!
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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