Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: docmd Access2003
 
 автор: gontik   (20.12.2014 в 23:27)   личное сообщение
 
 

Доброго времени суток!
Прoблему свел к такому примеру.
Имеется форма. На ней текстовое поле Техт1 и кнопка Кп1 и второе текстовое поле Техт2 и кнопка Кп2.
С клавматуры вношу в текстовое поле Текст1 число.
Кп1 выполняет код:
Текст1.SetFocus
Docmd.RunCommand acCmdCopy

Кнопке2 соответствует код:
Текст2.SetFocus
Docmd.RunCommand acCmdRestore

При нажатии Кп2 фокус устанавливается на Текст2
Далее соощение Ошибка 2046 Невозможно восстановление данных.
У меня Windows XP и Access2003
Почему число не восстанавливается в поле Текст2?

  Ответить  
 
 автор: al69   (21.12.2014 в 10:56)   личное сообщение
 
 

А что в итоге надо получить? Если получить данные из Техт1 в Техт2, то почему нельзя сделать одну кнопку и повесить на нее Me!Техт2=Me!Техт1. Или я чего то не понимаю?

  Ответить  
 
 автор: час   (21.12.2014 в 11:49)   личное сообщение
 
 

выложите сюда файл.
тогда не будем тыкать пальцем в
небо

  Ответить  
 
 автор: gontik   (23.12.2014 в 01:03)   личное сообщение
 
 

Я хотел бы спросить по-другому.
Что должна сделать команда
DoCmd.RunCommand acCmdRestore?
Мне надо с помощью VBA восстановить данные, которые запомнил с помощью
DoCmd.RunCommand acCmdCopy.
Если с клавиатуры задать Сtrl + V , Данные восстанавливаются.

Файл могу прислать, но что это прояснит?
Откройте новую форму. Задайте два текстовых поля и две кнопки. Код для кнопок:

Private Sub Kn1_Click()
Text1.SetFocus
DoCmd.RunCommand acCmdCopy
End Sub

Private Sub Kn2_Click()
Text2.SetFocus
DoCmd:RunCommand acCmdRestore
End Sub

Введите в поле Text1 что-нибудь с клавиатуры. Нажмите Kn1. Нажмите Kn2.
Команда DoCmd.RunCommand acCmdRestore не проходит.
Может быть для восстановления данных надо использовать что-либо другое?
Это надо сделать на VBA.(!)
Ну а до Text2=Text1 я бы догадался сам.
Рассказывать о реальной проблеме придется долго, не хочется Вас грузить.

  Ответить  
 
 автор: osmor   (23.12.2014 в 12:00)   личное сообщение
 
 

Вы не знаете что должна делать команда , но применяете ее и ждете какого-то результата...
я не нашел описания команды acCmdRestore ни в справке ни на просторах инета, только упоминание об этой константе на сайте ms (без описания дейстия)
Почему вы решили что эта команда должна возвращать данные из буфера обмена?
зачем сохранять данные из поля в буфер? А переменную никак нельзя?
Короче, опишите задачу которую вы хотите решить...

  Ответить  
 
 автор: час   (23.12.2014 в 12:19)   личное сообщение
 
 

Используй поле0 и Кнопка4

поле2 и Кнопка5

Private Sub Кнопка4_GotFocus()
Поле0.SetFocus
Поле0.SelStart = 0
Поле0.SelLength = Len(Поле0.Text)
DoCmd.RunCommand acCmdCopy
End Sub

Private Sub Кнопка5_Click()
Поле2.SetFocus
DoCmd.RunCommand acCmdPaste
End Sub

тока не забудь в поле0 вписать что нибудь, иначе ошибка - типа не чего копировать.

  Ответить  
 
 автор: gontik   (24.12.2014 в 00:55)   личное сообщение
 
 

Я тоже не знаю, что делает acCmdRestore. Restore означает "Восстановление", потому и попробовал.
Час, благодарю.
Коротко о проблеме.
Из прораммы на Access вызываю EXE-программу с помощью SHELL. В программе есть текстовое поле, куда надо передать число( текст). Решил это сделать через промежуточную память DoCmd.RunCommand acCmdCopy. Затем задал SendKeys "^{V}". Работает, но это плохое решение. Желательно использовать DoCmd.RunCommand. Я когда-то читал- следующие версии Windows рано или поздно из-за борьбы с вирусами и хакерами будут игнорировать SendKeys и подобное. Но здесь я тоже не уверен.
В любом случае благодарю за помощь.

  Ответить  
 
 автор: час   (24.12.2014 в 10:58)   личное сообщение
 
 

SendKeys - не любят многие антивирусники, поэтому это всегда дополнительное время на обучение антивирусника не вякать, но если у него нет такой возможности, тогда возникает проблема.
Через буфер обмена конечно выход.
================================
EXE-программа - твоя или сторонняя?

  Ответить  
 
 автор: час   (24.12.2014 в 11:08)   личное сообщение
156 Кб.
 
 

acCmdRestore
- если удалить текст в текстовом поле, то данной командой текст можно восстановить.
Разумеется, если тотчас же её выполнить.
Но точнее будет назвать эту Команду - ОТМЕНА.

  Ответить  
 
 автор: Дядя Федор   (24.12.2014 в 14:48)   личное сообщение
 
 

Посмотрите AutoIt. Язык для написания скриптов, но высокого уровня.
На нем, например, удобно писать установщики программ.

Подобные задачи (запуск приложения и размещение данных в нужном окне-поле) решаются.

  Ответить  
 
 автор: gontik   (24.12.2014 в 19:38)   личное сообщение
 
 

acCmdRestore
- если удалить текст в текстовом поле, то данной командой текст можно восстановить.
Разумеется, если тотчас же её выполнить.
Но точнее будет назвать эту Команду - ОТМЕНА.
Это я не понимэ.
Прогр.EXE не моя. Она используется с приборами типа HYPERCOM для оплаты банковскими карточками. Называется ZVT-Comm. Демо можно скачать и попробовать. Чтобы не использовали ее незаконно, некоторый диапазон чисел (СУММ) не обрабатывается. Программа, как я понимаю, довольно универсальная, работает с множеством типов приборов. Второй вариант ее позволяет обрабатывать уже в вызывающей ее программе результат завершившейся операции (успешно или нет), типы ошибок ну и т.д. Но описание еще надо "дешифровать". 1 вариант (простой) и кассир в программе КАССА сам выбирает, печатать чек или сделку отменить. Стоит 70 Евро. 2 вариант стоит 170 Евро. Но это не мои заботы.

  Ответить  
 
 автор: час   (25.12.2014 в 18:54)   личное сообщение
 
 

понятно.

  Ответить  
 
 автор: gontik   (27.12.2014 в 16:34)   личное сообщение
 
 

Hi, ЧАС!
Ты писал:
acCmdRestore
- если удалить текст в текстовом поле, то данной командой текст можно восстановить.
Разумеется, если тотчас же её выполнить.
Но точнее будет назвать эту Команду - ОТМЕНА.

Я это не понял. Чуточку подробнее.

  Ответить  
 
 автор: час   (28.12.2014 в 21:12)   личное сообщение
 
 

я там, где писал - приаттачил файл.
Скачай, и там всё наглядно продемонстрировано.

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList