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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.10.2009, 20:48   #1
PapaHedgehog
Пользователь
 
Регистрация: 23.10.2009
Сообщений: 19
Вопрос Помогите чайнику!

У меня есть два листа. на одном форма с заказом, а на другом БД. Нужно нажатием кнопки копировать данные из формы в базу, и по номеру заказа доставать данные из базы назад в форму! Можно ли так сделать?

Заранее благодарен за помощь!
Вложения
Тип файла: rar primer.rar (14.3 Кб, 18 просмотров)
PapaHedgehog вне форума Ответить с цитированием
Старый 23.10.2009, 21:58   #2
Teslenko_EA
Участник клуба
 
Регистрация: 10.08.2009
Сообщений: 1,796
По умолчанию

Здравствуйте PapaHedgehog.
Интересная задача, насколько я понял Вы хотите записи (строки) из диаппазона листа "Накладная" (даже прикрыв оба глаза его нельзя назвать формой) разместить в таблице листа "База", с возможностью обратного действия - из таблицы "База" данные соответствующие определенному номеру заказа в диаппазон листа "Накладная".
Для её решения желательно полное соответствие последовательности размещения данных на листе "Накладная" (№п/п, Код, Кількість, Назва, PV, Цена НПА, Роздр.ціна) последовательности размещения данных на листе "База". Это моё единственное требование, если оно приемлемо, я могу "поупражняться" над Вашей задачей.
Евгений.
Teslenko_EA вне форума Ответить с цитированием
Старый 23.10.2009, 22:57   #3
VovaKl
Пользователь
 
Аватар для VovaKl
 
Регистрация: 12.03.2009
Сообщений: 19
По умолчанию

Похожая задача, если сможете под себя локализовать.

http://www.planetaexcel.ru/docs/foru...post_69682.xls
VovaKl вне форума Ответить с цитированием
Старый 23.10.2009, 23:25   #4
PapaHedgehog
Пользователь
 
Регистрация: 23.10.2009
Сообщений: 19
По умолчанию

В даный момент я реализова это так:
1.Накладная заполняется.
2.Данные из накладной копируются на отдельный лист (переходную таблицу которая расставляет данные в нужном порядке)
3.Потом простым макросом загоняются в таблицу БД.

Только подкумаривает что постоянно нужно нажимать стрелку вниз, чтобы предыдущие данные не перезаписывались.

Вот пример моего чудовища!
Вложения
Тип файла: rar Primer.rar (274.9 Кб, 18 просмотров)
PapaHedgehog вне форума Ответить с цитированием
Старый 24.10.2009, 12:04   #5
Teslenko_EA
Участник клуба
 
Регистрация: 10.08.2009
Сообщений: 1,796
По умолчанию

Здравствуйте PapaHedgehog.
выкладываю пример решения Вашей задачи "из формы в базу, ... из базы назад в форму", (не дождавшись ответа)
Но после просмотра файла выложнного сегодня, совет один - посмотреть в сторону изучения СУБД (система управления базами данных), любые табличные данные содержащие более 100 строк "достойны" обработки в СУБД, а лист Каталог "сказал", что надо подумать и о применении WEB технологий.
Евгений.
Вложения
Тип файла: zip Пример2.zip (17.1 Кб, 34 просмотров)
Teslenko_EA вне форума Ответить с цитированием
Старый 24.10.2009, 15:22   #6
PapaHedgehog
Пользователь
 
Регистрация: 23.10.2009
Сообщений: 19
Хорошо

Цитата:
Сообщение от Teslenko_EA Посмотреть сообщение
Здравствуйте PapaHedgehog.
выкладываю пример решения Вашей задачи "из формы в базу, ... из базы назад в форму", (не дождавшись ответа)
Но после просмотра файла выложнного сегодня, совет один - посмотреть в сторону изучения СУБД (система управления базами данных), любые табличные данные содержащие более 100 строк "достойны" обработки в СУБД, а лист Каталог "сказал", что надо подумать и о применении WEB технологий.
Евгений.
Хорошо! Спасибки за совет, уже об этом думал, наверное так и сделаю!
PapaHedgehog вне форума Ответить с цитированием
Старый 24.10.2009, 15:43   #7
Teslenko_EA
Участник клуба
 
Регистрация: 10.08.2009
Сообщений: 1,796
По умолчанию

PapaHedgehog файл Пример2.zip рекомендую все же посмотреть.
Евгений.
Teslenko_EA вне форума Ответить с цитированием
Старый 24.10.2009, 17:41   #8
PapaHedgehog
Пользователь
 
Регистрация: 23.10.2009
Сообщений: 19
По умолчанию

Уже качнул сейчас посмотрю! Спасибо!

Цитата:
Сообщение от Teslenko_EA Посмотреть сообщение
PapaHedgehog файл Пример2.zip рекомендую все же посмотреть.
Евгений.
Громадное спасибо за помощь! Закинул в рабочую базу, работает отлично!

Как туда дописать проверку на повторение № заказа?
Чтобы прога молча добавляла данные если заказа с таким номер еще нету в базе, а если есть показывала предупреждение о повторении и спрашивала разрешения!

Может я конечно много прошу, но если это не сложно помогите пожалуйста!

Последний раз редактировалось Stilet; 26.10.2009 в 09:39.
PapaHedgehog вне форума Ответить с цитированием
Старый 24.10.2009, 22:25   #9
Teslenko_EA
Участник клуба
 
Регистрация: 10.08.2009
Сообщений: 1,796
По умолчанию

Здравствуйте PapaHedgehog.
"поковыряйтесь" в коде там должна присутствовать функция listUsedCount отвечающая за перезапись заказа.
самый простой способ проверки - после ввода номера заявки попытаться "Извлечь из базы" и "Положить в базу"
Евгений

Последний раз редактировалось Teslenko_EA; 24.10.2009 в 22:39.
Teslenko_EA вне форума Ответить с цитированием
Старый 25.10.2009, 10:54   #10
PapaHedgehog
Пользователь
 
Регистрация: 23.10.2009
Сообщений: 19
По умолчанию

Начал пересаживать файл, поставил галочку ActiveX в Preferences, перенес сам макрос, тепер при выполнении ругается

"[Microsoft][Диспетчер драйверов ODBC] Слишком длинное имя источника данных"

'On Error Resume Next
cn.Open sCon
If Not cn.State = 1 Then Exit Sub

и указывает на эту строку!

Если можно немного подробней описать макрос, для тех кто в танке!

Последний раз редактировалось PapaHedgehog; 25.10.2009 в 10:58.
PapaHedgehog вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
помогите чайнику Alexxx92 Общие вопросы C/C++ 1 31.01.2009 20:37
Помогите чайнику Snoopa Microsoft Office Excel 8 10.01.2008 00:10