|
копирование с помощью vba
|
|||
---|---|---|---|
#18+
Здравствуйте. Подскажите, пожалуйста, как скопировать в буфер обмена значение поля в форме с помощью vba? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2017, 12:25 |
|
копирование с помощью vba
|
|||
---|---|---|---|
#18+
Попробуйте RunCommand acCmdCopy А вообщев Аксе работа с буфером, это несколько системных API функций. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2017, 12:48 |
|
копирование с помощью vba
|
|||
---|---|---|---|
#18+
Анатолий ( Киев ), Я ошибся. Скопировать в буфер обмена надо не значение поля, а значение переменной в процедуре vba. Dim fio As String fio = "клиент " & Me![Поле1] & ... и т.д. Что делать? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2017, 13:10 |
|
копирование с помощью vba
|
|||
---|---|---|---|
#18+
Tauri, Значит, присвойте предварительно полю значение переменной. И копируйте в буфер значение поля. Тоже вариант.))) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2017, 13:15 |
|
копирование с помощью vba
|
|||
---|---|---|---|
#18+
__Michelle, Я думал об этом: добавить скрытое поле в форму и присваивать ему значение переменной. 1 DoCmd.GoToControl "скрытое поле" - как? 2 DoCmd.RunCommand acCmdCopy ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2017, 13:22 |
|
копирование с помощью vba
|
|||
---|---|---|---|
#18+
__Michelle, В процедуре DoCmd.GoToControl "..." DoCmd.RunCommand acCmdCopy Синтаксис DoCmd.GoToControl "..." возможен если поле не скрыто (т.е. вывод на экран=да). А у меня поле не выводится на экран. Поэтому надо искать способ копировать в буфер не значение поля, а значение самой переменной. Что делать? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2017, 13:35 |
|
копирование с помощью vba
|
|||
---|---|---|---|
#18+
Tauri__Michelle, Что делать? Ссылка дана выше. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2017, 13:42 |
|
копирование с помощью vba
|
|||
---|---|---|---|
#18+
AndrF, Т.е. эта процедура копирует значение переменной strTest в буфер обмена? Dim d As DataObject Public Sub PutInCb() Dim strTest As String strTest = "Test!" Set d = New DataObject d.SetText strTest d.PutInClipboard End Sub ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2017, 13:44 |
|
копирование с помощью vba
|
|||
---|---|---|---|
#18+
Tauri, Ну, вот смотрите: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9.
Кошмар. Набираю все это с планшета. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2017, 13:53 |
|
копирование с помощью vba
|
|||
---|---|---|---|
#18+
Tauri, Пример в предыдущем посте имел целью показать, что поле может иметь нулевые размеры, но при этом получать фокус и позволять копировать свое значение. То есть, можно разместить его скрытно, а мгновенные перемещения курсора (на поле с нулевыми размерами и возврат на ScreenPreviousControl) никто не заметит. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2017, 14:15 |
|
копирование с помощью vba
|
|||
---|---|---|---|
#18+
TauriТ.е. эта процедура копирует значение переменной strTest в буфер обмена? Dim d As DataObject ... Для этого в референсах должна быть установлена ссылка на библиотеку, что не есть хорошо. В указанной ссылке приведен текст модуля. Создайте такой же и пользуйтесь. Правда я не знаю, как это будет работать под Win 64b. А почему вам нужен именно обмен через буфер? Где вы собираетесь использовать этот текст? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2017, 14:25 |
|
копирование с помощью vba
|
|||
---|---|---|---|
#18+
Анатолий ( Киев ), Менеджер получает жалобу от клиента (форма с несколькими полями) и должна отправить её мастеру по e-mail. Для этого менеджер вручную копирует каждое поле формы и вставляет его в тело сообщения e-mail + в разные отчёты. Это неудобно. Нужна кнопка, чтобы формировала из полей единый текст и этот текст копировала в буфер для его дальнейшей отправки по e-mail и вставки в разные отчёты. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2017, 16:24 |
|
копирование с помощью vba
|
|||
---|---|---|---|
#18+
Анатолий ( Киев ), Конечное сообщение выглядет так. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2017, 16:25 |
|
копирование с помощью vba
|
|||
---|---|---|---|
#18+
Tauri, А чем Вам мой способ не понравился? Восемь (можно и шесть) коротких строк кода и все. Слишком просто?))) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2017, 16:51 |
|
копирование с помощью vba
|
|||
---|---|---|---|
#18+
[quot Анатолий ( Киев )][quot Tauri]Т.е. эта процедура копирует значение переменной strTest в буфер обмена? В указанной ссылке приведен текст модуля. Создайте такой же и пользуйтесь. не получается использовать вариант Dim d As DataObject Public Sub PutInCb() Dim strTest As String strTest = "Test!" Set d = New DataObject d.SetText strTest d.PutInClipboard End Sub ругается на Dim d As DataObject и на Set d = New DataObject ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2017, 16:51 |
|
копирование с помощью vba
|
|||
---|---|---|---|
#18+
__Michelle, Да, я думаю, что ваш способ буду использовать. Другие способы пока не получаются. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2017, 16:53 |
|
копирование с помощью vba
|
|||
---|---|---|---|
#18+
Tauri, А почему сразу проигнорировали-то, мне просто интересно? Чем больше кода, тем лучше? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2017, 16:59 |
|
копирование с помощью vba
|
|||
---|---|---|---|
#18+
[quot Анатолий ( Киев )] Для этого в референсах должна быть установлена ссылка на библиотеку, что не есть хорошо.[/q] Полминуты на поиск в интернете и код немного модифицирован: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.
Проверил - работает. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2017, 17:01 |
|
копирование с помощью vba
|
|||
---|---|---|---|
#18+
Ну и именно мой вариант на основе вышеприведенного: Код: vbnet 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2017, 17:11 |
|
копирование с помощью vba
|
|||
---|---|---|---|
#18+
Хотя выше можно еще выкинуть объявление лишней переменной... ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2017, 17:13 |
|
копирование с помощью vba
|
|||
---|---|---|---|
#18+
__Michelle, Я не проигнорировал. Я сосредоточился на ранее предложенном мне варианте. И пытался понять, почему он у меня не получается (help смотрел и т.п.). А когда я полностью во всём запутался (я самоучка и многого не знаю), то я вернулся на форум и увидел Ваше письмо. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2017, 17:40 |
|
копирование с помощью vba
|
|||
---|---|---|---|
#18+
Tauriя самоучкане, ну это слишком! ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2017, 17:49 |
|
копирование с помощью vba
|
|||
---|---|---|---|
#18+
__Michelle, а fld - это переменная? её надо описывать dim fld as ? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2017, 17:57 |
|
копирование с помощью vba
|
|||
---|---|---|---|
#18+
Прогер_самоучка, что слишком? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2017, 17:57 |
|
копирование с помощью vba
|
|||
---|---|---|---|
#18+
__MichelleTauri, Ну, вот смотрите: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9.
Кошмар. Набираю все это с планшета. Не получается. Говорит, что команда копировать в данное время недоступна. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2017, 18:02 |
|
копирование с помощью vba
|
|||
---|---|---|---|
#18+
Tauri, Конечно, Fld - это поле, в которое помещается подлежащий копированию текст. Его Visible = True, но высота и ширина равны нулю - чтобы и доступ был возможен, но происходило бы это незаметно. Можно в конструкторе держать это поле с ненулевыми размерами, а при открытии формы их обнулять. Может, чуть погодя подготовлю Вам примерчик и выложу. Там все предельно просто. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2017, 18:17 |
|
копирование с помощью vba
|
|||
---|---|---|---|
#18+
TauriНе получается. Говорит, что команда копировать в данное время недоступна.Потому что должно быть поле. Все получится. Пример сделаю, выложу. Постараюсь сегодня. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2017, 18:26 |
|
копирование с помощью vba
|
|||
---|---|---|---|
#18+
__Michelle, При этом работает синтаксис DoCmd.RunCommand acCmdSelectRecord DoCmd.RunCommand acCmdCopy DoCmd.GoToRecord , , acNewRec DoCmd.RunCommand acCmdPaste Так может быть выдёргивать данные сразу из таблицы? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2017, 18:43 |
|
копирование с помощью vba
|
|||
---|---|---|---|
#18+
Tauri, Но Вам же желательно не только выдернуть, но и вставить текст в письмо. Попробуйте вставить выдернутую строку. Если результат понравится, то почему бы и нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2017, 19:07 |
|
копирование с помощью vba
|
|||
---|---|---|---|
#18+
__Michelle, Мне интересно понять, почему Ваше решение у меня не получается. Я сделал поле в форме. Присваиваю ему нужную информацию. Но синтаксис With Me![Поле1] .Value = "ddddddddd" .Width = 0 .Height = 0 .SetFocus .SelStart = 0 .SelLength = Len(Me![Поле1]) DoCmd.RunCommand acCmdCopy End With всё равно не работает. Выдаёт ошибку о том, что команда копировать недоступна. Не могу понять, где я ошибаюсь. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2017, 19:15 |
|
копирование с помощью vba
|
|||
---|---|---|---|
#18+
__Michelle, Всё! Ваш способ получился! Ура! Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2017, 19:21 |
|
копирование с помощью vba
|
|||
---|---|---|---|
#18+
Tauri, На первый взгляд все так, как надо. Можете выложить базу? Но максимум в Access2007. Иначе мне нечем будет смотреть. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2017, 19:23 |
|
копирование с помощью vba
|
|||
---|---|---|---|
#18+
Tauri, простотой вопрос:поместили Вы в буфер какую-то переменную и чо? Опишите, пожалуйста, полностью Вашу "хотелку" ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2017, 19:26 |
|
копирование с помощью vba
|
|||
---|---|---|---|
#18+
Tauri__Michelle, Всё! Ваш способ получился! Ура! Спасибо.Только обнуление размеров поля нужно вынести в процедуру Form_Open. И в чем же было дело, почему не получалось? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2017, 19:28 |
|
копирование с помощью vba
|
|||
---|---|---|---|
#18+
sdku, ТС уже раза два описывал, зачем ему это надо.))) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2017, 19:30 |
|
копирование с помощью vba
|
|||
---|---|---|---|
#18+
__Michelle, Анатолий ( Киев ), AndrF Спасибо за помощь. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2017, 19:33 |
|
копирование с помощью vba
|
|||
---|---|---|---|
#18+
Tauri__Michelle, Анатолий ( Киев ), AndrF Спасибо за помощь.Пожалуйста. Но на 20403276 ответить не соблаговолите? Ладно, хорошо хоть, что мне теперь не нужно делать пример...))) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2017, 19:41 |
|
копирование с помощью vba
|
|||
---|---|---|---|
#18+
__Michelle, Я не знаю, почему не получалось. Я психанул, удалил весь пробный синтаксис. Потом успокоился. Скопировал по-новой Вашу идею, вставил в VBA и всё заработало. Нюанс в том, что я сначала удалил, а потом назад вернул абсолютно один и тот же синтаксис. Me![Поле9].Value = Me![Поле3] & Me![Поле5] & Me![Поле7] Me![Поле9].Width = 0 Me![Поле9].Height = 0 Me![Поле9].SetFocus Me![Поле9].SelStart = 0 Me![Поле9].SelLength = Len(Me![Поле9]) DoCmd.RunCommand acCmdCopy Только сначала он глючил, а потом заработал. PS: я от знакомых программеров слышал, что иногда надо плясать танцы с бубнами и прога заработает :-)) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2017, 19:42 |
|
копирование с помощью vba
|
|||
---|---|---|---|
#18+
Tauri, 1. Не синтаксис, а код. 2. У меня другие взгляды - я верю в причинно-следственную связь. 3. Очень прошу - обнулять размеры при открытии формы, а не при копировании. У меня было просто для демонстрации, что размеры в данном случае нулевые. ))) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2017, 20:14 |
|
копирование с помощью vba
|
|||
---|---|---|---|
#18+
автор...а время в это время....))) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2017, 20:31 |
|
копирование с помощью vba
|
|||
---|---|---|---|
#18+
__MichelleTauri, 2. У меня другие взгляды - я верю в причинно-следственную связь. 3. Очень прошу - обнулять размеры при открытии формы, а не при копировании. У меня было просто для демонстрации, что размеры в данном случае нулевые. Ну конечно причинно-следственная связь. Естественно у меня в коде где-то были ошибки. Поэтому он не работал. Обнулять размеры поля лучше при открытии формы только из-за удобства или есть какие-то нюансы? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2017, 22:24 |
|
копирование с помощью vba
|
|||
---|---|---|---|
#18+
TauriНужна кнопка, чтобы формировала из полей единый текст и этот текст копировала в буфер для его дальнейшей отправки по e-mail и вставки в разные отчёты. Вернемся к началу. Есть несколько способов создать и отправить e-mail (например через CDO). Зачем вам бодаться с буфером? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2017, 09:31 |
|
копирование с помощью vba
|
|||
---|---|---|---|
#18+
Можно еще вот так Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8.
Проверил, работает ... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2020, 17:00 |
|
копирование с помощью vba
|
|||
---|---|---|---|
#18+
Седня участников форума "потянуло" на старенькое А просто создать пользовательскую функцию и пользовать её,где понадобится-это маловасто будет лишних заморочек(создания объекта)? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2020, 17:24 |
|
копирование с помощью vba
|
|||
---|---|---|---|
#18+
Приветствую! Подскажите, пж, в этом коде: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8.
в скобках какой имеется ввиду объект? Я сделал прайс-лист. На форме есть поля Наименование, Ед, Цена. На кнопку повесил процедуру Код: vbnet 1. 2.
которая копирует в буфер одно поле (потом значение вставляется в Excel), а хотелось бы, чтобы можно было скопировать все три поля и вставилось в Excel в разные ячейки. Подскажите, пж, как сделать? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.09.2020, 11:37 |
|
копирование с помощью vba
|
|||
---|---|---|---|
#18+
kniga, Надо только определиться куда вставлять(например последняя строка .CurrentRegion+1 или какая-то относительная ссылка-сами придумаете) И подключите библиотеку MS Excel... Грубо говоря как-то так (и зачем при этом буфер): Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8.
... |
|||
:
Нравится:
Не нравится:
|
|||
12.09.2020, 14:32 |
|
копирование с помощью vba
|
|||
---|---|---|---|
#18+
sdku, спасибо большое за код! Но, к сожалению, здесь вижу привязка к файлу и диапазону, а мне нужен именно буфер. Дело в том, что из прайс-листа надо копировать и вставлять данные в разные по оформлению таблицы. Есть уже готовые таблицы с данными и надо, например, просто заменить некоторые позиции, вот для этого просто из прайса копирую и вставляю ) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2020, 10:12 |
|
копирование с помощью vba
|
|||
---|---|---|---|
#18+
kniga, Тогда смотрите в сети там куча примеров по работе с буфером а если относительные ссылки будут постоянно изменяться, то автоматизировать этот процесс не удастся-только по одному полю и вся затея теряет смысл... ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2020, 10:43 |
|
копирование с помощью vba
|
|||
---|---|---|---|
#18+
kniga в скобках какой имеется ввиду объект? kniga хотелось бы, чтобы можно было скопировать все три поля и вставилось в Excel в разные ячейки. Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9.
... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2020, 11:19 |
|
копирование с помощью vba
|
|||
---|---|---|---|
#18+
Вдогонку: kniga вот для этого просто из прайса копирую и вставляю ) Никогда не понимал,за редкими исключениями,при острой необходимости, "шараханий" из программы в программу (из ACCESS в EXCEL и наоборот)-может лучше подумать о создании(что там у Вас) приложения с использованием какого-то одного ПО ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2020, 11:25 |
|
копирование с помощью vba
|
|||
---|---|---|---|
#18+
Панург, Да, то, что надо, спасибоо!! ) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2020, 14:52 |
|
копирование с помощью vba
|
|||
---|---|---|---|
#18+
sdku, )) ну так там три (и более если полей больше) действия придется делать, а тут одним кликом. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2020, 14:54 |
|
копирование с помощью vba
|
|||
---|---|---|---|
#18+
kniga, об этом и толкую: если 2 и 3 (или боле) ячейки ВСЕГДА будут расположены относительно первой одинаково Ваша идея реализуема,если же их расположение относительно неё будет меняться,то реализация не возможна. А если скопировать нужно 1,2,4 или 6 значений?(хотя это ,в принципе,возможно,а вот при переменных относительных адресах-навряд ли) Создайте программу которой сможет пользоваться даже дурак-только он и будет ей пользоваться ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2020, 17:13 |
|
копирование с помощью vba
|
|||
---|---|---|---|
#18+
столкнулся с такой проблемой, копирую в excel поле с ценой, где формат поля 'денежный' применяя Код: vbnet 1.
и если число с разделителем разрядов (а денежный формат с ним), то вставляется как текст, но если удалить пробел уже в ячейке excel, то оно будет уже как число. Если копируется число без разделителя, то вставляется в excel как число (как и требуется). Пробовал это поле "завернуть" в Val([Text3]), но в буфер "цепляется" только цифра до пробела в разделителе. Например из 1 650 берет только 1 и вставляет только ее как число. А в другом поле, например [text2], мне надо скопировать число как текст, потому что там надо сохранить впереди '0'. В excel вставляется без него. Здесь обратная задача, сохранить как текст ) Подскажите, пж, как исправить ) ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2020, 14:01 |
|
|
start [/forum/topic.php?all=1&fid=45&tid=1609940]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
131ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
86ms |
get tp. blocked users: |
2ms |
others: | 303ms |
total: | 562ms |
0 / 0 |