Доступ из Excel к DBF-файлам для чайника. - VB
Формулировка задачи:
Раньше я к базам данных лазил только из приложений, написанных на Delphi или C++. Да и базы были Oracle, MS SQL... На худой конец Firebird. И вот... Подкрался незаметно!
Нужно сделать выгрузку данных из Excel'я в dbf-файлы.
С Visual Basic'ом уже давно не сталкивался, но в общих чертах ещё помню. А вот работать из Excel'я с базами данных не приходилось никогда. Поэтому наступаю на все грабли.
В связи с чем просьба подсказать, ежели кто знает, ссылки на соответствующие теме ресурсы. Или подскажите, что мне нужно сделать, чтобы строкане вызывала ошибку: ?
Нужно сделать выгрузку данных из Excel'я в dbf-файлы.
С Visual Basic'ом уже давно не сталкивался, но в общих чертах ещё помню. А вот работать из Excel'я с базами данных не приходилось никогда. Поэтому наступаю на все грабли.
В связи с чем просьба подсказать, ежели кто знает, ссылки на соответствующие теме ресурсы. Или подскажите, что мне нужно сделать, чтобы строкане вызывала ошибку: ?
Решение задачи: «Доступ из Excel к DBF-файлам для чайника.»
textual
Листинг программы
<font color="00AA00">'Алгоритм:</font> <font color="00AA00">'1. Извлекаем ... № последней сохранённой накладной и инкрементируем его (NNNN).</font> <font color="00AA00">'2. Копируем файл-шаблон prod_tpl.dbf в файл prod0000.dbf.</font> <font color="00AA00">'3. Открываем пустую таблицу prod0000 для добавления.</font> <font color="00AA00">'4. Добавляем в prod0000 записи с заполненными из накладной полями</font> <font color="00AA00">' Nomer,Vid_oper,Kod_tov,Vupis_d,Sklad,Cpr NdsPr</font> <font color="00AA00">'5. Переименовываем файл prod0000.dbf в prodNNNN.dbf</font> <font color="00AA00">'------------------------</font> <font color="blue">Private</font> <font color="blue">Sub</font> FillOrderFromGrid(<font color="blue">ByVal</font> PackNo <font color="blue">As</font> <font color="blue">Integer</font>) <font color="blue">Dim</font> csPR0 <font color="blue">As</font> <font color="blue">New</font> ADODB.Connection <font color="blue">With</font> csPR0 .CursorLocation = adUseClient .Mode = adModeReadWrite .Provider = <font color="teal">"MSDASQL"</font> .<font color="blue">Open</font> <font color="teal">"DSN=PROD0000;UID=sa;PWD=;"</font> <font color="00AA00">'</font> <font color="blue">End</font> <font color="blue">With</font> <font color="blue">Dim</font> rsPR0 <font color="blue">As</font> <font color="blue">New</font> ADODB.Recordset <font color="blue">With</font> rsPR0 .CursorLocation = adUseClient .CursorType = adOpenDynamic <font color="00AA00">'</font> .LockType = adLockBatchOptimistic .<font color="blue">Open</font> <font color="teal">"SELECT * FROM PROD0000 "</font>, csPR0 <font color="00AA00">'</font> .Filter = adFilterNone <font color="blue">Dim</font> i <font color="blue">As</font> <font color="blue">Long</font>, N <font color="blue">As</font> <font color="blue">Long</font> N = frmMain.wndEdit.Rows - <font color="darkblue"><b>1</b></font> <font color="00AA00">'это - сетка vsFlexGrid</font> <font color="blue">For</font> i = <font color="darkblue"><b>1</b></font> <font color="blue">To</font> N .AddNew .Fields(<font color="teal">"Nomer"</font>) = PackNo .Fields(<font color="teal">"Vid_oper"</font>) = <font color="teal">"СЧЕТ_Ф"</font> <font color="00AA00">'flexcpVariantValue</font> .Fields(<font color="teal">"Kod_tov"</font>) = frmMain.wndEdit.Cell(flexcpVariantValue, i, <font color="darkblue"><b>0</b></font>) <font color="00AA00">'скрытый код товара</font> <font color="00AA00">' остальные поля убраны из листинга.... </font> .MoveNext <font color="blue">Next</font> i .UpdateBatch .<font color="blue">Close</font> <font color="blue">End</font> <font color="blue">With</font> csPR0.<font color="blue">Close</font> <font color="blue">End</font> <font color="blue">Sub</font>
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д