Game Maker - создание игр | HellRoom Games

Дополнительно: => Помощь по другим языкам программирования => Тема начата: 2009yasha2009 от Апрель 03, 2017, 12:22:28



Название: MS Access + VBA Не работает сетевая версия(по локальной сети).
Отправлено: 2009yasha2009 от Апрель 03, 2017, 12:22:28
Знаю-знаю, GML и все дела...но вдруг кто-то в теме?)
Проблема: при работе БД через локальную сеть, работа с сетевыми каталогами нарушается при открытии третьего подкаталога.



Название: Re: MS Access + VBA Не работает сетевая версия(по локальной сети).
Отправлено: Goo от Апрель 03, 2017, 20:02:53
P.s я давно не прогал в vb/vba/vb.net, вряд ли помогу на 100% Но все же...

Код:

If Dir(fname1, vbDirectory) = "" Then MkDir (fname1)


разве можно без end if?  может эта операция каждый такт процессора "шпарит" папку за папкой, я хз

Код:

Dir(fname1, vbDirectory)


Насколько понимаю это функция, что внутри нее?


Название: Re: MS Access + VBA Не работает сетевая версия(по локальной сети).
Отправлено: S_Kleer от Апрель 03, 2017, 21:00:01
Я, конечно, не знаком с VBA, Но первое что бросается в глаза это:

Цитировать
fname1 = idличногодела & "\"
 If Dir(fname1, vbDirectory) = "" Then MkDir (fname1)
ChDir fname1

fname1 = "PEDAGOG\"
 If Dir(fname1, vbDirectory) = "" Then MkDir (fname1)
ChDir fname1

fname1 = IDбланка & "\"
 If Dir(fname1, vbDirectory) = "" Then

Везде прописано без кавычек и слеш добавляется через & (насколько я понимаю), а "PEDAGOG\" заключен в кавычки со слешем. (не знаю, наверное это равносильная операция)

А далее бросается в глаза это:

Цитировать
fname = m_st.st & idличногодела & "\PEDAGOG\" & IDбланка & "\polyaNach.txt"
Тут перед PEDAGOG стоит слеш, хотя в idличногодела и так дописывается слеш в конце.
Получается что-то в духе "C:\Users\Admin\Documents\DATA\ZNACHENIYA\\PED\34"?

А возможно я написал чушь.  :facepalm:


Название: Re: MS Access + VBA Не работает сетевая версия(по локальной сети).
Отправлено: 2009yasha2009 от Апрель 03, 2017, 22:28:54
Большое спасибо, что откликнулись^^

Goo, без End If можно, если условие единичное(одна строчка).
Насколько понимаю это функция, что внутри нее?<<< Dir(fname1, vbDirectory) - команда vba возвращающая путь к папке. Если Dir(fname1, vbDirectory) = "" , то есть пустой путь, то значит, что этой папки не существует и в пути vbDirectory создаётся папка fname1.

S_Kleer, слеш в конце добавляется, так как idличногодела и IDбланка это...будем считать что переменные которые содержат будущее имя папки. "\" -добавляется в конце, т.к. без этого переход по каталогу не будет успешен.

Тут перед PEDAGOG стоит слеш, хотя в idличногодела и так дописывается слеш в конце.<<< Нет, не дописывается. В коде выше мы проверяем существуют ли папки. в строчке: fname = m_st.st & idличногодела & "\PEDAGOG\" & IDбланка & "\polyaNach.txt"  мы уже работаем с переменной fname(а не fname1). И соответственно прописываем полный путь от начала до конца. idличногодела - лишь содержит некое имя, слеши ей ни к чему:з 

На кибере посоветовали дожидаться окончания перехода по папке через DoEvent. А так же переходить на FSO. Завтра попробую оба способа. :)


Название: Re: MS Access + VBA Не работает сетевая версия(по локальной сети).
Отправлено: Goo от Апрель 04, 2017, 00:10:20
Яш, кажется последняя папка с ид бланка не создется, после then ничего нет, или ты не дописал?

за корявый текст сори, с мобилы.


Название: Re: MS Access + VBA Не работает сетевая версия(по локальной сети).
Отправлено: 2009yasha2009 от Апрель 04, 2017, 00:23:07
Goo, всё хорошо) С телефона бывают т9-ки))

Код, лишь как пример и да, там я просто не дописал в примере хд
Код полностью работоспособен. Больше года отпахал стабильно(и работает стабильно на онли пк). Вопрос лишь в том почему не работает с сетевыми каталогами =.= Если устанавливать АИС на другой пк(не сетевую версию), то опять же всё работает без ошибок.
P.S> 7 месяцев назад, количество строчек исполняемого кода в АИС Перевалило за 15к...так что, логично что это лишь фрагмент:з