Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - VBA

Страница: 1 |

 

  Вопрос: Не работает Put !!!!! Добавлено: 07.02.05 10:11  

Автор вопроса:  MadNike
Помогите плз. Есть элементарнейший код:

Type Master
    Number As Byte
    StdRec As String * 6
    SecName As String * 16
    Unused As String * 13
    SecSymbol As String * 16
    Finish As Byte
End Type

Dim rec As Master

Open "c:\test.dat" For Random Access Write As #1 Len = Len(rec)
Put #1, 1, rec
Close #1

На выполнении операции Put получаю
Run-time error 75
Path/file access error

То ли я не догоняю чего-то, то-ли зеркало мне врет.
Система XP + Office 2002 и дома и на работе
дома пашет без базара, на работе вот такой беспредел

Заранее спасибо

Ответить

  Ответы Всего ответов: 4  

Номер ответа: 1
Автор ответа:
 mc-black



ICQ: 308-534-060 

Вопросов: 20
Ответов: 1860
 Web-сайт: mc-black.narod.ru/dzp.htm
 Профиль | | #1
Добавлено: 07.02.05 10:35
Проверил - у меня твой код работает. Размер записи 53 байта. Кстати, макрос не выполняется из VBA IDE (выдает Compile Error: Expected:To), но выполняется с лита Excel. Может в Open где-то требуется поставить To?

По поводу систем дома и на работе: могут быть разные SP у XP и у Office XP.

Ответить

Номер ответа: 2
Автор ответа:
 mc-black



ICQ: 308-534-060 

Вопросов: 20
Ответов: 1860
 Web-сайт: mc-black.narod.ru/dzp.htm
 Профиль | | #2
Добавлено: 07.02.05 10:37
А ты верно контролируешь размер строк при присваивании? Твой код работал так:
Option Explicit

Type Master
    Number As Byte
    StdRec As String * 6
    SecName As String * 16
    Unused As String * 13
    SecSymbol As String * 16
    Finish As Byte
End Type

Sub Go()
    Dim rec As Master
    rec.Number = 1
    rec.StdRec = Space(6)
    rec.SecName = Space(16)
    rec.Unused = Space(13)
    rec.SecSymbol = Space(16)
    rec.Finish = 1
    Open "d:\home\vba\test.dat" For Random Access Write As #1 Len = Len(rec)
    Put #1, 1, rec
    Close #1
End Sub

Ответить

Номер ответа: 3
Автор ответа:
 mc-black



ICQ: 308-534-060 

Вопросов: 20
Ответов: 1860
 Web-сайт: mc-black.narod.ru/dzp.htm
 Профиль | | #3
Добавлено: 07.02.05 10:43
Тормознул, у тебя ошибка доступа. Может где-то чего-то не закрывает файл. Может в Open написать

Open "d:\home\vba\test.dat" For Random Access Write Shared As #1 Len = Len(rec)

Ответить

Номер ответа: 4
Автор ответа:
 MadNike



Вопросов: 1
Ответов: 1
 Профиль | | #4 Добавлено: 07.02.05 16:35
Shared не помог :(
Что делать не знаю. Кстати так же не работают и print# для файлов типа For Output. Может дело в настройках каких?

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам