Доступ из 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>