|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу. Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста". Название темы слишком короткое или не отражает сути вашего вопроса. Тема исчерпала себя, помните, один вопрос - одна тема Прочитайте правила и заново правильно создайте тему. |
|
Опции темы | Поиск в этой теме |
18.01.2008, 15:28 | #1 |
Регистрация: 18.01.2008
Сообщений: 4
|
запись в БД(*.MDB) из Excel VB
Всем привет!
Проблема такая: есть MDB-файл, в VB Excel SQL-запросами из него читается инфа и кладется на лист, делаем расчеты и надо записать часть данных обратно в БД. Первый вариант у меня получился с xlodbc.xla, но эту библиотеку ставить и тоскать на разные компы неудобно (в некоторых местах она слетает, да и поставить не каждый пользователь сможет) Тогда я решил пойти другим путем: записал макрос который выгребает данные через OLE DB (импорт внешних данных в Excel), но так я и не смог понять и сделать запись расчетных данных из Excel в MDB. Подскажите кто знает как запись в БД делать по-людски. Такой вариант макроса я использую для чтения БД: Public Sub GetTable(Name, CmdText As Variant, Dest As Range) With Worksheets("Base").QueryTables.Add( Connection:=Array( _ "OLEDB;Provider=Microsoft.Jet.OLEDB .4.0;Password="""";User ID=Admin;Data Source=" & Worksheets("Base").Range("B5") & ";Mode=ReadWrite;" _ , _ "Extended Properties="""";Jet OLEDB:System database="""";Jet OLEDB:Registry Path="""";Jet OLEDB:Database Password="""";Jet OLEDB:Eng" _ , _ "ine Type=4;Jet OLEDB:Database Locking Mode=0;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:" _ , _ "New Database Password="""";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don't Copy Locale on " _ , _ "Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False" _ ), Destination:=Dest) .CommandType = xlCmdSql .CommandText = CmdText .Name = Name .FieldNames = False .RowNumbers = False .FillAdjacentFormulas = False .PreserveFormatting = True .RefreshOnFileOpen = False .BackgroundQuery = True .RefreshStyle = xlOverwriteCells .SavePassword = False .SaveData = True .AdjustColumnWidth = False .RefreshPeriod = 0 .PreserveColumnInfo = True .SourceDataFile = Worksheets("Base").Range("B5") .Refresh BackgroundQuery:=False End With End Sub а для записи в БД экспериментировал с полем Mode в строке Connection и что-то шиш. для CmdText= "UPDATE MudProperties SET Prop47 = 11 WHERE CkNum = 1 AND Date = 39460" Выдает Run-time error 1004: "Размер поля недостаточен, чтобы принять добавляемые данные. Попробуйте вставить меньшее кол-во данных." Заранее благодарен. Последний раз редактировалось MUZDIE; 18.01.2008 в 15:39. |
18.01.2008, 17:13 | #2 |
Форумчанин
Регистрация: 21.08.2007
Сообщений: 292
|
Смотри личное сообщение
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Экспорт из Access в Excel, Экспорт из отчётов в таблицу Excel | Kissedbythegod | Microsoft Office Access | 1 | 31.05.2008 22:15 |
Запись в БД(*.MDB) из Excel VB | MUZDIE | Помощь студентам | 2 | 18.01.2008 12:58 |
очень громоздкие финансовые модели в Excel, а Excel не тянет | Ragazza | Microsoft Office Excel | 7 | 03.10.2007 20:08 |
Формирование из excel в ASCII, у меня он формирует по одному клиенту а в Excel нескол | Askat | Общие вопросы Delphi | 0 | 18.07.2007 06:28 |
Как вытащить данные из Excel в бд dephi, а потом (после работы с данными) сформировать новый файл excel. | Геля | БД в Delphi | 1 | 10.04.2007 15:11 |