|
String длиннее 255 символов в VBA
|
|||
---|---|---|---|
#18+
Не получается записать в переменную, объявленную как string, текст длиннее 255 симоволов. При записи в эту переменную аксесс тупо отрезает все "лишние" символы. Можно ли как-то обойти эту проблему? Или у меня просто кривые руки? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2007, 14:37 |
|
String длиннее 255 символов в VBA
|
|||
---|---|---|---|
#18+
Если эта "переменная" - текстовое поле формы связанное с полем текстого типа источника данных таблица, то руки прямые :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2007, 14:40 |
|
String длиннее 255 символов в VBA
|
|||
---|---|---|---|
#18+
RestavraciyaЕсли эта "переменная" - текстовое поле формы связанное с полем текстого типа источника данных таблица, то руки прямые :-) Нет, все идет только из кода: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9.
Когда добавляю ещё проверку одного параметра: Код: plaintext
последние скобки у меня уже не помещаются ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2007, 14:44 |
|
String длиннее 255 символов в VBA
|
|||
---|---|---|---|
#18+
Проверьте: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8.
... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2007, 14:46 |
|
String длиннее 255 символов в VBA
|
|||
---|---|---|---|
#18+
скобки для чего ? может надо * ? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2007, 14:52 |
|
String длиннее 255 символов в VBA
|
|||
---|---|---|---|
#18+
LeonMПроверьте: Проверил, работает. В чем секрет не понял. Попробовал сделать Код: plaintext
у меня количество символов увеличилось до 256 ;) но пропала закрывающая кавычка О_О ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2007, 14:52 |
|
String длиннее 255 символов в VBA
|
|||
---|---|---|---|
#18+
Restavraciyaскобки для чего ? может надо * ? Скобки - показатель того, что это SQL функция. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2007, 14:54 |
|
String длиннее 255 символов в VBA
|
|||
---|---|---|---|
#18+
sunnya Restavraciyaскобки для чего ? может надо * ? Скобки - показатель того, что это SQL функция.С этого места поподробнее ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2007, 14:58 |
|
String длиннее 255 символов в VBA
|
|||
---|---|---|---|
#18+
Restavraciya sunnyaСкобки - показатель того, что это SQL функция.С этого места поподробнее У меня есть формочка, в которой я генерирую SQL запрос на основании контролов на форме: куча всяких переключателей, выпадающий список, чекбокс. После того как пользователь выбрал все, что ей надо, она нажимает кнопочку, по которой формируется SQl запрос, отправляемый собственно говоря на SQl сервак для последующей обработки. Дальше у меня все в шоколаде. Проблема в ВБА. Он просто не дает мне запихать столько символов в переменную сколько мне хочется ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2007, 15:05 |
|
String длиннее 255 символов в VBA
|
|||
---|---|---|---|
#18+
я тоже с этим сталкивался, как обойти не нашел, поэтому собирал строку не в переменную, а прямо в DoCmd.RunSQL("SELECT ...") Так срабатывает нормально. Хотя ситуёвина непонятная и неприятная. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2007, 15:23 |
|
String длиннее 255 символов в VBA
|
|||
---|---|---|---|
#18+
sunnya Restavraciya sunnyaСкобки - показатель того, что это SQL функция.С этого места поподробнее У меня есть формочка, в которой я генерирую SQL запрос на основании контролов на форме: куча всяких переключателей, выпадающий список, чекбокс. После того как пользователь выбрал все, что ей надо, она нажимает кнопочку, по которой формируется SQl запрос, отправляемый собственно говоря на SQl сервак для последующей обработки. Дальше у меня все в шоколаде. Проблема в ВБА. Он просто не дает мне запихать столько символов в переменную сколько мне хочетсяИзвиняюсь за свою ограниченность, но я так и не понял - зачем стоят скобки (тем более что у меня пример ругается на них) Ну и присваивайте переменной интерпритацию ваших чекбоксов разбавляя их ЭНДами и ОРами Я тоже динамически набираю строку - никогда не упирался в максимум длины (256 символов точно переваливало) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2007, 15:59 |
|
String длиннее 255 символов в VBA
|
|||
---|---|---|---|
#18+
RestavraciyaИзвиняюсь за свою ограниченность, но я так и не понял - зачем стоят скобки (тем более что у меня пример ругается на них) Ну и присваивайте переменной интерпритацию ваших чекбоксов разбавляя их ЭНДами и ОРами Я тоже динамически набираю строку - никогда не упирался в максимум длины (256 символов точно переваливало) В MsSQL есть такая функция встроенная user_id(), без скобок она не работает. Пустые скобки в данном случае обозначают текущего пользователя, следственно функция возвращает айдишник текущего пользователя и его уже можно сравнить с колонкой в таблице. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2007, 16:14 |
|
String длиннее 255 символов в VBA
|
|||
---|---|---|---|
#18+
COP001я тоже с этим сталкивался, как обойти не нашел, поэтому собирал строку не в переменную, а прямо в DoCmd.RunSQL("SELECT ...") Так срабатывает нормально. Хотя ситуёвина непонятная и неприятная. Спасибо, навел на очень хорошую идею: Код: plaintext 1. 2. 3. 4. 5. 6. 7.
Вот это уже работает))) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2007, 16:15 |
|
String длиннее 255 символов в VBA
|
|||
---|---|---|---|
#18+
ОБЪЯСНИТЕ ТУПОМУ!!!! ПОЧЕМУ ЭТО РАБОТАЕТ, А В МОЕМ КОДЕ НЕ РАБОТАЕТ, А ОБРЕЗАЕТ?!!! Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8.
а то я уже капсом как блондинка начал орать((( ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2007, 16:18 |
|
String длиннее 255 символов в VBA
|
|||
---|---|---|---|
#18+
sunnya Нет, все идет только из кода: Код: plaintext 1. 2. 3. 4.
последние скобки у меня уже не помещаются у меня Dim strQuery As String(1024) даже не компилируется. Если убрать, то все помещается в строчную переменную нормально. Или я чего-то не догоняю. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2007, 16:23 |
|
String длиннее 255 символов в VBA
|
|||
---|---|---|---|
#18+
а сказали же что не () а * нужно F1Существует два типа строковых значений: · Строки переменной длины, которые могут содержать до приблизительно 2 миллиардов (2^31) символов. · Строки постоянной длины, которые могут содержать от 1 до приблизительно 64K (2^16) символов. Примечание. Не допускается использование в модулях класса строк постоянной длины, описанных с ключевым словом Public. Кодами для символов, образующих значения типа String, служат целые числа в диапазоне от 0 до 255. Первые 128 символов (0–127) набора символов, соответствуют буквам и символам стандартной американской клавиатуры. Эти первые 128 символов совпадают с набором символов ASCII. Следующие 128 символов (128–255) представляют буквы национальных алфавитов, буквы с надстрочными символами, символы денежной единицы и дроби. Символом описания типа для типа String служит символ доллара ($). Dim s*10 'строка из 10 символоФ Dim s as String 'строка переменной длины Dim s 'переменная типа Variant F1Тип данных Variant является типом, к которому относятся все переменные, не описанные явно с другим типом данных (с помощью инструкций Dim, Private, Public или Static). Для типа Variant не определен символ описания типа. Variant является особым типом данных. Переменные этого типа могут содержать любые данные, за исключением строк (тип String) фиксированной длины и определяемых пользователем типов. Переменная типа Variant может также содержать специальные значения Empty, Error, Nothing и Null. Указать характер подтипов типа Variant позволяют функции VarType или TypeName. Допустимыми числовыми данными являются любые целые или действительные числа в диапазоне от -1,797693134862315E308 до -4,94066E-324 для отрицательных значений и от 4,94066E-324 до 1,797693134862315E308 для положительных значений. В общем случае, числовые данные типа Variant сохраняют свой исходный тип данных внутри типа Variant. Например, если присвоить переменной типа Variant значение типа Integer, то в последующих операциях Variant трактуется как Integer. Однако, если арифметическая операция, выполненная над переменной типа Variant, содержащей значение типа Byte, Integer, Long или Single, приводит к тому, что результат выходит за границы диапазона допустимых значений исходного типа, то результат преобразуется к следующему более широкому типу внутри типа Variant. Значение типа Byte преобразуется к типу Integer, Integer преобразуется к типу Long, а значения типа Long и Single преобразуются к типу Double. Ошибка возникает, если за пределы допустимого диапазона значений выходят переменные типа Variant, содержащие значения типа Currency, Decimal или Double. Пользователь имеет возможность использовать тип Variant вместо любого типа данных, чтобы обеспечить большую гибкость при обработке данных. Если содержимым переменной типа Variant являются цифры, то в разном контексте они могут рассматриваться либо как строковое представление числа, либо как число. Например: Dim MyVar As Variant MyVar = 98052 В этом примере переменная MyVar содержит представление числового значения 98052. Арифметические операторы можно применять к значениям типа Variant, содержащим как числа, так и строковые значения, которые могут быть интерпретированы как числа. Если применить оператор + для сложения переменной MyVar с другой переменной типа Variant, содержащей число, или с переменной числового типа, то результатом будет арифметическая сумма. Значение Empty определяет переменную типа Variant, которая не была инициализирована (не получила начальное значение). Переменная типа Variant, содержащая значение Empty, рассматривается как 0 в контексте математических операций и как пустая строка ("") в контексте операций со строковыми значениями. Не следует путать значения Empty и Null. Null указывает, что переменная типа Variant имеет пустое значение в результате конкретных операций. Для типа Variant значение Error является специальным значением, которое используется для указания возникновения условия ошибки в процедуре. Однако в отличие от других типов ошибок при этом не происходит нормальной обработки ошибок на уровне приложения. Это позволяет пользователю или приложению выбрать несколько альтернативных действий на основании значения ошибки. Значения Error создаются путем преобразования действительных чисел в значения ошибки с помощью функции CVErr. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2007, 16:24 |
|
String длиннее 255 символов в VBA
|
|||
---|---|---|---|
#18+
Ничего не понял из вашего объяснения. При чем здесь user_id() когда речь идет о строковой переменной которая нужна только для того чтобы передать свое значение другой строковой (в данном случае свойству RecordSource) Повторю вопрос - зачем нужны скобки (1024) и что такое 1024 ? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2007, 16:25 |
|
String длиннее 255 символов в VBA
|
|||
---|---|---|---|
#18+
там опечатка нужно Dim s As String * 10, а не Dim s*10 ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2007, 16:26 |
|
String длиннее 255 символов в VBA
|
|||
---|---|---|---|
#18+
Присоединяюсь к мемберу Restavraciya. Моя проверка Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2007, 16:28 |
|
String длиннее 255 символов в VBA
|
|||
---|---|---|---|
#18+
RestavraciyaНичего не понял из вашего объяснения. При чем здесь user_id() когда речь идет о строковой переменной которая нужна только для того чтобы передать свое значение другой строковой (в данном случае свойству RecordSource) Повторю вопрос - зачем нужны скобки (1024) и что такое 1024 ? Прошу прощения, я неправильно понял вопрос. (1024) - это случайно закравшаяся ошибка. одна из попыток объявить эту переменную, навроде того что рекомендует bgn bgnDim s*10 'строка из 10 символоФ. Правда это у меня тоже не компилируется - выделяет звездочку и говорит "Expected: end of statement"((( ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2007, 16:32 |
|
String длиннее 255 символов в VBA
|
|||
---|---|---|---|
#18+
bgnтам опечатка нужно Dim s As String * 10, а не Dim s*10 ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2007, 16:32 |
|
String длиннее 255 символов в VBA
|
|||
---|---|---|---|
#18+
bgnтам опечатка нужно Dim s As String * 10, а не Dim s*10 Написал Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2007, 16:35 |
|
String длиннее 255 символов в VBA
|
|||
---|---|---|---|
#18+
(Бредовая идея) Может быть у вас тип STRING гдето глобально переопределен ? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2007, 16:42 |
|
String длиннее 255 символов в VBA
|
|||
---|---|---|---|
#18+
Restavraciya(Бредовая идея) Может быть у вас тип STRING гдето глобально переопределен ? не, у меня бы мозгов на это не хватило))) я даже не знаю, что это такое ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2007, 16:43 |
|
String длиннее 255 символов в VBA
|
|||
---|---|---|---|
#18+
У меня такой глюк был. Собирался запрос по частям, анализировались контролы... Преодолеваю так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
Так все работает. Почему - не знаю. A97 Win 98 ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2007, 16:57 |
|
|
start [/forum/topic.php?fid=45&fpage=67&tid=1612074]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
36ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
63ms |
get tp. blocked users: |
2ms |
others: | 13ms |
total: | 160ms |
0 / 0 |