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

Передача данных в Access

30.10.2013, 14:17. Показов 4588. Ответов 44
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, обращаюсь к вам за помощью и очень на нее надеюсь )). Понимаю, что такие темы уже были, но не найдя ответа, спрошу еще раз. В ecxel есть три листа с данными их нужно перенести в access, обработать, а потом обратно одной табл. что-то никак не получается. с VBA раньше работать не приходилось, задача для меня оказалась сложной. если можно код vba, с самого начала (переменные, подкл. к базе). очень спасибо )
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
30.10.2013, 14:17
Ответы с готовыми решениями:

Передача всех данных из листа Exel в Access
как все данные из листа Exel передать в Access(можно в новую)

Передача данных из таблицы Access
Есть клиент и сервер. К серверу подключена база данных Access. Связь между клиентом и сервером осуществляется с помощью сокетов. Сервер...

Передача данных из access в онлайн касс
Есть база данных в которой формируется чек по продажам. Возможно ли передача данных данного чека в ККТ с фискальным регистратором? ...

44
0 / 0 / 0
Регистрация: 30.10.2013
Сообщений: 21
04.11.2013, 16:57  [ТС]
Студворк — интернет-сервис помощи студентам
Поля не будут меняться точно
0
 Аватар для Alex77755
11525 / 3812 / 683
Регистрация: 13.02.2009
Сообщений: 11,229
04.11.2013, 18:05
Эта процедура сформирует на новом листе таблицу по листу План
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
32
33
34
35
36
37
38
39
40
41
42
43
Option Explicit
 
Sub Tab_Plan()
Dim MI(), MR(), S() As String
Dim LR, R, C, T
Dim NumP()
NumP = Array(4, 5, 7, 8, 10, 11)
Dim oDP: Set oDP = CreateObject("Scripting.Dictionary")  ' Создаем словарь
With Worksheets("План")
    LR = .Cells(.Rows.Count, 1).End(xlUp).Row
    MI = Range(.Cells(1, 1), .Cells(LR, 30))
End With
        For R = 1 To LR
            T = ""
            For C = 0 To UBound(NumP)
                T = T & MI(R, NumP(C)) & ";"
            Next C
 
            oDP.Item(T) = oDP.Item(T) + MI(R, 25)
        Next R
MR = oDP.Keys
 
If WorksheetIsExist("Tab_p") Then
Application.DisplayAlerts = False
Worksheets("Tab_p").Delete
Application.DisplayAlerts = True
End If
With Worksheets.Add
.Name = "Tab_p"
For R = 0 To UBound(MR)
    S = Split(MR(R), ";")
        For C = 0 To UBound(S)
            .Cells(R + 1, C + 1) = S(C)
        Next C
        .Cells(R + 1, C) = oDP.Item(MR(R))
Next R
End With
 
End Sub
Private Function WorksheetIsExist(iName$) As Boolean
On Error Resume Next
WorksheetIsExist = IsObject(Worksheets(iName$))
End Function
Бизнесы подразделяются CCH - это Energy Drinks, RTD Tea, Sparkling Bev Core, Sparkling Bev Local,Sparkling Bev Non-premium, Sport Drinks, Water Flavoured, Water Regular)
Не понятно с разделение бизнесов. В "Плане" они тоже подразделяются?
1
0 / 0 / 0
Регистрация: 30.10.2013
Сообщений: 21
04.11.2013, 18:09  [ТС]
в плане они наз-ся так как и должны, а вот на листах рез1 и рез2 их нужно заменить, чтоб было соответствие с планом
0
 Аватар для Alex77755
11525 / 3812 / 683
Регистрация: 13.02.2009
Сообщений: 11,229
04.11.2013, 19:09
Понятно

Добавлено через 18 минут
381106 AUCHAN ООО АШАН 3807731961 Spirits
381106 AUCHAN ООО АШАН 3807733882 Spirits
381106 AUCHAN ООО АШАН 3807815569 Spirits
Здесь отличаются только "cust num" Считать отдельно для каждого?
Какие показатели являются общими для собираемых данных?
0
0 / 0 / 0
Регистрация: 30.10.2013
Сообщений: 21
04.11.2013, 19:26  [ТС]
Cust. Planning Level - укрупненная группировка клиентов - номер по этому номеру собираем данные
0
 Аватар для Alex77755
11525 / 3812 / 683
Регистрация: 13.02.2009
Сообщений: 11,229
04.11.2013, 19:47
Не зная вашей специфики трудно вникнуть. И сразу много информации.
Вот для начала 2 макроса создания 2 таблиц из План и рез1.
Подмену сделал и абсолютную величину берёт.
А остальное надо уточнять. Что группировать, что пропускать и не учитывать
Вложения
Тип файла: rar Исходн_данные_.rar (40.7 Кб, 3 просмотров)
1
0 / 0 / 0
Регистрация: 30.10.2013
Сообщений: 21
04.11.2013, 19:55  [ТС]
в Плане это CPL , в рез1 и рез2 это Cust. Planning Level

