powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / копирование с помощью vba
25 сообщений из 55, страница 2 из 3
копирование с помощью vba
    #39438922
Tauri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
__MichelleTauri,

Ну, вот смотрите:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
   With Fld
      .Value = "ddddddddd"
      .Width = 0
      .Height = 0
      .SetFocus
      .SelStart = 0
      .SelLength = Len(Fld)
      DoCmd.RunCommand acCmdCopy
   End With


Кошмар.
Набираю все это с планшета.

Не получается. Говорит, что команда копировать в данное время недоступна.
...
Рейтинг: 0 / 0
копирование с помощью vba
    #39438929
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tauri,

Конечно, Fld - это поле, в которое помещается подлежащий копированию текст.
Его Visible = True, но высота и ширина равны нулю - чтобы и доступ был возможен,
но происходило бы это незаметно.
Можно в конструкторе держать это поле с ненулевыми размерами,
а при открытии формы их обнулять.

Может, чуть погодя подготовлю Вам примерчик и выложу.
Там все предельно просто.
...
Рейтинг: 0 / 0
копирование с помощью vba
    #39438932
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TauriНе получается. Говорит, что команда копировать в данное время недоступна.Потому что должно быть поле.
Все получится.
Пример сделаю, выложу.
Постараюсь сегодня.
...
Рейтинг: 0 / 0
копирование с помощью vba
    #39438938
Tauri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
__Michelle,

При этом работает синтаксис

DoCmd.RunCommand acCmdSelectRecord
DoCmd.RunCommand acCmdCopy
DoCmd.GoToRecord , , acNewRec
DoCmd.RunCommand acCmdPaste

Так может быть выдёргивать данные сразу из таблицы?
...
Рейтинг: 0 / 0
копирование с помощью vba
    #39438946
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tauri,

Но Вам же желательно не только выдернуть, но и вставить текст в письмо.
Попробуйте вставить выдернутую строку.
Если результат понравится, то почему бы и нет.
...
Рейтинг: 0 / 0
копирование с помощью vba
    #39438947
Tauri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
__Michelle,

Мне интересно понять, почему Ваше решение у меня не получается. Я сделал поле в форме. Присваиваю ему нужную информацию. Но синтаксис

With Me![Поле1]
.Value = "ddddddddd"
.Width = 0
.Height = 0
.SetFocus
.SelStart = 0
.SelLength = Len(Me![Поле1])
DoCmd.RunCommand acCmdCopy
End With

всё равно не работает. Выдаёт ошибку о том, что команда копировать недоступна.
Не могу понять, где я ошибаюсь.
...
Рейтинг: 0 / 0
копирование с помощью vba
    #39438952
Tauri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
__Michelle,

Всё! Ваш способ получился! Ура!
Спасибо.
...
Рейтинг: 0 / 0
копирование с помощью vba
    #39438954
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tauri,

На первый взгляд все так, как надо.
Можете выложить базу?
Но максимум в Access2007. Иначе мне нечем будет смотреть.
...
Рейтинг: 0 / 0
копирование с помощью vba
    #39438957
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tauri,
простотой вопрос:поместили Вы в буфер какую-то переменную и чо? Опишите, пожалуйста, полностью Вашу "хотелку"
...
Рейтинг: 0 / 0
копирование с помощью vba
    #39438959
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tauri__Michelle,

Всё! Ваш способ получился! Ура!
Спасибо.Только обнуление размеров поля нужно вынести в процедуру Form_Open.
И в чем же было дело, почему не получалось?
...
Рейтинг: 0 / 0
копирование с помощью vba
    #39438961
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sdku,

ТС уже раза два описывал, зачем ему это надо.)))
...
Рейтинг: 0 / 0
копирование с помощью vba
    #39438962
Tauri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
__Michelle, Анатолий ( Киев ), AndrF

Спасибо за помощь.
...
Рейтинг: 0 / 0
копирование с помощью vba
    #39438967
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tauri__Michelle, Анатолий ( Киев ), AndrF

Спасибо за помощь.Пожалуйста.

Но на 20403276 ответить не соблаговолите?
Ладно, хорошо хоть, что мне теперь не нужно делать пример...)))
...
Рейтинг: 0 / 0
копирование с помощью vba
    #39438968
Tauri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
__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: я от знакомых программеров слышал, что иногда надо плясать танцы с бубнами и прога заработает :-))
...
Рейтинг: 0 / 0
копирование с помощью vba
    #39438980
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tauri,

1. Не синтаксис, а код.
2. У меня другие взгляды - я верю в причинно-следственную связь.
3. Очень прошу - обнулять размеры при открытии формы, а не при копировании.
У меня было просто для демонстрации, что размеры в данном случае нулевые.

)))
...
Рейтинг: 0 / 0
копирование с помощью vba
    #39438982
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор...а время в это время....)))
...
Рейтинг: 0 / 0
копирование с помощью vba
    #39439002
