Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.05.2011, 19:50   #1
maksimka2112
Пользователь
 
Регистрация: 24.04.2010
Сообщений: 11
По умолчанию Загрузка БД Access в Excel

Подскажите, пожалуйста, как сделать так, чтобы при нажатии кнопки открывалось окно с выбором бд для загрузки и, после выбора бд, она загружалась, начиная от ячейки B5 ? БД аксесовская
maksimka2112 вне форума Ответить с цитированием
Старый 06.05.2011, 20:24   #2
motorway
Участник клуба
 
Регистрация: 28.06.2009
Сообщений: 1,950
По умолчанию

Вообще есть в меню Данные - из Access.
motorway вне форума Ответить с цитированием
Старый 07.05.2011, 10:27   #3
maksimka2112
Пользователь
 
Регистрация: 24.04.2010
Сообщений: 11
По умолчанию

Ну вот как загрузить базу данных догадался (с помощью макроса, хотя код получился очень некрасивый). А когда поработал с листом, надо сделать так, чтобы изменений сохранились в бд. Как это осуществить, не подскажите?
maksimka2112 вне форума Ответить с цитированием
Старый 07.05.2011, 10:50   #4
maksimka2112
Пользователь
 
Регистрация: 24.04.2010
Сообщений: 11
По умолчанию

Блииин...Вставляю приведённый код, нажимаю на кнопку и БД загружается. Произвожу какие-то изменения на листе, опять жму на кнопку - данные перезагружаются в заданном диапазоне и плюс загружаются эти же данные в соседнем диапазоне...как тут быть?
Код HTML:
Private Sub CommandButton1_Click()
With ActiveSheet.QueryTables.Add(Connection:=Array(Array( _
        "ODBC;DSN=База данных MS Access;DBQ=D:\uchoba\ДИПЛОМ\vba\проба\р\exprmnt\коп\ИС_РЭПи.mdb;DefaultDir=D:\uchoba\ДИПЛОМ\vba\проба\р\expr" _
        ), Array("mnt\коп;DriverId=25;FIL=MS Access;MaxBufferSize=2048;PageTimeout=5;")) _
        , Destination:=Range("A1"))
        .CommandText = Array( _
        "SELECT АКТИВ.АКТИВ, АКТИВ.`Код показателя`, АКТИВ.`На начало отчетного периода`, АКТИВ.`На конец отчетного периода`" & Chr(13) & "" & Chr(10) & "FROM `D:\uchoba\ДИПЛОМ\vba\проба\р\exprmnt\коп\ИС_РЭПи`.АКТИВ АКТИВ" _
        )
        .Name = "Запрос из База данных MS Access"
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .BackgroundQuery = True
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .PreserveColumnInfo = True
        .Refresh BackgroundQuery:=False
    End With
End Sub
maksimka2112 вне форума Ответить с цитированием
Старый 07.05.2011, 16:35   #5
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Вам надо написать запрос Update на обновление измененной строки.
Сделать красиво-это не простая задачка.
если строк немного .можно написать запрос на обновление всех строк.
учите язык Sql
Анализ,обработка данных Недорого

Последний раз редактировалось doober; 07.05.2011 в 16:38.
doober вне форума Ответить с цитированием
Старый 07.05.2011, 16:46   #6
maksimka2112
Пользователь
 
Регистрация: 24.04.2010
Сообщений: 11
По умолчанию

Цитата:
Сообщение от doober Посмотреть сообщение
Вам надо написать запрос Update на обновление измененной строки.
Сделать красиво-это не простая задачка.
если строк немного .можно написать запрос на обновление всех строк.
учите язык Sql
10 мая диплом сдавать...а ещё пояснительная на 140 листов...учить уже некогда. Да уж и так большого прогресса в программировании достиг , пусть и в вба. Я же вообще полный 0 был.
maksimka2112 вне форума Ответить с цитированием
Старый 07.05.2011, 17:06   #7
maksimka2112
Пользователь
 
Регистрация: 24.04.2010
Сообщений: 11
По умолчанию

В принципе с этим вопросом разробрался...сделал некрасиво, но сделал...просто перед тем, как загрузить бд, очищаю ячейки...тупость конечно, но всё же.

Подскажите , пожалуйста, как теперь сохранить изменения в базу данных? То есть, если я в экселе изменил какие-то параметры в существующем диапазоне, как мне теперь зафиксировать эти изменения в соответствующей таблице в аксесе?
maksimka2112 вне форума Ответить с цитированием
Старый 07.05.2011, 17:39   #8
maksimka2112
Пользователь
 
Регистрация: 24.04.2010
Сообщений: 11
По умолчанию

а в том коде оказывается надо было заменить xlInsertDeleteCells на xlOverWriteCells...пишу это, потому что может кому-нибудь такому, как я, понадобится это
maksimka2112 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Импорт-экспорт данных Excel-Access, и из Access-Excel Людвиг Microsoft Office Access 3 27.10.2011 14:38
загрузка Excel KARUSHEV Помощь студентам 0 19.10.2009 20:47
загрузка из excel Betty Общие вопросы Delphi 12 31.08.2009 14:30
Загрузка данных из Access в TDBComboBox KiLLiR БД в Delphi 6 21.01.2009 13:19