Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
загрузка данных в рекордсет adodb, невозможно найти устанавливаемый isam
 
Спасибо, видимо так и есть.
загрузка данных в рекордсет adodb, невозможно найти устанавливаемый isam
 
Опечатка, там конечно '
но проблемы это не решит, пробовал по всякому...
загрузка данных в рекордсет adodb, невозможно найти устанавливаемый isam
 
Такая ситуация возможна при установленном и работающем access?
загрузка данных в рекордсет adodb, невозможно найти устанавливаемый isam
 
Добрый день,
Требуется загрузить данные в рекордсет через ado
Подключаю библиотеку Microsoft ActiveX Date Objects 6.0 Library
код следующий
Код
Dim con as new adodb.connection
Con.connectionString="Provider=Microsoft.ACE.OLEDB.12.0;Data Source=c:\myFolder\myfile.xlsx;Extended Properties="Excel 12.0 Xml;HDR=YES""
con.open

Выдает ошибку невозможно найти устанавливаемый ISAM
В правильности кода уверен, на другом компе  подключение проходило.
Доступ к защищенной книге через ado
 
прекрасно понимаю размытость вопроса.
Сейчас пока стоит простая задача
открыть книгу 1
открыть книгу 2
В книге 2 найти записи по уникальному коду из книги 1 и скопировать найденные записи в книгу3
Мне как человеку без опыта программирования в Excel пришла мысль реализовать это через SQL .
Понимаю что решить конкретно эту задачу можно и другими способами очевидными в Excel  (фильтр например).
Тогда вопрос более конкретный,

При каких объемах (количество записей) в таблицах excel (для решения выше описанной задачи) разумно использовать ADO?
Доступ к защищенной книге через ado
 
спасибо, так работает.
Раз уж разговор зашел о смысле использования ADO...
Ранее работал только в Acces, поэтому ADO привычнее.
Как на Ваш взгляд, насколько разумно вообще для обработки данных Excel использовать ADO?
Доступ к защищенной книге через ado
 
Неужели все так плохо?! Медицина здесь бессильна?
Может есть какой-то другой выход? Снять пароль, открыть, вернуть пароль.
Изменено: ruslan_sul - 14.02.2018 14:05:03
Доступ к защищенной книге через ado
 
Добрый день, нужно организовать доступ к книге excel, защищенной пользовательским паролем.
excel 2013
Доступ организуется через ADO
делаю так
Код
Dim con_exc As New ADODB.Connection
Dim rst_exc As New ADODB.Recordset



'подключение к ексел
con_exc.Provider = "Microsoft.ACE.OLEDB.12.0"
con_exc.ConnectionString = "Data Source=" & ThisWorkbook.Path & "\база_пароль.xlsx" & _
                        ";Password=111;User ID=Admin;Extended Properties=""Excel 12.0 Macro;HDR=YES"""


con_exc.CursorLocation = adUseClient
con_exc.Open
rst_exc.Open "Select Код from [Лист1$]", con_exc

Debug.Print rst_exc.RecordCount

   rst_exc.Close
   con_exc.Close
 
При открытии соединения появляется ошибка
"Не удается запустить приложение. Системная база данных отсутствует или открыта с монопольным доступом другим пользователем"

Если обращаться к книге без пароля (убрав строки  (;Password=111;User ID=Admin) все работает
диаграма в power point на основе таблицы Excel., диаграма в power point на основе таблицы Excel.
 
Добрый день!
Стоит задача сформировать презентацию PP на каждом из слайдов находится диаграмма.
Диаграмма должна строится в PP (связь с Excel не подойдет, пользователи хотят редактировать данные прямо в PP)
взял пример отсюда
Теперь необходимо привязать данные из excel
вместо
Код
gWorkSheet.ListObjects("Table1").Resize gWorkSheet.Range("A1:B5")
gWorkSheet.Range("Table1[[#Headers],[Series 1]]").Value = "Items"
gWorkSheet.Range("a2").Value = "Coffee"
gWorkSheet.Range("a3").Value = "Soda"
gWorkSheet.Range("a4").Value = "Tea"
gWorkSheet.Range("a5").Value = "Water"
gWorkSheet.Range("b2").Value = "1000"
gWorkSheet.Range("b3").Value = "2500"
gWorkSheet.Range("b4").Value = "4000"
gWorkSheet.Range("b5").Value = "3000"
пробую так
Код
  myChart.SetSourceData Source:=Workbooks("Книга1.xls").Sheets("Лист1").Range("A1:A10,B1:B10")

или даже так
Код
gWorkSheet.Range("a2").Value = Workbooks("Книга1.xls").Sheets("Лист1").Range("A3")
gWorkSheet.Range("a3").Value = Workbooks("Книга1.xls").Sheets("Лист1").Range("A4")
gWorkSheet.Range("a4").Value = Workbooks("Книга1.xls").Sheets("Лист1").Range("A5")
gWorkSheet.Range("a5").Value = Workbooks("Книга1.xls").Sheets("Лист1").Range("A6")

gWorkSheet.Range("b2").Value = Workbooks("Книга1.xls").Sheets("Лист1").Range("B3")
gWorkSheet.Range("b3").Value = Workbooks("Книга1.xls").Sheets("Лист1").Range("B4")
gWorkSheet.Range("b4").Value = Workbooks("Книга1.xls").Sheets("Лист1").Range("B5")
gWorkSheet.Range("b5").Value = Workbooks("Книга1.xls").Sheets("Лист1").Range("B6")

Не могу передать данные в таблицу, диаграммы для PowerPoint
Скорость выполнения макроса копирования диапазонов
 
Действительно, при использовании массива, есть небольшая экономия. Попробую применить для всех макросов. Спасибо за советы.
Скорость выполнения макроса копирования диапазонов
 
Спасибо, тогда вопрос, существует ли способ помещения диапазона ячеек в массив (и обратно) без перебора строк в цикле?
Изменено: ruslan_sul - 04.10.2017 13:28:52
Скорость выполнения макроса копирования диапазонов
 
Именно этой статьей я и руководствовался
Код
Application.ScreenUpdating = False

Application.DisplayAlerts = False
сделал в первую очередь.
Но вопрос остался открытым, почему вместо оптимизации получаю прирост по времени выполнения.
Два макроса идентичны за исключением кода копирования диапазонов.
Данные копируются из трех книг, в каждой по 5-6 диапазонов. Общее время прироста 2 сек. Немного конечно, но...
Изменено: ruslan_sul - 04.10.2017 13:04:22
Скорость выполнения макроса копирования диапазонов
 
Добрый день!
Только вхожу в мир VBA на Excel. Стоит задача оптимизировать работу готового макроса. Суть задачи: данные переносятся из нескольких разных книг на рабочую книгу , где анализируются. Разработчик этого макроса вероятно использовал макрорекордер, все  макросы по копированию выглядят следующим образом
Код
Sheets("Ус1").Select
Workbooks("Условия ДОО.xlsx").Worksheets("Условия").Range("C5:C10").Copy
'Активируем нужную нам книгу
Workbooks("ДОО.xlsm").Activate
 'Выделяем и вставляем скопированные данные в ячейку
ActiveWorkbook.Worksheets("Ус1").Range("C5:C10").Select
ActiveSheet.Paste


Решив оптимизировать это дело, и избавиться от Select и Activate пишу следующим образом
Код
Workbooks("Условия ДОО.xlsx").Worksheets("Условия").Range("C5:C10").Copy Workbooks("ДОО.xlsm").Worksheets("Ус1").Range("C5:C10") 

Но вместо ожидаемой оптимизации получаю увеличение времени работы макроса.

Подскажите, как все таки правильно и эффективно копировать данные?

Страницы: 1
Наверх