Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/15: Рейтинг темы: голосов - 15, средняя оценка - 4.73
0 / 0 / 0
Регистрация: 17.07.2006
Сообщений: 9

Размер числового поля в dBASE и ошибка: Automation error (Error 440)

24.07.2006, 03:48. Показов 3160. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброе время суток!
Помогите, пожалуйста, задать формат числового поля Field3 в таблице dBASE. Если написать Field3 Numeric(19,2), то появляется ошибка: Automation error (Error 440). Numeric без параметров проходит, но создается поле размером 20,5. Вот Фрагмент кода:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
Private Sub OpenConnect(sConnStr As String, sStr1 As String, sConnection As ADODB.Connection, sRecordset As ADODB.Recordset)
     Set sConnection = New ADODB.Connection
     sConnection.CursorLocation = adUseClient
     sConnection.Open sConnStr
     Set sRecordset = New ADODB.Recordset
     sRecordset.Open sStr1, sConnection, adOpenDynamic, _
                         adLockBatchOptimistic, adCmdTableDef
  End Sub
  Private Sub CloseConnect(sConnection As ADODB.Connection, sRecordset As ADODB.Recordset)
     'sRecordset.Close
     Set sRecordset.ActiveConnection = Nothing
     sConnection.Close
     Set sConnection = Nothing
  End Sub
  Private Sub Form_Load()
  Dim Con1 As ADODB.Connection
  Dim Rec1 As ADODB.Recordset
  Dim m_sConnStr As String
  Dim StrCreate As String
  NameDir = "d:"
  m_sConnStr = "Provider=MSDASQL.1;Persist Security Info=True;" & _
        "Data Source = файлы dBASE;Initial Catalog=" & NameDir
  
  StrCreate = "CREATE TABLE temp.dbf (Field1 varchar(5),Field2 varchar(5),Field3 Numeric(4,4));"
  OpenConnect m_sConnStr, StrCreate, Con1, Rec1
  CloseConnect Con1, Rec1
  End Sub
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
24.07.2006, 03:48
Ответы с готовыми решениями:

Ошибка 'Run-time error '-2147217842(80040e4e)' Automation error'.
На VB6.0 сделал несколько форм для вывода данных из базы Access на экран.Выложил на сервер, со своей машины работает, с чужой не хочет. ...

Ошибка в VB6.0 и Access: 'Run-time error -2147217842(80040e4e) Automation error'.
На Visual Basic 6.0 сделал форму которая выводит на экран данные из таблиц Access.Сделал .EXE и выложил на сервер локальной сети.Со своей...

При создании дистрибутива приложения (написанного на VB) возникает ошибка: - Unexpected error number 80010108 has occurred : Automation error.
Уважаемые эксперты VB-ка , помогите разрешить следующую проблему: При создании дистрибутива приложения (написанного на VB) возникает...

