Option compare database в access что это
Применяется на уровне модуля для задания используемого по умолчанию способа сравнения строковых данных.
Замечания
Инструкция Option Compare при ее использовании должна находиться в модуле перед любой процедурой. Инструкция Option Compare указывает способ сравнения строк (Binary, Text или Database) для модуля. Если модуль не содержит инструкцию Option Compare, по умолчанию используется способ сравнения Binary.
Инструкция Option Compare Binary задает сравнение строк на основе порядка сортировки, определяемого внутренним двоичным представлением символов. В Microsoft Windows порядок сортировки определяется кодовой страницей символов. В следующем примере представлен типичный результат двоичного порядка сортировки:
Инструкция Option Compare Text задает сравнение строк без учета регистра символов на основе системной национальной настройки. Тем же символам, что и выше, при сортировке с инструкцией Option Compare Text соответствует следующий порядок:
Инструкция Option Compare Database может использоваться только в Microsoft Access. При этом задает сравнение строк на основе порядка сортировки, определяемого национальной настройкой базы данных, в которой производится сравнение строк.
Пример
В данном примере инструкция Option Compare используется для задания метода сравнения строковых данных, используемого по умолчанию. Инструкция Option Compare используется только на уровне модуля.
Документация Macro Tools VBA
Option’s builder — инструмент для вставки в модули VBA свойств option’s
Основные настройки конструктора Option’s Builder
Конструктор Option’s Builder — добавляет или удаляет выбранные свойства в модули кода VBA, активной книги MS Excel
Реализована возможность вставки следующих свойств:
-
— используется на уровне модуля для принудительного явного объявления всех переменных в этом модуле — используется на уровне модуля для запрета ссылок на контент модуля извне проекта. — используется на уровне модуля для объявления метода сравнения по умолчанию, который будет использоваться при сравнении строковых данных. — используется на уровне модуля для объявления метода сравнения по умолчанию, который будет использоваться при сравнении строковых данных.
Selected Module — вставлять свойства option’s в активный модуль VBA, All VBAProject — в активный проект VBA.
Главное окно инструмента Option’s Builder
Option Explicit
Используется на уровне модуля для принудительного явного объявления всех переменных в этом модуле.
Синтаксис
Option Explicit
Примечание
Инструкция Option Explicit при ее использовании должна находиться в модуле до любой процедуры.
При использовании инструкции Option Explicit необходимо явно описать все переменные с помощью инструкций Dim, Private, Public, ReDim или Static. При попытке использовать неописанное имя переменной возникает ошибка во время компиляции. Когда инструкция Option Explicit не используется, все неописанные переменные имеют тип Variant, если используемый по умолчанию тип данных не задается с помощью инструкции DefТип.
Используйте инструкцию Option Explicit, чтобы избежать неверного ввода имени имеющейся переменной или риска конфликтов в программе, когда область определения переменной не совсем ясна.
Option Private Module
Используется на уровне модуля для запрета ссылок на контент модуля извне проекта.
Синтаксис
Option Private Module
Примечание
Когда модуль содержит инструкцию Option Private Module, общие элементы, например, переменные, объекты и определяемые пользователем типы, описанные на уровне модуля, остаются доступными внутри проекта, содержащего этот модуль, но недоступными для других приложений или проектов. Microsoft Excel поддерживает загрузку нескольких проектов. В этом случае инструкция Option Private Module позволяет ограничить взаимную видимость проектов.
Option Compare
Используется на уровне модуля для объявления метода сравнения по умолчанию, который будет использоваться при сравнении строковых данных.
Синтаксис
Option Compare
Примечание
Инструкция Option Compare при ее использовании должна находиться в модуле перед любой процедурой. Инструкция Option Compare указывает способ сравнения строк (Binary, Text или Database) для модуля. Если модуль не содержит инструкцию Option Compare, по умолчанию используется способ сравнения Binary. Инструкция Option Compare Binary задает сравнение строк на основе порядка сортировки, определяемого внутренним двоичным представлением символов. В Microsoft Windows порядок сортировки определяется кодовой страницей символов. В следующем примере представлен типичный результат двоичного порядка сортировки:
A < B < E < Z < a < b < e < z < Б < Л < Ш < б < л < ш
Инструкция Option Compare Text задает сравнение строк без учета регистра символов на основе системной национальной настройки. Тем же символам, что и выше, при сортировке с инструкцией Option Compare Text соответствует следующий порядок:
Инструкция Option Compare Database может использоваться только в Microsoft Access. При этом задает сравнение строк на основе порядка сортировки, определяемого национальной настройкой базы данных, в которой производится сравнение строк.
Option Base
Используется на уровне модуля для объявления нижней границы массивов, по умолчанию.
Синтаксис
Option Base
Поскольку Option Base по умолчанию равна 0, оператор Option Base никогда не используется. Оператор должен находиться в модуле до всех процедур. Оператор Option Base может указываться в модуле только один раз и должен предшествовать объявлениям массивов, включающим размерности.
Примечание
Предложение To в инструкциях Dim, Private, Public, ReDim и Static предоставляет более гибкий способ управления диапазоном индексов массива. Однако если нижняя граница индексов не задается явно в предложении To, можно воспользоваться инструкцией Option Base, чтобы установить используемую по умолчанию нижнюю границу индексов, равную 1. Нижняя граница значений индексов массивов, создаваемых с помощью функции Array, всегда равняется нулю; вне зависимости от инструкции Option Base.
Инструкция Option Base действует на нижнюю границу индексов массивов только того модуля, в котором расположена сама эта инструкция.
Name already in use
VBA-Docs / Language / Reference / User-Interface-Help / option-compare-statement.md
- Go to file T
- Go to line L
- Copy path
- Copy permalink
- Open with Desktop
- View raw
- Copy raw contents Copy raw contents
Copy raw contents
Copy raw contents
Option Compare statement
Used at the module level to declare the default comparison method to use when string data is compared.
If used, the Option Compare statement must appear in a module before any procedures.
The Option Compare statement specifies the string comparison method (Binary, Text, or Database) for a module. If a module doesn’t include an Option Compare statement, the default text comparison method is Binary.
Option Compare Binary results in string comparisons based on a sort order derived from the internal binary representations of the characters. In Microsoft Windows, sort order is determined by the code page. A typical binary sort order is shown in the following example:
Option Compare Text results in string comparisons based on a case-insensitive text sort order determined by your system’s locale. When the same characters are sorted by using Option Compare Text, the following text sort order is produced:
Option Compare Database can only be used within Microsoft Access. This results in string comparisons based on the sort order determined by the locale ID of the database where the string comparisons occur.
This example uses the Option Compare statement to set the default string comparison method. The Option Compare statement is used at the module level only.
VBA VBA Option Keyword
It is much easier to control the boundaries of arrays by declaring the boundaries explicitly rather than letting the compiler fall back on an Option Base <0|1>declaration. This can be done like so:
Option Explicit
It is deemed best practice to always use Option Explicit in VBA as it forces the developer to declare all their variables before use. This has other benefits too, such as auto-capitalization for declared variable names and IntelliSense.
Setting Require Variable Declaration within the VBE’s Tools ► Options ► Editor property page will put the Option Explicit statement at the top of each newly created code sheet.