Добавлено через 2 минуты
Спасибо вам. Сейчас посмотрю
0
 Аватар для Alex77755
11525 / 3812 / 683
Регистрация: 13.02.2009
Сообщений: 11,229
04.11.2013, 20:12
Насколько я првильно понял исключения, то так:
Кликните здесь для просмотра всего текста
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
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
Sub Tab_рез1()
Set oDS = CreateObject("Scripting.Dictionary")  ' Создаем словарь
Set oDNKA = CreateObject("Scripting.Dictionary")  ' Создаем словарь
 
SOOT
Dim MI(), MR(), S() As String
Dim LR, R, C, T
Dim NumP()
 
Dim oDP: Set oDP = CreateObject("Scripting.Dictionary")  ' Создаем словарь
With Worksheets("рез1")
    LR = .Cells(.Rows.Count, 1).End(xlUp).Row
    MI = Range(.Cells(3, 1), .Cells(LR, 30))
End With
        For R = 1 To LR - 2
            T = ""
            If MI(R, 1) <> "#" Then
                If MI(R, 2) <> "#" Then
                    If Not oDNKA.exists(MI(R, 3)) Then
                        For C = 1 To 6
                            If R > 1 And C = 6 Then
                                If oDS.exists(MI(R, C)) Then
                                   T = T & oDS.Item(MI(R, C)) & ";"
                                Else
                                Debug.Print MI(R, C)
                                Stop
                                End If
                
                            Else
                                T = T & MI(R, C) & ";"
                            End If
                            
                        Next C
                        If R = 1 Then
                            oDP.Item(T) = MI(R, 7)
                        Else
                           oDP.Item(T) = oDP.Item(T) + Abs(MI(R, 7))
                        End If
                    End If
                End If
            End If
        Next R
MR = oDP.Keys
'удаление листа
If WorksheetIsExist("Tab_рез1") Then
Application.DisplayAlerts = False
Worksheets("Tab_рез1").Delete
Application.DisplayAlerts = True
End If
 
With Worksheets.Add 'добавить лист
.Name = "Tab_рез1"
For R = 0 To UBound(MR)
    S = Split(MR(R), ";")
        For C = 0 To UBound(S)
            .Cells(R + 1, C + 1) = S(C)
        Next C
        .Cells(R + 1, C) = oDP.Item(MR(R))
Next R
End With
MsgBox "OK", 64, ""
End Sub
1
 Аватар для Alex77755
11525 / 3812 / 683
Регистрация: 13.02.2009
Сообщений: 11,229
04.11.2013, 20:14
Впрочем без файла работать не будет: там в другой процедуре заполняется словарь исключений
Вложения
Тип файла: rar Исходн_данные_.rar (39.8 Кб, 5 просмотров)
1
0 / 0 / 0
Регистрация: 30.10.2013
Сообщений: 21
04.11.2013, 20:18  [ТС]
381106 AUCHAN ООО АШАН 3807731961 BF 31917,12
381106 AUCHAN ООО АШАН 3807733882 BF 19516,32
381106 AUCHAN ООО АШАН 3807815569 BF 5154,24
Извините, но если у вас есть возможность и время, я еще к вам обращаюсь, я совсем тону долбаюсь с этой табл уже неделю .В таб Tab_p нужно добавить колонку Факт (это цифры в поле MTD Act в таблице рез1 и HV Act в таблице рез2), то есть все цифры одной категории товара и одного CPL нужно сложить и записать одну соответственно в Tab_p. Еще раз спасибо за помощь
0
 Аватар для Alex77755
11525 / 3812 / 683
Регистрация: 13.02.2009
Сообщений: 11,229
05.11.2013, 11:03
категории товара и одного CPL
Так по SAP Code-Номер клиента и Customer name-Название клиента разбивать не надо?
И по городам тоже? Получается группировать надо по 2 полям, которые есть во всех таблицах:
CPL, Business в план и Cust. Planning Level, Item Category в таблицах рез#
0
0 / 0 / 0
Регистрация: 30.10.2013
Сообщений: 21
05.11.2013, 11:51  [ТС]
Здравствуйте, нужно получить суммы только по CPL, то есть по всем данным АШАН нужно получить одну сумму без учета бизнесов, клиентов и городов и в табл План и в табл Рез1 и Рез2. Укажите пожалуйста фрагмент где вы получаете абсолютную величину. Огромное спасибо за вашу помощь! Я теперь ваш код VBA читаю как хрестоматию и пытаюсь разбираться, откуда что получается )))
0
 Аватар для Alex77755
11525 / 3812 / 683
Регистрация: 13.02.2009
Сообщений: 11,229
05.11.2013, 15:28
Вот накопление суммы в словаре
Visual Basic
1
oDP_рез1.Item(T) = oDP_рез1.Item(T) + Abs(MI(R, 7))
1
 Аватар для Alex77755
11525 / 3812 / 683
Регистрация: 13.02.2009
Сообщений: 11,229
05.11.2013, 15:39
Не так? Суммируются
Я же просил: сделайте вручную рассчёт и выложите таблицу в таком виде как хотите получить.
Именно на базе конкретных исходных данных.
А вы начинаете рассказывать про поля в аксессе
Посмотрите вложение. Запустите одну процедуру, которую видно в списке макросов ( F8 )
В таблице tab_p в колонке С (9) итоговые суммы
В следующей колонке, то, что совпало из рез1, а в следующей должно быть, что совпало из рез2.
Но там пусто. Или нет совпадений из-за малого списка примера, или что-то неправильно выбрано.
Надо смотреть таблицы таб_рез1 и таб_рез2. Насколько правильно там выполнены условия.
Но я не могу вдуплится в вашу систему
Вложения
Тип файла: rar Исходн_данные_.rar (49.3 Кб, 4 просмотров)
1
 Аватар для Alex77755
11525 / 3812 / 683
Регистрация: 13.02.2009
Сообщений: 11,229
05.11.2013, 15:48
Опять непонятки. В примерах везде было написано, что надо делать замены по таблице соответсвий
CCH, JUICE, BF, а теперь пишите, что нужно получить суммы только по CPL?
В последнем примере суммы по CPL но с разбивкой по CCH, JUICE, BF
0
0 / 0 / 0
Регистрация: 30.10.2013
Сообщений: 21
05.11.2013, 17:47  [ТС]
Вот окончательный вид таблицы результата, суммируем только по CPL, во вложении пример. Спасибо )
Вложения
Тип файла: rar Исходн_дан1.rar (97.9 Кб, 3 просмотров)
0
0 / 0 / 0
Регистрация: 30.10.2013
Сообщений: 21
05.11.2013, 18:39  [ТС]
предыдущие промежуточные таблицы нужны были для финанас -го анализа
0
 Аватар для Alex77755
11525 / 3812 / 683
Регистрация: 13.02.2009
Сообщений: 11,229
05.11.2013, 19:37
Надеюсь теперь то, что надо. Проверяй
А то аксесс, поля...
Вложения
Тип файла: rar Исходн_данные_.rar (57.0 Кб, 7 просмотров)
1
 Аватар для Alex77755
11525 / 3812 / 683
Регистрация: 13.02.2009
Сообщений: 11,229
05.11.2013, 19:46
В макросах Private Sub Tab_рез1() и Private Sub Tab_рез1() есть массив номеров столбцов NumP = Array(2)
сюда можешь записывать номера столбцов для анализа и детализации.
Поиграйся с набором колонок. Только запускай эту процедуру отдельно.
Будет строиться каждый раз новая таблица.
Но если надо сборную таблицу, то должно быть как сейчас.
Можно сделать по другому: В эти процедуры передавать нужный набор в качестве аргументов и тогда сделать нужные процедуры отдельно
0
0 / 0 / 0
Регистрация: 30.10.2013
Сообщений: 21
05.11.2013, 19:52  [ТС]
Спасибо огромное вам ))за потраченное время и за работу. И я хочу научиться так управляться с VBA. Если вы в Новосибе, то с меня кружка пива ). А еще если можно подскажите (я понимаю, что это совсем наглость с моей стороны), каким образом можно сделать сортировку рез-та от большего к меньшему?
спасибо за советы
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
05.11.2013, 19:52

передача разнотипных данных из Exel в Access
Здравствуйте! помогите мне, пожалуйста! Имеется таблица в EXEL с разными типами данных. Данные нужно передать в три разные таблицы Access....

передача разнотипных данных из Excel в Access
Здравствуйте! помогите мне, пожалуйста! Имеется таблица в EXEL с разными типами данных. Данные нужно передать в три разные таблицы Access....

Передача данных из DBF в таблицы в Access
Помогите решить проблему! Решил отказаться от использования ISAM драйверов в своей программе. Делаю выборку данных из файлов DBF и...

Медленная передача данных из Access на SQL Server
Столкнулся с не совсем понятной ситуацией - простой INSERT, который передает данные из локальной таблицы на удаленный север работает очень...

Передача данных из Access в браузер Google Chrome
Здравствуйте! Собственно вопрос: как передать данные из Access в открытую страничку браузера Google Chrome для заполнения кучи полей в...


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет! За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Nekobox - outbounds[0].transport: unknown transport type: raw
damix 01.10.2026
Фикс ошибки Правым кликом по серверу -> отладочная информация -> edit Заменить "net": "raw", на "net": "tcp", Нажать кнопку reload.
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru