Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft Access Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 [2] 3   вперед  Ctrl      все
 Re: String длиннее 255 символов в VBA  [new]
sunnya
Member

Откуда:
Сообщений: 27
natalitvinenko
Так все работает. Почему - не знаю. A97 Win 98


А при занесении в конечную переменную разве не обрезает? у меня как раз это и случается(((
13 фев 07, 17:09    [3779479]     Ответить | Цитировать Сообщить модератору
 Re: String длиннее 255 символов в VBA  [new]
4321
Member [заблокирован]

Откуда:
Сообщений: 3573
sunnya
Когда добавляю ещё проверку одного параметра:
 
последние скобки у меня уже не помещаются

а чем вы меряли помесщяемость?
не прислоните измеритель к экрану?
а то ить мне тут не видно.


и вобше давно высказано предположение о наличии на форме текстового поля с именем strQuery, а вы его даже не прокомментировали
13 фев 07, 17:15    [3779544]     Ответить | Цитировать Сообщить модератору
 Re: String длиннее 255 символов в VBA  [new]
sunnya
Member

Откуда:
Сообщений: 27
4321
sunnya
Когда добавляю ещё проверку одного параметра:
 
последние скобки у меня уже не помещаются

а чем вы меряли помесщяемость?
не прислоните измеритель к экрану?
а то ить мне тут не видно.


MS Word word count.


4321
и вобше давно высказано предположение о наличии на форме текстового поля с именем strQuery, а вы его даже не прокомментировали


Restavraciya
Если эта "переменная" - текстовое поле формы связанное с полем текстого типа источника данных таблица, то руки прямые :-)



смотрите третье сообщение в топике, там отрицается наличие текстбоксов на форме в принципе
13 фев 07, 17:25    [3779649]     Ответить | Цитировать Сообщить модератору
 Re: String длиннее 255 символов в VBA  [new]
тогда...
Guest
Можно увидеть исправленный код (который по крайней мере компилируется)?
13 фев 07, 17:30    [3779687]     Ответить | Цитировать Сообщить модератору
 Re: String длиннее 255 символов в VBA  [new]
natalitvinenko
Member

Откуда: Донецк
Сообщений: 696
sunnya

А при занесении в конечную переменную разве не обрезает? у меня как раз это и случается(((

Нет! В том то и дело, что при сборе не в одну переменную - не обрезает. Я по молодости сделала так, как указала, а потом решила переделать, как надо, по - правильному, то есть как у Вас. И немедленно всплыла ошибка, о которой вы говорите. Открутила назад.
13 фев 07, 17:31    [3779696]     Ответить | Цитировать Сообщить модератору
 Re: String длиннее 255 символов в VBA  [new]
sunnya
Member

Откуда:
Сообщений: 27
тогда...
Можно увидеть исправленный код (который по крайней мере компилируется)?


Dim stDocName As String
    Dim strQuery As String * 1024
    Dim strQ1
    Dim ww As String
    Dim intNum As Integer
    
    strQ1 = ""
    
    If Forms!ChoosePeriod.Frame = 0 Then ww = "m" Else: ww = "ww"
    intNum = Forms.ChoosePeriod.Combo_dates


    strQuery = "SELECT *,dbo.GetPgs4Daily(FileID) AS Pages,dbo.fGT(FileID) AS Tr,dbo.fGE(FileID)as Ed " & _
        "FROM tTranslations " & _
        "WHERE (year(datereceived)=year(getdate())and datepart(" & ww & ",DateDelivery)=" & intNum & " and datepart(" & ww & ",DateReceived)<=" & _
        intNum & " or datedelivery is null)"
        
        If Forms!ChoosePeriod.CheckMy = -1 Then strQ1 = " and Manager=User_id()"
        
    Reports!WM.RecordSource = strQuery & strQ1
13 фев 07, 17:31    [3779697]     Ответить | Цитировать Сообщить модератору
 Re: String длиннее 255 символов в VBA  [new]
все работает как положено
Guest
Работает. Закомментарил
'If Forms!ChoosePeriod.Frame = 0 Then ww = "m" Else: ww = "ww"
'intNum = Forms.ChoosePeriod.Combo_dates

и убрал
If Forms!ChoosePeriod.CheckMy = -1 Then strQ1 = " and Manager=User_id()"

Reports!WM.RecordSource = strQuery & strQ1
Sub TestString2()
Dim stDocName As String
    Dim strQuery As String * 1024
    Dim strQ1
    Dim ww As String
    Dim intNum As Integer
    
    strQ1 = ""
    
    'If Forms!ChoosePeriod.Frame = 0 Then ww = "m" Else: ww = "ww"
    'intNum = Forms.ChoosePeriod.Combo_dates


    strQuery = "SELECT *,dbo.GetPgs4Daily(FileID) AS Pages,dbo.fGT(FileID) AS Tr,dbo.fGE(FileID)as Ed " & _
        "FROM tTranslations " & _
        "WHERE (year(datereceived)=year(getdate())and datepart(" & ww & ",DateDelivery)=" & intNum & " and datepart(" & ww & ",DateReceived)<=" & _
        intNum & " or datedelivery is null)"
        
    Debug.Print strQuery
    
    MsgBox Len(strQuery)

End Sub
13 фев 07, 17:36    [3779727]     Ответить | Цитировать Сообщить модератору
 Re: String длиннее 255 символов в VBA  [new]
sunnya
Member

Откуда:
Сообщений: 27
все работает как положено
Работает.


Вот, а у меня получается, что эта строка (strQuery) все равно не больше 255 знаков
13 фев 07, 17:39    [3779760]     Ответить | Цитировать Сообщить модератору
 Re: String длиннее 255 символов в VBA  [new]
4321
Member [заблокирован]

Откуда:
Сообщений: 3573
sunnya
MS Word word count.
Ы??????????????????

а отладчики или ошибки уже не в моде?


sunnya
смотрите третье сообщение в топике, там отрицается наличие текстбоксов на форме в принципе
посморел. нашел только:
sunnya
Нет, все идет только из кода:
что совершенно не отрицает наличия/присуйствия. и вообще многого чего прочего...

покажите куда вы в коде пытаетесь запхнуть вашу строку, и где в коде она не пролазит, и, самое главное - покажите как она у вас не пролазит (т.е. таки прислоните этим боком к экрану)
13 фев 07, 17:40    [3779764]     Ответить | Цитировать Сообщить модератору
 Re: String длиннее 255 символов в VBA  [new]
natalitvinenko
Member

Откуда: Донецк
Сообщений: 696
И еще - не нервничайте, а попробуйте запустить код утром. Может внезапно заработать. Бывало.
13 фев 07, 17:50    [3779858]     Ответить | Цитировать Сообщить модератору
 Re: String длиннее 255 символов в VBA  [new]
sunnya
Member

Откуда:
Сообщений: 27
4321
sunnya
MS Word word count.
Ы??????????????????

а отладчики или ошибки уже не в моде?

а какой отладчик вы порекомендуете?

Простите, если я что-то не так говорю, я совершенно не специалист в данном вопросе, но руководство так не считает :(
13 фев 07, 18:05    [3779957]     Ответить | Цитировать Сообщить модератору
 Re: String длиннее 255 символов в VBA  [new]
sunnya
Member

Откуда:
Сообщений: 27
4321
покажите куда вы в коде пытаетесь запхнуть вашу строку, и где в коде она не пролазит, и, самое главное - покажите как она у вас не пролазит (т.е. таки прислоните этим боком к экрану)


    Dim stDocName As String
    Dim strQuery As String * 1024
    Dim ww As String
    Dim intNum As Integer

    If Forms!ChoosePeriod.Frame = 0 Then ww = "m" Else: ww = "ww"
    intNum = Forms.ChoosePeriod.Combo_dates


    strQuery = "SELECT *,dbo.GetPgs4Daily(FileID) AS Pages,dbo.fGT(FileID) AS Tr,dbo.fGE(FileID)as Ed " & _
        "FROM tTranslations " & _
        "WHERE (year(datereceived)=year(getdate())and datepart(" & ww & ",DateDelivery)=" & intNum & " and datepart(" & ww & ",DateReceived)<=" & _
        intNum & " or datedelivery is null)"
        
        If Forms!ChoosePeriod.CheckMy = -1 Then strQuery = strQuery & " and Manager=User_id()"
        
    Forms!WM.RecordSource = strQuery & strQ1
После выполнения этого кода (при checkmy = -1) в переменной сохраняется строка:
"SELECT *,dbo.GetPgs4Daily(FileID) AS Pages,dbo.fGT(FileID) AS Tr,dbo.fGE(FileID)as Ed FROM tTranslations WHERE (year(datereceived)=year(getdate())and datepart(ww,DateDelivery)=7 and datepart(ww,DateReceived)<=7 or datedelivery is null) and manager=User"
13 фев 07, 18:14    [3780016]     Ответить | Цитировать Сообщить модератору
 Re: String длиннее 255 символов в VBA  [new]
4321
Member [заблокирован]

Откуда:
Сообщений: 3573
sunnya
После выполнения этого кода (при checkmy = -1) в переменной сохраняется строка:
исчо раз: как вы об этом узнаетет?

вставьте предложенное выше
    Debug.Print strQuery
MsgBox Len(strQuery)
и продемонстрируйте ответы.
13 фев 07, 18:27    [3780083]     Ответить | Цитировать Сообщить модератору
 Re: String длиннее 255 символов в VBA  [new]
sunnya
Member

Откуда:
Сообщений: 27
4321
sunnya
После выполнения этого кода (при checkmy = -1) в переменной сохраняется строка:
исчо раз: как вы об этом узнаетет?

вставьте предложенное выше
    Debug.Print strQuery
MsgBox Len(strQuery)
и продемонстрируйте ответы.


Собственно говоря оттуда я это и копировал прежде. Но сейчас почему-то заработало, хотя я ничего не менял... Руки кривые, видимо
13 фев 07, 18:30    [3780108]     Ответить | Цитировать Сообщить модератору
 Re: String длиннее 255 символов в VBA  [new]
миф о кривых руках
Guest
sunnya
4321
sunnya
После выполнения этого кода (при checkmy = -1) в переменной сохраняется строка:
исчо раз: как вы об этом узнаетет?

вставьте предложенное выше
    Debug.Print strQuery
MsgBox Len(strQuery)
и продемонстрируйте ответы.


Собственно говоря оттуда я это и копировал прежде. Но сейчас почему-то заработало, хотя я ничего не менял... Руки кривые, видимо

Это отмазка... :-)
Просто нужно быть внимательнее - и внимательно читать вопросы и ответы, которые Вам дают.
13 фев 07, 18:34    [3780136]     Ответить | Цитировать Сообщить модератору
 Re: String длиннее 255 символов в VBA  [new]
sunnya
Member

Откуда:
Сообщений: 27
миф о кривых руках
Это отмазка... :-)
Просто нужно быть внимательнее - и внимательно читать вопросы и ответы, которые Вам дают.


Кривые руки - имхо не умение проверять себя и слушать других.

Не подскажете, с чем могла быть связана там ошибка и почему когда я объявлял переменную просто "Dim strQuery as String" ее длина была только 255 знаков?

Можно ли объявить что-то вроде varchar?
13 фев 07, 18:39    [3780170]     Ответить | Цитировать Сообщить модератору
 Re: String длиннее 255 символов в VBA  [new]
Joss
Member

Откуда: г. Минск
Сообщений: 3843
sunnya
Не подскажете, с чем могла быть связана там ошибка и почему когда я объявлял переменную просто "Dim strQuery as String" ее длина была только 255 знаков?

Можно ли объявить что-то вроде varchar?
Ну нету в VBA типа varchar! А 255 знаков, это где-то, что-то Вы не так делаете. Мне пришлось как-то в программе на Access считывать данные из СОМ-порта в переменную String, так 32К она втягивала спокойно. Ну выложите кусочек Вашей базы, чтобы её пощупать. Чудес на свете практически не бывает.
14 фев 07, 10:24    [3782148]     Ответить | Цитировать Сообщить модератору
 Re: String длиннее 255 символов в VBA  [new]
COP001
Member

Откуда: Ростов-на-Дону
Сообщений: 91
У меня было так: из кучи конотролов на форме нужно было собирать строку для инсерта, в том числе и выражения типа CONVERT(money, МоеЗначение) причем таких было несколько. При попытке отработать инсерт сообщение о неправильном SQL. В debug смотрю чему равна строка, которую я скармливаю DoCmd.RunSQL и получаю строку обрезанную после 255 знака. (Эту строку копи-пастил в WORD - в свойствах документа размер 255 символов.)
14 фев 07, 11:54    [3783007]     Ответить | Цитировать Сообщить модератору
 Re: String длиннее 255 символов в VBA  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 12867
нет ограничения на строку, (для реальных использований, т.е. не для хранения в них книг)
есть при использовании длинных строк происходит обрезание при передачи содержимого этой строки ,но сама строка остаётся целой.
14 фев 07, 14:03    [3784270]     Ответить | Цитировать Сообщить модератору
 Re: String длиннее 255 символов в VBA  [new]
Иванцов Сергей
Member

Откуда:
Сообщений: 8
Запрос с группировкой обрезает строку до 255, если группировку убрать - строка не обрезается. Тупо, в лоб -собрал строку и закинул в таблицу в поле типо MEMO. Лежит там, пока не понадобиться. Окончательный запрос - без группировки, достает строку из таблицы - все работает. Имеется задача - полученный результат выгрузить в EXCEL. Тоже обрезает, поэтому -тупо в лоб, сначала в WORD, а затем из WORD - в EXCEL...
30 май 07, 15:29    [4205675]     Ответить | Цитировать Сообщить модератору
 Re: String длиннее 255 символов в VBA  [new]
Press F1 to get Help
Guest
Типы данных и размеры полей
Тип данных «Поле MЕМО» используется для хранения более 255 знаков. В поле MЕМО может находится до 65 536 знаков. Для хранения форматированного текста или длинных документов вместо поля MЕМО создайте поле объекта OLE.
...
Можно отсортировать или сгруппировать текстовые поля и поля типа MEMO, но Microsoft Access использует только первые 255 знаков при сортировке и группировке поля MEMO.
1 июн 07, 15:33    [4219184]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: String длиннее 255 символов в VBA  [new]
PavelVX
Member

Откуда: Новосибирск
Сообщений: 206
Добрый день!
Займусь некрофилией :)
Офис 2010, ListBox.
В первой колонке название блока параметров, выводится на экран.
Во второй набор параметров. На экран не выводится.
Т.е. пользователь выбирает необходимый ему набор параметров и запускает выполнение.
С развитием системы длинна текста во второй колонке росла. И тут выяснилось, что есть ограничение в длину в 256 символов.

Т.е.
Dim str as String
str = "Параметр" & ";" & "ParametersLine ... "
msgbox len(str) 'выведет 635
me.myListBox.AddItem str
msgbox len(me.myListBox.Column(1, 0)) ' выведет 256

Подскажите, можно ли как-то обойти это ограничение?
18 апр 17, 08:56    [20409557]     Ответить | Цитировать Сообщить модератору
 Re: String длиннее 255 символов в VBA  [new]
vmag
Member

Откуда: г. Одинцово
Сообщений: 2669
PavelVX
В первой колонке название блока параметров, выводится на экран.
Во второй набор параметров. На экран не выводится.


- Убрать вторую колонку от слова вообще...
- когда нужно получить значение, использовать DLookup
18 апр 17, 09:54    [20409738]     Ответить | Цитировать Сообщить модератору
 Re: String длиннее 255 символов в VBA  [new]
PavelVX
Member

Откуда: Новосибирск
Сообщений: 206
Если бы можно было использовать таблички, то вопрос бы и не вставал.
Но в данном случае все формируется динамически под конкретного пользователя и конкретные условия.
Таблицу не задействовать :(
18 апр 17, 10:04    [20409764]     Ответить | Цитировать Сообщить модератору
 Re: String длиннее 255 символов в VBA  [new]
vmag
Member

Откуда: г. Одинцово
Сообщений: 2669
PavelVX
Но в данном случае все формируется динамически под конкретного пользователя и конкретные условия.


Параллельно писать в текстовый массив и брать значение оттуда...
В списке:
0,1,2,3,... первый столбец - нумерация (скрытый), для выбора значения из списка...
Названия блока параметров - второй столбец (показываем)
В массиве:
m(i) - значение (набор параметров), соответствующий выбранному значению в списке.
18 апр 17, 10:13    [20409799]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 [2] 3   вперед  Ctrl      все
Все форумы / Microsoft Access Ответить