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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.04.2011, 09:21   #1
katrina-n
Пользователь
 
Регистрация: 29.11.2009
Сообщений: 51
Вопрос Копирование ячеек из книги excel в таблицу access

Здравствуйте.

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

и можно ли подключить построенную в excel диаграмму в форму access?
katrina-n вне форума Ответить с цитированием
Старый 06.04.2011, 10:38   #2
R Dmitry
Форумчанин
 
Регистрация: 07.03.2010
Сообщений: 796
По умолчанию

Цитата:
Сообщение от katrina-n Посмотреть сообщение
Здравствуйте.

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

и можно ли подключить построенную в excel диаграмму в форму access?
Добрый день, а из какой программы Вы хотите выполнить данное действо?
Логика?!.... она где то рядом... E_mail: dg_rusak@mail.ru Если спасибо мало: Яндекс . Деньги - 41001731366021 WM R269866874234
R Dmitry вне форума Ответить с цитированием
Старый 06.04.2011, 19:22   #3
katrina-n
Пользователь
 
Регистрация: 29.11.2009
Сообщений: 51
По умолчанию

все действия выполняю из access
katrina-n вне форума Ответить с цитированием
Старый 06.04.2011, 19:41   #4
R Dmitry
Форумчанин
 
Регистрация: 07.03.2010
Сообщений: 796
По умолчанию

Цитата:
Сообщение от katrina-n Посмотреть сообщение
все действия выполняю из access
через vba.

от вас необходим : файл xls, mdb и описание куда чего и по какому принципу вставлять

Дмитрий
Логика?!.... она где то рядом... E_mail: dg_rusak@mail.ru Если спасибо мало: Яндекс . Деньги - 41001731366021 WM R269866874234
R Dmitry вне форума Ответить с цитированием
Старый 06.04.2011, 21:05   #5
katrina-n
Пользователь
 
Регистрация: 29.11.2009
Сообщений: 51
По умолчанию

в таблицу "Использованный лом2_Н":
в поле НЛомИсп: из листа книги excel sheet2 диапазон ячеек "А2:А8"
в поле КолИспЛм: диапазон ячеек того же листа "Q2:Q8"

вот по какому принципу-не знаю, не сталкивалась с подобной задачей, могу сказать, что экспорт из access и дальнейшая обработка происходит так:
oCmd.OpenQuery "Экспорт_Лома"
Dim oWbk As Workbook
Set oWbk = Workbooks.Open("C:\Users\Ека\Deskto p\Домашная база\бд.xls")

MsgBox ActiveSheet.Name
Sheets("Sheet2").Select
MsgBox ActiveSheet.Name
Range("A1:P1").Select
oWbk.Application.Run "Solver.xla!Auto_Open"
oWbk.Application.Run "Оптимизация_шихты"

oWbk.Close SaveChanges:=True
Вложения
Тип файла: zip бд (2).zip (927.5 Кб, 22 просмотров)
katrina-n вне форума Ответить с цитированием
Старый 06.04.2011, 22:30   #6
R Dmitry
Форумчанин
 
Регистрация: 07.03.2010
Сообщений: 796
По умолчанию

файл xls будет закрыт?
Логика?!.... она где то рядом... E_mail: dg_rusak@mail.ru Если спасибо мало: Яндекс . Деньги - 41001731366021 WM R269866874234
R Dmitry вне форума Ответить с цитированием
Старый 06.04.2011, 22:35   #7
katrina-n
Пользователь
 
Регистрация: 29.11.2009
Сообщений: 51
По умолчанию

Цитата:
файл xls будет закрыт?
будет открыт
katrina-n вне форума Ответить с цитированием
Старый 06.04.2011, 23:43   #8
R Dmitry
Форумчанин
 
Регистрация: 07.03.2010
Сообщений: 796
По умолчанию

Код:
Option Compare Database

Sub impXls()
 Dim app As Excel.Application
 Dim strDOT As String, arr1(), arr2()
 '+++++++++++++++++++++++++++++++++++++++++
 'если шаблон в одной папке с access
    With Application.CurrentProject
     strDOT = .Path & "\" & "бд.xls"
    End With
'++++++++++++++++++++++++++++++++++++++++++
Set app = New Excel.Application
app.Visible = False
app.Workbooks.Open strDOT
With app.ActiveWorkbook.Sheets("Sheet2")
arr1 = .[a2:a8].Value: arr2 = .[q2:q8].Value
End With
app.ActiveWorkbook.Close
app.Quit
For i = 1 To UBound(arr1)
If arr2(i, 1) > 0 Then ' так как у Вас условие КолИспЛм >0
strsql = "INSERT INTO [Использованный лом2_Н] ( НЛомИсп, КолИспЛм )" _
& " SELECT " & arr1(i, 1) & " AS Выражение1, " & Replace(CDbl(arr2(i, 1)), ",", ".") & " AS Выражение2;"
'Debug.Print strsql
CurrentDb.Execute strsql
End If
Next
End Sub
файл и база в одной папке
Логика?!.... она где то рядом... E_mail: dg_rusak@mail.ru Если спасибо мало: Яндекс . Деньги - 41001731366021 WM R269866874234

