Доступ из Excel к DBF-файлам для чайника. - VB

Узнай цену своей работы

Формулировка задачи:

Раньше я к базам данных лазил только из приложений, написанных на Delphi или C++. Да и базы были Oracle, MS SQL... На худой конец Firebird. И вот... Подкрался незаметно!
Нужно сделать выгрузку данных из 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>

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 4.375 из 5
Похожие ответы