Недопустимая длина записи (ошибка 59)
Длина переменной записи в операторах Get или Put должна быть определена в соответствующем операторе Open. Эта ошибка имеет следующие причины и способы решения:
Длина переменной записи отличается от длины, указанной в соответствующем операторе Open. Убедитесь, что сумма величин переменных с фиксированной длиной в пользовательском типе, определяющем тип переменной записи, та же, что и значение, указанное в части Len оператора Open. В следующем примере предполагается, что
RecVar
является переменной соответствующего типа. Используйте функцию Len , чтобы указать длину следующим образом:Open MyFile As #1 Len = Len(RecVar)
Переменная в операторе Put является строкой с переменной длиной или включает в себя такую. Так как двубайтный дескриптор всегда добавляется в строку с переменной длиной, помещенную в файл случайного доступа с помощью оператора Put, строка с переменной длиной должна быть по крайней мере на 2 знака короче длины, указанной в части Len оператора Open.
Переменная оператора Put является переменной типа Variant или включает такую. Также как и для строк переменной длины, для типов данных Variant также требуется двубайтный дескриптор. Для переменных типа Variant, содержащих строки переменной длины, требуется четырехбайтный дескриптор. Поэтому длина строки с переменной длиной в Variant должна быть хотя бы на 4 символа короче длины записи, указанной в части Len.
Для получения дополнительной информации выберите необходимый элемент и нажмите клавишу F1 (для Windows) или HELP (для Macintosh).
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.