6
2 / 2 / 0
Регистрация: 09.09.2009
Сообщений: 118
26.07.2006, 05:27
У меня только один вопрос. А зачем тебе формат dBASE ? Если обоснуешь, то подгоню свою прогу, которая создает базу данных (для ФоксПро писал, долго мучился с МелкоМягко, но они поддержку давно уже сняли, пришлось вспомнить формат dBASE и писать в файл методом Write #1 :-)<IMG src="http://www.relib.com/forums/Uploads/Images/7644183e-12ae-4036-a406-9102.jpg
0
0 / 0 / 0
Регистрация: 17.07.2006
Сообщений: 9
26.07.2006, 12:55  [ТС]
Обосную. Есть некоторый набор данных (таблица) в Excel формате-отчет о телефонных разговорах, который необходимо предоставлять ежемесячно в организацию. Поскольку таблица имеет большой размер (около 4000 строк) то фирма её обрабатывает программно, для чего необходимы точные размеры всех полей. С этой программой я не знаком, но таковы требования.
0
2 / 2 / 0
Регистрация: 09.09.2009
Сообщений: 118
27.07.2006, 01:26
В принципе ты прав, ни ADO ни DAO не позволяют создать чиловой формат с фиксированным количеством знаков после запятой. Т.е. попробовать можно, только использовать не numeric, а Double(). Но при этом если данное окажется с большим кол-вом знаков после зпт, то они не обрезаются, как например в ФоксПро, но толко ради сохранения информации. ФоксПро более строго к этому относится.
Предлагаю такой вариант. Во первых, поставить ФоксПро 2.6 какой-нибудь, например.
Далее, есть возможность без всяких АДО и ДАО сформировать файл .dbf из таблицы Ексель. Установить текущим лист со своими данными. Сделать подгонку ширины столбцов по ширине. Теперь вставить первую строку и в ней над данными написать названия будущих полей, в английском естесно, чтобы Фокспро не напрягать потом :-). Далее, Сохранить как, выбрать формат "DBF4 (dBase4)" и получишь файл в формате DBF. Все эти действия я делал в макросе, код его можешь плучить, если перед тем как делать все действия, включишь "Начать запись". Получишь код, который конечно надо творчески переработать для возможности программирования.
ФоксПро нужен, чтобы открыть этот dbf файл и подправить значения форматы полей и размерность, такая какая тебе нужна. Т.е. главное для нас структура таблицы. Данные теперь можно удалить и получится эталонный файл DBF, с которым теперь можно работать. Когда мне необходимо было работать с dbf-файлами я столкнулся с проблемой, что
1. Мелкомягкие считают формат dbf устаревшим и не поддерживают его
2. Работать с этим форматом можно, но создавать с нуля эти файлы не получится и также удалять записи, т.е. в Фоксе они выглядят помеченными на удаление, но физически не удаляются. Поэтому мне пришлось создать эталонный файл и в него добавлять записи, это единственное, что позволяет делать МелкоСофт :-)
ЗЫ. А программу, которую предлагал, я уж написал от безысходности, т.е. нашел описание заголовка файла .dbf и побайтно записывал в файл через
Open PathOut For Binary As #1
0
0 / 0 / 0
Регистрация: 17.07.2006
Сообщений: 9
27.07.2006, 11:57  [ТС]
Спасибо за совет. Но я сам нашёл более простой, как мне кажется, вариант решения проблемы: с помощью программы CDBF создал шаблон .dbf файла с нужным размером полей и перед каждым копированием таблицы буду просто создавать его копию с необходимым именем файла, а потом переносить в него данные из Excel.
0
2 / 2 / 0
Регистрация: 09.09.2009
Сообщений: 118
28.07.2006, 00:55
alexshat (27.07.2006)
Спасибо за совет. Но я сам нашёл более простой, как мне кажется, вариант решения проблемы: с помощью программы CDBF создал шаблон .dbf файла с нужным размером полей и перед каждым копированием таблицы буду просто создавать его копию с необходимым именем файла, а потом переносить в него данные из Excel.
Ну в принципе я это и имел в виду, просто я предложил, как снять слепок структуры базы непосредственно с исходного файла, чтобы если что изменится, не набивать структуру по-новой.
0
0 / 0 / 0
Регистрация: 02.05.2006
Сообщений: 5
28.07.2006, 17:26
Если есть возможност попробуй с DBU2000.
Eтот продукт саздавать структуру .dbf file и редактириет их содержание
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
28.07.2006, 17:26
Помогаю со студенческими работами здесь

Ошибка vb: Run-time: -2147023147 ,Automation error.
Я б программе подклячаюсь к-Dll, обычным способом: Public objTbl As ActionTbl.clsTables Set objTbl = New ActionTbl.clsTablesВ...

Ошибка 'Run-time error 458. Variable uses an Automation type not supported in Visual Basic'.
Сделал из проекта файл .exe используя 'Compile into Native code'. На компьютерах, где есть VB все работает как надо. Где его нет требует...

Ошибка в тестовом примере: "Error 1 error C2143: syntax error : missing ';' before 'if'"
#include&lt;iostream&gt; using namespace std; int main(){ int x, a = 0, b = 10; (cin &gt;&gt; x).get(); while (x){ int c = x % 10; ...

Ошибка "Runtime Error 430 class does not support Automation or expected Interface" под Win7
Привет всем) Написанный мною скрипт, работает всего лишь на Windows 8, а на Windows 7 при открытии .exe файла пишет ошибку ...

Ошибка "Error displaying the error page: Application Instantiation Error"
Доброго времени суток. Подскажите пожалуйста кто сталкивался с данной проблемой. У меня завис денвер после чего когда пытаюсь открыть...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru