Перейти к содержанию
serzzzh

[Поддержка] Автобланк ПР 0.1.zip

Рекомендуемые сообщения

Автобланк ПР 0.1.zip

Скачать/Купить дополнение

Долго искал простое средство печати бланков почты России, в итоге сделал в екселе.

Используется ssh-тоннель для подключения к бд MySQL (можно создать отдельного пользователя только на чтение),

бланки почты взяты с сайта post.kamensky.ru.

В основе VBA-скрипта - запрос к таблице заказов "SELECT * FROM oc_order where order_id=", запрос легко переписать.

Инструкция внутри архива.

Если данное решение сэкономит Вам время - буду признателен за пиво на яндекс-кошелек 4100192758371.

Здоровая критика приветствуется.


 

  • +1 2

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вопросы:

1. можешь поподробнее описать процесс настройки тунеля ssh?

Ответ: Тоннель легко проверить любой подключалкой к БД, например SQLyog, подключение указываем локальное.

Примеров настройки море - http://peterhost.ru/...B5%D0%BB%D1%8C/ вот например.

2.при запуске VBA скрипта пишет:

Compile error: Can't find project or library

Ответ: видимо у вас включены не все компоненты EXCEL VBA.

Идем в редактор VBA (ALT+F11) Tools -> References, там должны быть включены галочки след. компонентов (версия может быть другой, выбирайте последнюю):

Visual Basic For Applications, Microsoft Excel 12.0 Object Library, Ole Automation, Microsoft Office 12.0 Object Library, Microsoft ActiveX Data Objects 12.0 Library.

У меня при таком наборе работает.

3. не понял как пароль ввести к базе, там источник пароля лист sys, ячейка 1:1, прям туда его записать?

Пароль запрашивается при старте через InputBox.

4.по остальным правкам менять где надо?

a) Меняем сам запрос, подставляем свою таблицу в код:

Src = "SELECT * FROM oc_order where order_id=" & Range("X2").Value

б) Меняем ConnectionString - подставляем свое название базы и Uid (Имя юзера):

ConnectionString = "DRIVER={" & get_MySQL_driver_name & "};Server=localhost;Database=cg_oc; Uid=admin; PWD=" & Sheets("sys").Cells(1, 1) & ";OPTION=3;"

  • +1 2

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо! действительно был потерян один из компонентов VBA. К базе вроде подключается, пароль спрашивает.

Но выдает ошибку:

---------------------------

Microsoft Excel

---------------------------

Ошибка-2147217900

---------------------------

ОК

---------------------------

Номер заказа точно верный, единственное база заказов немного модифицированная, может он берет данные из определенных колонок, или еще какая привязка есть?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Но выдает ошибку:

---------------------------

Microsoft Excel

---------------------------

Ошибка-2147217900

---------------------------

ОК

---------------------------

Номер заказа точно верный, единственное база заказов немного модифицированная, может он берет данные из определенных колонок, или еще какая привязка есть?

Проверьте запрос, пошагово пройдите vba код на листе "Исходные данные".

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Проверьте запрос, пошагово пройдите vba код на листе "Исходные данные".

так и не удалось запустить поиск по базе, ошибку выдает. посмотрел к каким столбцам обращается скрипт, все есть и во всех записи имеются.

Даже не знаю где еще может быть косяк.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Что-то ни как не получается "Нет связи с базой данных или неправильный пароль", где его этот Microsoft ActiveX Data Objects 12.0 Library взять, у меня только 6.0 максимальный, а по умолчанию 2.8 стоит. Все проверил прописал вроде как надо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

упс, пардон, вроде получилось -ввел правильно Имя сервера, но появилась ошибка с длинным номером 21472179000

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

не совсем корректно описал в инструкции создание SSH туннеля,

Надо использовать 127.0.0.1 как адрес в Destination.

Проверил на 3-х компах, все работает.

Инструкцию в файле обновил.

Должно быть как тут например:

post-13603-0-05897800-1350414807_thumb.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

К сожалению пока не удалось избавиться от Ошибка-2147217900, у кого то же самое отпишитесь.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ошибка появляется в exl когда переходишь на ячейку с Ok, поиск вроде начинается, уже нет ошибки связи с БД. А как еще можно проверить SSH тоннель? связь вроде есть в окне терминала.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

К сожалению пока не удалось избавиться от Ошибка-2147217900, у кого то же самое отпишитесь.

Посмотрел в чем проблема - у вас таблица заказов называется зарезервированным словом ORDER, потому запрос не выполняется.

Если запрос переписать на select * from {ИМЯ_БАЗЫ}.order или название таблицы взять в апострофы: `order` - то все в порядке.

У меня такой проблемы нет, так как на все таблицы есть префикс oc_.

Всем у кого подобная ошибка - проверяйте запрос.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

нихера себе лёгкое решение...вот в VamShop это действительно реализовано по-лёгкому...кто бы сюда так прикрутил

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо за отзыв, но вы серьезно??

Что именно сложно - включить putty c ексель - или запрос к одной таблице MySQL написать?

Если ВамШоп крут, и там все есть - почему вы тут? :)

Там действительно есть все бланки почты из коробки?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Похожий контент

    • От serzzzh
      Долго искал простое средство печати бланков почты России, в итоге сделал в екселе.
      Используется ssh-тоннель для подключения к бд MySQL (можно создать отдельного пользователя только на чтение),
      бланки почты взяты с сайта post.kamensky.ru.
      В основе VBA-скрипта - запрос к таблице заказов "SELECT * FROM oc_order where order_id=", запрос легко переписать.
      Инструкция внутри архива.
      Если данное решение сэкономит Вам время - буду признателен за пиво на яндекс-кошелек 4100192758371.
      Здоровая критика приветствуется.
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.