powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / помогите с макросом...
25 сообщений из 50, страница 1 из 2
помогите с макросом...
    #36728741
malvas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!
Мне необходимо сделать следующее.
У меня есть таблица на SQL Server. Данные из этой таблицы надо переместить в определенные ячейки Excel, потом они пересчитаются с помощью формул и уже из посчинанных ячеек в Excele с результатом их надо переместить в определенные пустые столбцы того же SQL Server (пустые поля в базе данных будут созданы для этих целей). Если знаете, подскажите пожалуйста или подскажите где посмотреть... Я даже не знаю с чего начать (думаю надо писать макрос)...
Заранее спасибо!!!
...
Рейтинг: 0 / 0
помогите с макросом...
    #36728749
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
malvas,

А какие знания имеются?
Как соединиться с сервером?
Как работать с ячейками?
...
Рейтинг: 0 / 0
помогите с макросом...
    #36728758
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: malvas
> Добрый день!
> Мне необходимо сделать следующее.

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

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
помогите с макросом...
    #36728906
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
этим навеяло...
А нужен ли экселевский файл как результат?
SQL Server обладает достаточно мощными средствами, чтобы обрабатывать данные "не выходя из дома", в смысле прямо на сервере.

А то помню тут дама пыталась достать данные с сервера, чтобы высчитать в страшном цикле на VB среднеквадратичное отклонение и была очень рада, когда я ей подсказал, что в SQL это делается одной-единственной(!) функцией
...
Рейтинг: 0 / 0
помогите с макросом...
    #36732027
stavdius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игорь Горбонос
> Автор: malvas
> Добрый день!
> Мне необходимо сделать следующее.

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




Игорь, добрый день!
Не могу разобраться, почему он ругается на строку объявления переменной -
Dim cn As New ADODB.Connection
В чем может быть проблема ?
...
Рейтинг: 0 / 0
помогите с макросом...
    #36732035
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stavdius,

Project - References -
найти и подключить библиотеку Micrisoft ActiveX Data Objects
...
Рейтинг: 0 / 0
помогите с макросом...
    #36732051
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProProject - References -
в экселе: Tools - References -
...
Рейтинг: 0 / 0
помогите с макросом...
    #36732061
stavdius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,
Но там этого меню нет, это не VB Net, а VB для Ecxel
...
Рейтинг: 0 / 0
помогите с макросом...
    #36732063
stavdius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,

Спасибо, нашел.
но он не активен... ((
Что о нужно включить ?
...
Рейтинг: 0 / 0
помогите с макросом...
    #36732067
stavdius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stavdiusShocker.Pro,

Спасибо, нашел.
но он не активен... ((
Что о нужно включить ?

Включил МозГ. Работает )
...
Рейтинг: 0 / 0
помогите с макросом...
    #36732232
stavdius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще один вопрос. Считать данные из БД получилось. В шаблоне Excel зашиваю формулу, к примеру в ячейке D зашита формула - B+C
Мне нужно полученный результат записать в БД.
В цикле вывожу, я так понимаю в этом же цикле, нужно и вставлять данные.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
Do Until rs.EOF
        Cells(q,  1 ) = rs.Fields( 0 )
        Cells(q,  2 ) = rs.Fields( 1 )
        Cells(q,  3 ) = rs.Fields( 2 )
        Cells(q,  4 ) = rs.Fields( 3 )
        Cells(q,  5 ) = rs.Fields( 4 )
        Cells(q,  6 ) = rs.Fields( 5 )
        Cells(q,  7 ) = rs.Fields( 6 )
        Cells(q,  8 ) = rs.Fields( 7 )
        Cells(q,  9 ) = rs.Fields( 8 )
        Cells(q,  10 ) = rs.Fields( 9 )
        Cells(q,  11 ) = rs.Fields( 10 )
        Cells(q,  12 ) = rs.Fields( 11 )
        Cells(q,  13 ) = rs.Fields( 12 )
        Cells(q,  14 ) = rs.Fields( 13 )
        Cells(q,  15 ) = rs.Fields( 14 )
        Cells(q,  16 ) = rs.Fields( 15 )
        Cells(q,  17 ) = rs.Fields( 16 )
        q = q +  1 
        rs.MoveNext
    Loop
...
Рейтинг: 0 / 0
помогите с макросом...
    #36732274
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: stavdius
> Еще один вопрос. Считать данные из БД получилось. В шаблоне Excel зашиваю формулу, к примеру в ячейке D зашита
> формула - B+C
> Мне нужно полученный результат записать в БД.

> В цикле вывожу
Замени на:
Код: plaintext
1.
2.
3.
4.
5.
6.
Do Until rs.EOF
    For i =  1  To  16  ' или rs.Fields.Count
        Cells(q, i) = rs.Fields(i -  1 )
    Next i
    q = q +  1 
    rs.MoveNext
Loop

> я так понимаю в этом же цикле, нужно и вставлять данные.

Не понял вопроса
Или ты спрашиваешь что после вставки данных можно сразу и забирать данные??
Это отсюда не видно. Потому что расчет может вестись по всем данным из рекордсета.
Если брать за основу твой пример с формулой B+C то здесь будет зависить от того какое второе слагаемое. Если вторым
слагаемым стоит простое число, то да - забирать можно сразу, а если в ячейку второго слагаемого будет записыватся число
из рекордсета, то нет - забирать нельзя пока не будут прописанны оба слагаемых :)

И это сложение можно было сделать прямо на сервере, не вытаскивая данные в ексел :)

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
помогите с макросом...
    #36732347
stavdius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, считали данный в ячейку А1 = 2, В1=2 - а в ячейке D1 сложили А1+В1 = 4
Значение 4 нужно записать в БД.
И так далее построчно
...
Рейтинг: 0 / 0
помогите с макросом...
    #36732354
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stavdiusДа, считали данный в ячейку А1 = 2, В1=2 - а в ячейке D1 сложили А1+В1 = 4
Значение 4 нужно записать в БД.
И так далее построчно
это учебное задание что ли?
или на работу устраиваетесь?
...
Рейтинг: 0 / 0
помогите с макросом...
    #36732359
stavdius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProstavdiusДа, считали данный в ячейку А1 = 2, В1=2 - а в ячейке D1 сложили А1+В1 = 4
Значение 4 нужно записать в БД.
И так далее построчно
это учебное задание что ли?
или на работу устраиваетесь?

Да нет, работаю )))
Просто первый раз столкнулся с VB в Excel.
Немного программирую в VB Net
...
Рейтинг: 0 / 0
помогите с макросом...
    #36732362
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stavdiusДа нет, работаю )))
тогда зачем нужен эксель, чтобы сложить два поля БД?
...
Рейтинг: 0 / 0
помогите с макросом...
    #36732383
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
задача какая то мутная у вас. рассказывайте, что вам действительно надо , а не то как вам приснилось, что это можно сделать таким образом
...
Рейтинг: 0 / 0
помогите с макросом...
    #36732390
stavdius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProstavdiusДа нет, работаю )))
тогда зачем нужен эксель, чтобы сложить два поля БД?

Давайте по существу...
Я привел пример с двумя полями потому, что я не пойму как записывать в БД рассчитанные значения.
Excel - удобен для аналитики. А в БД у нас сливаются циыфирьки, по которым нужно провести расчет...
...
Рейтинг: 0 / 0
помогите с макросом...
    #36732398
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stavdiusShocker.ProstavdiusДа нет, работаю )))
тогда зачем нужен эксель, чтобы сложить два поля БД?

Давайте по существу...
Я привел пример с двумя полями потому, что я не пойму как записывать в БД рассчитанные значения.
Excel - удобен для аналитики. А в БД у нас сливаются циыфирьки, по которым нужно провести расчет...