This will avoid silly coding mistakes like misspellings as well as influencing you to use the correct variable type in the variable declaration. (Some more examples are given at ALWAYS Use "Option Explicit".)
Option Compare
Option Compare Binary
Binary comparison makes all checks for string equality within a module/class case sensitive. Technically, with this option, string comparisons are performed using sort order of the binary representations of each character.
If no Option Compare is specified in a module, Binary is used by default.
Option Compare Text
Option Compare Text makes all string comparisons within a module/class use a case insensitive comparison.
Option Compare Database
Option Compare Database is only available within MS Access. It sets the module/class to use the current database settings to determine whether to use Text or Binary mode.
Note: The use of this setting is discouraged unless the module is used for writing custom Access UDFs (User defined functions) that should treat text comparisons in the same manner as SQL queries in that database.
Option Base
Option Base is used to declare the default lower bound of array elements. It is declared at module level and is valid only for the current module.
By default (and thus if no Option Base is specified), the Base is 0. Which means that the first element of any array declared in the module has an index of 0.
If Option Base 1 is specified, the first array element has the index 1
Example in Base 0 :
Same Example with Base 1
The second example generated a Subscript out of range (Error 9) at the first loop stage because an attempt to access the index 0 of the array was made, and this index doesn’t exists as the module is declared with Base 1
The correct code with Base 1 is :
It should be noted that the Split function always creates an array with a zero-based element index regardless of any Option Base setting. Examples on how to use the Split function can be found here
In Excel, the Range.Value and Range.Formula properties for a multi-celled range always returns a 1-based 2D Variant array.
Likewise, in ADO, the Recordset.GetRows method always returns a 1-based 2D array.
One recommended ‘best practice’ is to always use the LBound and UBound functions to determine the extents of an array.
The Option Base 1 must be at the top of every code module where an array is created or re-dimensioned if arrays are to be consistently created with an lower boundary of 1.