Tauri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
__MichelleTauri,
2. У меня другие взгляды - я верю в причинно-следственную связь.
3. Очень прошу - обнулять размеры при открытии формы, а не при копировании.
У меня было просто для демонстрации, что размеры в данном случае нулевые.



Ну конечно причинно-следственная связь. Естественно у меня в коде где-то были ошибки. Поэтому он не работал.
Обнулять размеры поля лучше при открытии формы только из-за удобства или есть какие-то нюансы?
...
Рейтинг: 0 / 0
копирование с помощью vba
    #39439987
TauriНужна кнопка, чтобы формировала из полей единый текст и этот текст копировала в буфер для его дальнейшей отправки по e-mail и вставки в разные отчёты. Вернемся к началу. Есть несколько способов создать и отправить e-mail (например через CDO). Зачем вам бодаться с буфером?
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
копирование с помощью vba
    #39994910
assembler77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Можно еще вот так
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
 Dim d As Object
Dim strTest  As String

Set d = GetObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
strTest = Me.ПолеФормы1 & ", " & Me.ПолеФормы2 & " , " & Me.ПолеФормы3
MsgBox strTest
d.SetText strTest
d.PutInClipboard 



Проверил, работает
...
Рейтинг: 0 / 0
копирование с помощью vba
    #39994934
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Седня участников форума "потянуло" на старенькое
А просто создать пользовательскую функцию и пользовать её,где понадобится-это маловасто будет лишних заморочек(создания объекта)?
...
Рейтинг: 0 / 0
копирование с помощью vba
    #39997903
Фотография kniga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Приветствую!

Подскажите, пж, в этом коде:

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
Dim d As Object
Dim strTest  As String

Set d = GetObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
strTest = Me.ПолеФормы1 & ", " & Me.ПолеФормы2 & " , " & Me.ПолеФормы3
MsgBox strTest
d.SetText strTest
d.PutInClipboard 



в скобках какой имеется ввиду объект?

Я сделал прайс-лист. На форме есть поля Наименование, Ед, Цена. На кнопку повесил процедуру
Код: vbnet
1.
2.
DoCmd.GoToControl "txtProduct"
    DoCmd.RunCommand acCmdCopy


которая копирует в буфер одно поле (потом значение вставляется в Excel), а хотелось бы, чтобы можно было скопировать все три поля и вставилось в Excel в разные ячейки. Подскажите, пж, как сделать?
...
Рейтинг: 0 / 0
копирование с помощью vba
    #39997921
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kniga,
Надо только определиться куда вставлять(например последняя строка .CurrentRegion+1 или какая-то относительная ссылка-сами придумаете)
И подключите библиотеку MS Excel...
Грубо говоря как-то так (и зачем при этом буфер):
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
Dim xlApp As Excel.Application, wb As Workbook, ws As Worksheet
Set xlApp = CreateObject("Excel.Application")
xlApp.Visible = False   'в фоновом режиме,true активирует окно
Set wb = xlApp.Workbooks.Open("D:\MyDoc\Excel\myF.xls") 'путь к файлу Excel
Set ws = wb.ActiveSheet 'или конкретный лист
ws.Range("A6") = Me.ctl1
ws.Range("D4") = Me.ctl2
wb.Close (True)
...
Рейтинг: 0 / 0
копирование с помощью vba
    #39998210
Фотография kniga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sdku,

спасибо большое за код!
Но, к сожалению, здесь вижу привязка к файлу и диапазону, а мне нужен именно буфер. Дело в том, что из прайс-листа надо копировать и вставлять данные в разные по оформлению таблицы. Есть уже готовые таблицы с данными и надо, например, просто заменить некоторые позиции, вот для этого просто из прайса копирую и вставляю )
...
Рейтинг: 0 / 0
копирование с помощью vba
    #39998224
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kniga,
Тогда смотрите в сети там куча примеров по работе с буфером а если относительные ссылки будут постоянно изменяться, то автоматизировать этот процесс не удастся-только по одному полю и вся затея теряет смысл...
...
Рейтинг: 0 / 0
копирование с помощью vba
    #39998235
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kniga
в скобках какой имеется ввиду объект?
буфер обмена же. В гугле забанили?

kniga
хотелось бы, чтобы можно было скопировать все три поля и вставилось в Excel в разные ячейки.

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
Public Function PutInClipboardText(sText As String)
On Error Resume Next
    With GetObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
        .SetText sText
        .PutInClipboard
    End With
End Function
'вызов и три значения в три последовательные ячейки одной строки Excel из буфера обмена
?PutInClipboardText("Text1" & vbTab & "Text2" & vbTab & "Text3")
...
Рейтинг: 0 / 0
25 сообщений из 55, страница 2 из 3
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / копирование с помощью vba
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]