вы опять что-то недоговариваете
...
Рейтинг: 0 / 0
помогите с макросом...
    #36732412
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stavdius[Давайте по существу...
Я привел пример с двумя полями потому, что я не пойму как записывать в БД рассчитанные значения.
Я вам задал вопрос про наличествующие знания, вы не ответили.
Писать в БД можно по-разному. Можно сформировать и выполнить "insert" на клиенте. Можно выполнить SP на сервере. Какой нужен вариант?
...
Рейтинг: 0 / 0
помогите с макросом...
    #36732421
stavdius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konst_OnestavdiusShocker.ProstavdiusДа нет, работаю )))
тогда зачем нужен эксель, чтобы сложить два поля БД?

Давайте по существу...
Я привел пример с двумя полями потому, что я не пойму как записывать в БД рассчитанные значения.
Excel - удобен для аналитики. А в БД у нас сливаются циыфирьки, по которым нужно провести расчет...


вы опять что-то недоговариваете

Делаем расчет доходности проекта.
Исходные данные, у нас заливаются ежедневно джобом на сервере. В итоге, расчет весь находится в ecxel, в него подставляет значения из БД, и рассчитанные значения записываем в БД.
Далее, по этим данным строим сводную таблицу с графиками...
...
Рейтинг: 0 / 0
помогите с макросом...
    #36732424
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stavdiusKonst_OnestavdiusShocker.ProstavdiusДа нет, работаю )))
тогда зачем нужен эксель, чтобы сложить два поля БД?

Давайте по существу...
Я привел пример с двумя полями потому, что я не пойму как записывать в БД рассчитанные значения.
Excel - удобен для аналитики. А в БД у нас сливаются циыфирьки, по которым нужно провести расчет...


вы опять что-то недоговариваете

Делаем расчет доходности проекта.
Исходные данные, у нас заливаются ежедневно джобом на сервере. В итоге, расчет весь находится в ecxel, в него подставляет значения из БД, и рассчитанные значения записываем в БД.
Далее, по этим данным строим сводную таблицу с графиками...

так , если у вас всё работает, то в чём собственно вопрос?
...
Рейтинг: 0 / 0
помогите с макросом...
    #36732451
malvas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
у нас действительно всё работает но с access, но теперь встала задача сделать подобное с SQL Server.
В access мы делали вот так


Код: plaintext
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.
Sub dataaccess()
Dim db As Database
Dim rs As Recordset

Dim Sh As Worksheet
Dim wb As Workbook
Dim s As String
Set Sh = ActiveSheet

Set db = OpenDatabase("D:\Мои документы\BRB\BRB.mdb")
Set rs = db.OpenRecordset("select * from KK10t")

Do While Not rs.EOF
  Sh.Cells( 15 ,  5 ) = rs![limit_usd]
  Sh.Cells( 10 ,  7 ) = rs![product_podname]
  Sh.Cells( 9 ,  7 ) = rs![platsys]
  Sh.Cells( 8 ,  7 ) = rs![podnaim]

 
  Sh.Calculate
  rs.Edit
  rs!IntRate = Sh.Cells( 16 ,  7 )
  rs.Update

rs.MoveNext
Loop
rs.Close
db.Close
End Sub

это я написала упрощенный вариант...
...
Рейтинг: 0 / 0
помогите с макросом...
    #36732457
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
так же почти и будет, только сделайте на ADO, примеров открытия соединения с SQL-сервер и выполнения запросов, получения/одновления рекордсета на форуме полно
...
Рейтинг: 0 / 0
помогите с макросом...
    #36732458
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
malvasу нас действительно всё работает но с access, но теперь встала задача сделать подобное с SQL Server.
Если не заниматься рефакторингом, то ADO пофиг, работать с аксессом или с SQL-сервером. Меняется только строка подключения.
...
Рейтинг: 0 / 0
25 сообщений из 50, страница 1 из 2
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / помогите с макросом...
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]