Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » VBA for Access

Модерирует : ShIvADeSt

ShIvADeSt (14-09-2011 00:58): Все обсуждение тут http://forum.ru-board.com/topic.cgi?forum=33&topic=0357&start=1180  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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

   

ZlydenGL



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Slatsik, а ты попробуй Иногда идеология "а давайте выйдем и снова войдем - оно и поедет" спасает

----------
Переработал: втыкая аккумулятор в шуруповерт пытаешься передёрнуть затвор

Всего записей: 4274 | Зарегистр. 22-06-2002 | Отправлено: 09:29 22-01-2010
alenkakolokol4ik

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Привет всем!!! у меня вот такой встал вопрос как запрограммировать ячейку в accsse через VBA что бы она при двойном щелчке копировала текст ячейки в другую ячейку,при том что эти ячейки на разных формах!!!!  
Заранее спасибо за ответы!!!!

Всего записей: 1 | Зарегистр. 22-01-2010 | Отправлено: 16:08 22-01-2010
ZlydenGL



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
alenkakolokol4ik, а в чем собственно проблема? Ячейки, скорее всего, обычные TextBox'ы с привязкой к определенному полю, так? Ну и что мешает например сделать так?
 

Код:
Private Sub TextBox1_Click()
TextBox2.Text = Val(TextBox1.Text)
Me.Update
End Sub

 
Писал, как обычно, по памяти, но подход, думаю, объяснения дальнейшего не требует

----------
Переработал: втыкая аккумулятор в шуруповерт пытаешься передёрнуть затвор

Всего записей: 4274 | Зарегистр. 22-06-2002 | Отправлено: 22:58 22-01-2010
Slatsik



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ZlydenGL постоянно таким пользуюсь к сожалению, здесь не прокатило (
придется делать переходную табличку, которая будет локальная, и сначала вносить и править все в ней, а потом синхронизировать нужные записи.
Спасибо за участие!

Всего записей: 59 | Зарегистр. 12-05-2003 | Отправлено: 23:52 23-01-2010
ZlydenGL



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Slatsik, а что именно-то не получилось? Можно код и ошибку в студию?

----------
Переработал: втыкая аккумулятор в шуруповерт пытаешься передёрнуть затвор

Всего записей: 4274 | Зарегистр. 22-06-2002 | Отправлено: 17:34 24-01-2010
Slatsik



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Slatsik, а что именно-то не получилось? Можно код и ошибку в студию?


Цитата:
есть связанная таблица в Access - связь с MySQL. Какие-то записи в этой таблице редактируются нормально, а на каких-то выскакивает сообщение, мол, пока вы тут правите, кто-то эту запись уже изменил...и изменить не могу %) Стопудова, что никто ничего не меняет в этой таблице!

номера ошибки нет! это, типа, информационное сообщение
 
к сожалению, более подробно не получается описать и скриншот не могу представить, потому как на работе из-за соображений безопасности отключен Инет от раб. компов.

Всего записей: 59 | Зарегистр. 12-05-2003 | Отправлено: 19:48 24-01-2010
ZlydenGL



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Slatsik, а нет ли у моста к MySQL какого-то таймаута? Т.е. не получается ли следующий затык?
 
1. Пользователь открыл запись на редактирование
2. Пока пользователь редактировал запись - мост счет, что сессия с БД уже неактивна и дропнул ее
3. Пользователь нажал "Сохранить", мост открывает ВТОРУЮ нитку на Update - и тут-то ловится медулла обломата.
 
Если затык в этом - помести таймер на форму и к примеру раз в 10 секунд делай какой-нить простенький селект.

----------
Переработал: втыкая аккумулятор в шуруповерт пытаешься передёрнуть затвор

Всего записей: 4274 | Зарегистр. 22-06-2002 | Отправлено: 12:10 25-01-2010
metrim

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите пожалуйста
Что то туплю
 
Есть таблица допустим "Таблица1". В ней поля "Индекс" "Имя" "Информация" "примечания"
 
Мне нужно пройтись по всем записям "Таблица1" , выполнить определенные расчетные действия и поместить результаты вычислений по каждой записи в "Таблица2"
 
В принципе я предполагаю, что здесь должен работать оператор for each , но вот как его прикрутить к обработке результата запроса - не понимаю
Т.е. что то типа как то так:

Код:
sub test_obrab()
dim poisk as string
dim zapros as recordset
poisk = "SELECT Таблица1.индекс, Таблица1.имя FROM Таблица1;"
zapros = CurrentDb.OpenRecordset(poisk)
for each .....

 
Только как сделать из этого рабочую программу - не понимаю
Поможите плз

Всего записей: 110 | Зарегистр. 05-12-2002 | Отправлено: 18:33 31-01-2010 | Исправлено: metrim, 18:37 31-01-2010
Oyger

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
metrim
Я может и не лучший вариант использую, но - что есть...
 
Dim RST As ADODB.Recordset
Dim RST2 As ADODB.Recordset
Set RST = New ADODB.Recordset
Set RST_2 = New ADODB.Recordset
RST.Open "[Taблица1]", CurrentProject.Connection, adOpenStatic, adLockOptimistic 'Имя таблицы, если целиком. Или текст запроса.
RST_2.Open "[Таблица2]", CurrentProject.Connection, adOpenStatic, adLockOptimistic
Do Until RST.EOF = True 'Перебираем до тех пор, пока записи не закончатся
 
   ХХХ
   'Сюда записываешь текст обработки и записи в результирующую таблицу RST_2.
 
   RST.MoveNext 'Переход на следующую запись
Loop
 
RST.Close
RST_2.Close
Set RST = Nothing
Set RST_2 = Nothing
 
 
Кто знает как лучше - рад выслушать!

Всего записей: 122 | Зарегистр. 22-03-2007 | Отправлено: 14:54 02-02-2010
dneprcomp



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
metrim
А какие собственно вычисления проходят. Операции с полями из SELECT можно провести в принципе и в самом Insert/Update стайтменте. Без перебора рекордов.

Всего записей: 3920 | Зарегистр. 31-03-2002 | Отправлено: 00:21 03-02-2010
Oyger

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
dneprcomp

Цитата:
Операции с полями из SELECT можно провести в принципе и в самом Insert/Update стайтменте. Без перебора рекордов.

Расскажите, пожалуйста, по подробнее. Если не затруднит.
Что за методы такие?

Всего записей: 122 | Зарегистр. 22-03-2007 | Отправлено: 11:07 03-02-2010 | Исправлено: Oyger, 11:08 03-02-2010
PrWork1

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Oyger
Посмотрите язык SQL, операции SELECT и Update.
Потренитуйтесь в простроителе запросов
 
Как подготовите правильный запрос пишите в VBA
 
 currentDB.execute(выражение на SQL)

Всего записей: 582 | Зарегистр. 15-12-2005 | Отправлено: 17:57 03-02-2010
dneprcomp



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Oyger
Как я могу что-либо объяснить, если неизвестно что и как именно надо вычислять?
Без конкретных данных - что, откуда, как - лучший совет уже озвучил PrWork1
 
 
Добавлено:
Ну к примеру, что-то вроде
Код:
insert into table1
select [цена] * [количество] from table2 where [количество] >10
 
* при условии, что table1 имеет 2 поля - ID и [totalmoney]

Всего записей: 3920 | Зарегистр. 31-03-2002 | Отправлено: 20:37 03-02-2010
Oyger

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
PrWork1
dneprcomp
 
Спасибо, спасибо.
Это я знаю. Просто не сообразил что речь идет о SQL. Думал, может это методы какие.
Спасибо за ответы.

Всего записей: 122 | Зарегистр. 22-03-2007 | Отправлено: 09:38 04-02-2010
PrWork1

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Oyger
Пожалуйста.
Если знаете, так и пишите, т.к. это быстрее будет работать, чем рекордсет дергать и править проще.

Всего записей: 582 | Зарегистр. 15-12-2005 | Отправлено: 22:07 04-02-2010
metrim

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
А какие собственно вычисления проходят. Операции с полями из SELECT можно провести в принципе и в самом Insert/Update стайтменте. Без перебора рекордов.

Собственно мне надо поверить: есть ли в другой таблице поля с определенными параметрами, определяемыми из Таблицы1, если нет - то создать таковое.
Собственно я уже сделал это ручным перебором, запуская процесс создания кнопкой в форме для каждой отдельной записи.
На данный момент мне просто интересно знать (да и на будущее) как реализовать такой перебор.
 
Т.е. еще раз, алгоритм собственно таков
В Таблица1 Поля: "Индекс"(текстовое), "ММД"(логич), "СПМД"(логич).
В Таблице2 Поля: "Индекс"(текстовое), "Двор"(текст, ммд/спмд)  
 
Скрипт должен взять запись в Таблице1, если поле ММД отмечено - проверить существует ли в Таблице2 запись "Индекс"="Таблтца1.Индекс" и "Двор"=ммд , если нет, то оздать
и т.д.
 

Всего записей: 110 | Зарегистр. 05-12-2002 | Отправлено: 14:06 05-02-2010
dneprcomp



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
metrim
Можно попробовать как-то так

Код:
insert into Таблица2
select Индекс, "MMD"  
FROM   Таблица1 Left JOIN
        Таблица2 ON Таблица2.Индекс = Таблица1.Индекс  
where Таблица1.ММД = True  
              and Таблица2.Двор = "MMD"  
              and Таблица2.Индекс Is Null

Сначала проверить как работает только select. Если неверно, то модифицировать.  
Исхожу из логики, что Индекс в Таблица2 уникален и Таблица2 имеет только поля Индекс, Двор

Всего записей: 3920 | Зарегистр. 31-03-2002 | Отправлено: 01:04 06-02-2010 | Исправлено: dneprcomp, 01:13 06-02-2010
taravasya



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Здравствуйте. Не мог бы кто-нить мне помочь:
Я создал в VisualStudio, элементарное приложенице, которое отображает данные из простого запроса. Возможно ли сделать так, что бы при добавлении пользователями, новой записи в таблицу-источник, этого запроса, в приложении происходило бы автоматическое обновление отображения данных? Пользователей 2-3 человека. то-есть загрузки особой нет. Если это возможно, то как? Мне посоветовали изучить:SqlDependency, но там скудноватая инфа, и я не разобрался что к чему. Хотя вроде как подходит...
Желательно пример на VBA

Всего записей: 251 | Зарегистр. 16-11-2007 | Отправлено: 14:47 08-02-2010 | Исправлено: taravasya, 14:48 08-02-2010
nkurrich



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
вот такой вопрос: допустим есть 2 поля в форме "остаток" и допустим "поле 2" как с пом выражения или байсика аксесовского сделать формулу для "поле 2" чтобы туда бралось "остаток" для текущей записи + "поле 2" из предыдущей записи

Всего записей: 20 | Зарегистр. 16-09-2009 | Отправлено: 17:53 08-02-2010
dneprcomp



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
taravasya
SqlDependency для SQL Server 2005. Совсем не для Access.
В Access смотри Form.Timer Event...

Всего записей: 3920 | Зарегистр. 31-03-2002 | Отправлено: 20:58 08-02-2010
   

Страницы: 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

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » VBA for Access
ShIvADeSt (14-09-2011 00:58): Все обсуждение тут http://forum.ru-board.com/topic.cgi?forum=33&topic=0357&start=1180


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru