Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.95/21: Рейтинг темы: голосов - 21, средняя оценка - 4.95
0 / 0 / 1
Регистрация: 20.10.2009
Сообщений: 11

Перенос данных из Access в Excel

15.05.2013, 22:15. Показов 4666. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый вечер.
столкнулся с проблемой, нужно перенести данные из accsse в excel.
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
28
29
30
31
Option Compare Database
 
Sub Test()
Dim strTable As String
Dim strWorksheetPath As String
Dim appExcel As Object
'Dim wkb As Excel.Workbook
'Dim sht As Excel.Worksheet
'Dim oExcel As Excel.Application
 
strTable = "Òàáëèöà1"
strWorksheetPath = "C:\Users\Àëåêñàíäð\Desktop\Äèïëîì\11001-primer.xls"
'strWorksheetPath = strWorksheetPath & "Òàáëèöà1.xls"
Debug.Print "Worksheet path: " & strWorksheetPath
 
DoCmd.TransferSpreadsheet transfertype:=acExport, _
spreadsheettype:=acSpreadsheetTypeExcel12, _
TableName:=strTable, FileName:=strWorksheetPath, _
hasfieldnames:=False
 
Set oExcel = CreateObject("Excel.Application")
Set appExcel = GetObject(, "Excel.Application")
appExcel.Workbooks.Open (strWorksheetPath)
Set sht = appExcel.ActiveSheet
Set wkb = appExcel.ActiveWorkbook
sht.Activate
 
 
 
appExcel.Application.Visible = True
End Sub
подскажите, что нужно дописать, чтобы вставить данные из акссеса в эксель, на разных листах?

Добавлено через 26 минут
чтобы брало отсюда
Ссылка удалена
и была вставка сюда
Ссылка удалена

заранее благодарен
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
15.05.2013, 22:15
Ответы с готовыми решениями:

Перенос данных из Excel в Access
Здравствуйте ! Очень прошу спуститься до нулевого уровня VBA и подсказать, как нажав на кнопку в 1.xlsm перенести данные из ячеек,...

Перенос данных из Excel в Access
День Добрый!Есть таблица Excel и база данных Access.Нужно написать код на кнопку,который бы переносил данные из Excel в Access....

Перенос данных из excel в access
Всем добрый день! У меня простой код Sub Inter() DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel10,...

8
0 / 0 / 1
Регистрация: 20.10.2009
Сообщений: 11
15.05.2013, 23:05  [ТС]
чтобы брало отсюда из аксесса
рис.2
и была вставка сюда в ексель
рис.1
Миниатюры
Перенос данных из Access в Excel  
Изображения
 
0
Заблокирован
16.05.2013, 12:37
hp13, Выложи базу и лист. Помогу. За тебя и базу делать и лист чертить нет желания.
0
Эксперт MS Access
26826 / 14506 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
16.05.2013, 16:24
Цитата Сообщение от hp13 Посмотреть сообщение
подскажите, что нужно дописать, чтобы вставить данные из акссеса в эксель, на разных листах?
Поскольку вы уже пользуетесь TransferSpreadsheet, то уместно и дальше делать также. Метод умеет вставлять в разные листы. Напишите в параметре Range (6 параметр в списке) имя листа на который надо поместить данные.

Если же хотите все-таки прямо на листе, то для перехода на требуемый лист напишите wkb.Sheets("НужныйЛист").Activate
1
Заблокирован
16.05.2013, 17:18
mobile, Есть очень простой пример который занимает максимум 8 строк кода или ладе 6. На C# это вообще выглядит еще проще.

Его писанину можно сократить больше чем в половину раз.
0
0 / 0 / 1
Регистрация: 20.10.2009
Сообщений: 11
16.05.2013, 19:03  [ТС]
inv.DS, а не могли бы вы написать пример для с#?
0
Заблокирован
16.05.2013, 19:11
hp13, А не могли бы вы:

Цитата Сообщение от inv.DS Посмотреть сообщение
hp13, Выложи базу и лист. Помогу. За тебя и базу делать и лист чертить нет желания.
Цитата Сообщение от inv.DS Посмотреть сообщение
hp13, Выложи базу и лист. Помогу. За тебя и базу делать и лист чертить нет желания.
ПРОЧИТАТЬ ВНИМАТЕЛЬНО СООБЩЕНИЕ !

Добавлено через 4 минуты
Есть самый простой вариант это перебором DGV по циклу:

C#
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
            xlApp = new Excel.Application();
 
            try
            {
                OleDbConnection dbCon = new OleDbConnection(
@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + label1.Text);
                dbCon.Open();
                OleDbDataAdapter dbAdapter1 = new OleDbDataAdapter(@"SELECT Таблица1.Код, Таблица2.Фамилия, Таблица2.Имя, Таблица2.Отчество, Таблица1.[Сумма заказа], Таблица1.[Дата заказа] FROM Таблица2 INNER JOIN Таблица1 ON Таблица2.Код = Таблица1.Клиент WHERE Фамилия LIKE '%" + textBox1.Text + "%'", dbCon);
                DataTable dataTable = new DataTable();
                dbAdapter1.Fill(dataTable);
                //dataGridView1.DataSource = dataTable;
                dbCon.Close();
 
                //добавляем книгу
                xlApp.Workbooks.Add(Type.Missing);
 
                //делаем временно неактивным документ
                xlApp.Interactive = false;
                xlApp.EnableEvents = false;
 
                //выбираем лист на котором будем работать (Лист 1)
                xlSheet = (Excel.Worksheet)xlApp.Sheets[1];
                //Название листа
                xlSheet.Name = "Данные";
 
                //Выгрузка данных
                DataTable dt = dataTable;
 
                int collInd = 0;
                int rowInd = 0;
                string data = "";
 
                //называем колонки
                for (int i = 0; i < dt.Columns.Count; i++)
                {
                    data = dt.Columns[i].ColumnName.ToString();
                    xlSheet.Cells[1, i + 1] = data;
 
                    //выделяем первую строку
                    xlSheetRange = xlSheet.get_Range("A1:Z1", Type.Missing);
 
                    //делаем полужирный текст и перенос слов
                    xlSheetRange.WrapText = true;
                    xlSheetRange.Font.Bold = true;
                }
 
                //заполняем строки
                for (rowInd = 0; rowInd < dt.Rows.Count; rowInd++)
                {
                    for (collInd = 0; collInd < dt.Columns.Count; collInd++)
                    {
                        data = dt.Rows[rowInd].ItemArray[collInd].ToString();
                        xlSheet.Cells[rowInd + 2, collInd + 1] = data;
                    }
                }
 
                //выбираем всю область данных
                xlSheetRange = xlSheet.UsedRange;
 
                //выравниваем строки и колонки по их содержимому
                xlSheetRange.Columns.AutoFit();
                xlSheetRange.Rows.AutoFit();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
            finally
            {
                //Показываем ексель
                xlApp.Visible = true;
 
                xlApp.Interactive = true;
                xlApp.ScreenUpdating = true;
                xlApp.UserControl = true;
 
                //Отсоединяемся от Excel
                releaseObject(xlSheetRange);
                releaseObject(xlSheet);
                releaseObject(xlApp);
            }
        }
        //Освобождаем ресуры (закрываем Excel)
        void releaseObject(object obj)
        {
            try
            {
                System.Runtime.InteropServices.Marshal.ReleaseComObject(obj);
                obj = null;
            }
            catch (Exception ex)
            {
                obj = null;
                MessageBox.Show(ex.ToString(), "Ошибка!", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            finally
            {
                GC.Collect();
            }
        }
Но есть проще, методом запросов SQL и чтением набора записей которые вернула база данных.
1
0 / 0 / 1
Регистрация: 20.10.2009
Сообщений: 11
17.05.2013, 12:02  [ТС]
прошу прощения, за столь беспардонное поведения, только вернулся с работы
в архиве сама форма в экселе (primer) в которую нужно вставить данные, пример бд (проба), с запросом и кодом вба, и попытка подключения напрямую бд к экселю (Лист Microsoft Excel).
Вложения
Тип файла: rar Проект.rar (133.1 Кб, 41 просмотров)
0
Заблокирован
17.05.2013, 15:10
Сделал тебе самый просто вариант. Выгрузку записи в Excel только той, которая выделена пользователем. Подключаешь библиотеку Excel к твой базе данных в редакторе VBA. Далее вводишь такой код:

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Dim XL As New Excel.Application
 
Private Sub Êíîïêà11_Click()
    XL.Workbooks.Open "D:\Book.xls"
    XL.Visible = True
    Set XL = XL.ActiveWorkbook.Sheets.Application
    
    XL.Range("BI10:DW10").Value = ôàìèëèÿ.Value
    XL.Range("BI11:DW11").Value = èìÿ.Value
    XL.Range("BI12:DW12").Value = îò÷åñòâî.Value
    
    'XL.ActiveWorkbook.Save
    'XL.ActiveWorkbook.SaveAs "C:\MyNewWorkBook.xls"
    'XL.ActiveWorkbook.Close
    
    Set XL = Nothing
End Sub
Пример во вложении. Подключение Excel к проекту вещь хорошая, потому, что ты можешь видеть команды которые ты задаешь, вернее их свойства в отличии от вызова его как объекта. В общем смотри и разбирайся кстати на письмо ответь.
Вложения
Тип файла: rar проба.rar (100.7 Кб, 102 просмотров)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
17.05.2013, 15:10
Помогаю со студенческими работами здесь

Перенос данных из Excel в Access
Здравствуйте, уважаемые форумчане! Я новичок во всем этом, но как понимаю именно MS Access и предназначено для моих целей. От вас же,...

Перенос данных из Excel в Access
Всем привет.Можете подсказать есть еще какой-нибудь способ переноса данных из Excel в Access помимо экспорта?

Перенос данных из Excel в Access
можно ли перенести данные в access из excel ??если да . то как??

Перенос данных из таблицы excel в access
Добрый день! решаю задачу по экспорту данных из таблицы excel в БД ms access.. код рабочий: #работа с файлом excel import...

Перенос данных из Excel в Access через ADO
Добрый вечер, уважаемые форумчане! С вашего позволения открою еще одну тему. Много искал в инете способ по которому можно было бы...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru