Вопрос № 27311: Уважаемые эксперты, доброго времени суток. Вот и мне потребовалась ваша полезная помощь. :-( Проблема с удалением поля из коллекции Fields. Делаю прожку на Vb с использованием ADO. На первый взгляд все просто и в соответствии с документацией:
<br...Вопрос № 27314: Хочу сделать настройки для программы (чтобы при следуещем запуске программы всё было как указано в настройках), как это сделать? Подскажите как это сделать(поподробнее)!...
Вопрос № 27.311
Уважаемые эксперты, доброго времени суток. Вот и мне потребовалась ваша полезная помощь. :-( Проблема с удалением поля из коллекции Fields. Делаю прожку на Vb с использованием ADO. На первый взгляд все просто и в соответствии с документацией:
Public Sub ShowDocsList(ThisForm As GeneralDocsJournal)
Dim flds As ADODB.Fields
Set flds = ThisForm.MyRecords.DocsList.Fields
flds.Delete "invoiceID"
End Sub
т.е. сделали переменную адо.поля, заполнили ее коллекцией из рекордсета DocsList, потом попробовали удалить одно из полей.
Стабильно выдает ошибку 3219 -- операция невозможна в данном контексте.
Почему так? Это же просто коллекция полей, ни к чему не привязанная, почему я из этой коллекции не могу удалить один Item? Причем в отладке проверял, действительно создается эта коллекция flds, количество Item-ов и формат совпадает с тем, откуда я их копировал. MSDN перелопатил, но ничего не нашел.
С уважением, Mike.
Отправлен: 06.10.2005, 14:13
Вопрос задал: XMike (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Tsechoev Bagaudin
Здравствуйте, XMike!
Закрой RecordSet DocList перед удалением поля.
--------- Есть только одно зло - невежество, и только одно благо - знания
Ответ отправил: Tsechoev Bagaudin (статус: Студент)
Отправлен: 06.10.2005, 16:03
Отвечает: Залетин Виталий Викторович
Здравствуйте, XMike!
Можно подробнее, что за тип GeneralDocsJournal?
--------- Учиться никогда не поздно. Особенно программированию!
Хочу сделать настройки для программы (чтобы при следуещем запуске программы всё было как указано в настройках), как это сделать? Подскажите как это сделать(поподробнее)!
Отвечает: Miklucho
Здравствуйте, Dushin Igor!
Можно:
1. записать все настройки в файл на диск, а затем при запуске программы считать их из него.
2. Воспользоваться функцией SaveSetting (пример в приложении)
Приложение:
Ответ отправил: Miklucho (статус: Студент)
Отправлен: 06.10.2005, 16:11 Оценка за ответ: 5 Комментарий оценки: Спасибо! Супер, то что надо!!!
Отвечает: _Виталий
Здравствуйте, Dushin Igor!
При выходе из программы можно сохранять настройки в файле или в реестре. А при загрузке программы загружать эти настройки. Модуль для работы с реестром в инете найти не проблема. А если работа с файлом, то это обычное чтение/запись текстового файла и обработка(при чтении) полученных строк.
Ответ отправил: _Виталий (статус: 8-ой класс)
Отправлен: 06.10.2005, 16:33
Отвечает: Залетин Виталий Викторович
Здравствуйте, Dushin Igor!
Можно использовать системный реестр Винды, но проще создать свой файл настроек. Просто создаете пользовательский тип с полями, которые отвечают за настройки, например так:
Type MyUDTConfig
strFormCaption as String
intFormState as Integer
....
End Type
Потом открываете файл для записи в двоичном режиме (либо другом) и командой Put пишете всю структуру в него. При последующем запуске открываете этот файл, командой Get открываете его и считываете первую запись (обычно она одна в таком файле) и далее присваиваете нужные настройки всем контролам и формам и т. д.
Это был самый простой способ Можно еще и писать виндовые ини файлы (см. почту), а еще реестр винды, но это, по-моему, туфта - я им никогда не пользуюсь.
--------- Учиться никогда не поздно. Особенно программированию!