Последний раз редактировалось R Dmitry; 07.04.2011 в 12:52.
R Dmitry вне форума Ответить с цитированием
Старый 07.04.2011, 11:29   #9
katrina-n
Пользователь
 
Регистрация: 29.11.2009
Сообщений: 51
По умолчанию

Спасибо большое, R Dmitry!

я реализовала рабоче-крестьянским методом)
Код:
If Range("Q2") <> 0 Then
Me!НЛомИсп = Range("A2")
Me!КолИспЛм = Range("Q2")

Else
End If
If Range("Q3") <> 0 Then
DoCmd.GoToRecord , , acNext
Me!НЛомИсп = Range("A3")
Me!КолИспЛм = Range("Q3")
DoCmd.GoToRecord , , acNext
DoCmd.GoToRecord , , acPrevious
Else
End If
If Range("Q4") <> 0 Then
Me!НЛомИсп = Range("A4")
Me!КолИспЛм = Range("Q4")
DoCmd.GoToRecord , , acNext
DoCmd.GoToRecord , , acPrevious
Else
End If
If Range("Q5") <> 0 Then
DoCmd.GoToRecord , , acNext
Me!НЛомИсп = Range("A5")
Me!КолИспЛм = Range("Q5")
DoCmd.GoToRecord , , acNext
DoCmd.GoToRecord , , acPrevious
Else
End If
If Range("Q6") <> 0 Then
DoCmd.GoToRecord , , acNext
Me!НЛомИсп = Range("A6")
Me!КолИспЛм = Range("Q6")
DoCmd.GoToRecord , , acNext
DoCmd.GoToRecord , , acPrevious
Else
End If
If Range("Q7") <> 0 Then
DoCmd.GoToRecord , , acNext
Me!НЛомИсп = Range("A7")
Me!КолИспЛм = Range("Q7")
DoCmd.GoToRecord , , acNext
DoCmd.GoToRecord , , acPrevious
Else
End If
If Range("Q8") <> 0 Then
DoCmd.GoToRecord , , acNext
Me!НЛомИсп = Range("A8")
Me!КолИспЛм = Range("Q8")
DoCmd.GoToRecord , , acNext
DoCmd.GoToRecord , , acPrevious
Else
End If
Столкнулась с такой проблемой: в результате выполнения оптимизации в excel путем поиска решения, некоторые компоненты искомого вектора x оказались очень малы и не реагируют на условие If Range("Q8") <> 0, вы не знаете как задать необходимую точность?
katrina-n вне форума Ответить с цитированием
Старый 07.04.2011, 12:32   #10
R Dmitry
Форумчанин
 
Регистрация: 07.03.2010
Сообщений: 796
По умолчанию

Цитата:
Сообщение от katrina-n Посмотреть сообщение
Спасибо большое, R Dmitry!

я реализовала рабоче-крестьянским методом)

Столкнулась с такой проблемой: в результате выполнения оптимизации в excel путем поиска решения, некоторые компоненты искомого вектора x оказались очень малы и не реагируют на условие If Range("Q8") <> 0, вы не знаете как задать необходимую точность?
это форум по access , к сожалению я с поиском решения особо не сталкиваюсь
зы....
мой код работает и на закрытом, и на открытом файле

но дело Ваше, если нравиться Ваш код используйте.

еще одно зы....
таблица без ключа это плохо
Логика?!.... она где то рядом... E_mail: dg_rusak@mail.ru Если спасибо мало: Яндекс . Деньги - 41001731366021 WM R269866874234
R Dmitry вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вставка ячеек из одной книги excel в другую hackPNZ Microsoft Office Excel 7 17.10.2014 17:27
поиск ячеек по шаблону из одной книги и копирование в другую VS1986 Microsoft Office Excel 1 27.01.2011 05:34
Книги по Macros Excel и Access clown86 Microsoft Office Excel 2 29.10.2010 14:42
копирование одного и того же набор ячеек со всеx существующиx листов на 1ый лист книги skapitan Microsoft Office Excel 6 25.03.2010 20:40
Копирование области ячеек в Excel lexaltd Общие вопросы Delphi 2 07.10.2009 10:34