Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.81/47: Рейтинг темы: голосов - 47, средняя оценка - 4.81
Техник
 Аватар для DenProx
318 / 176 / 27
Регистрация: 09.10.2009
Сообщений: 3,109

Копирование и вставка строки с параметром

17.02.2011, 11:42. Показов 8983. Ответов 18
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток. У меня такой вопрос: как можно выполнить копирование строки (или нескольких строк), программно, т.е. на форме сделать кнопку и с помощью нее скопировать, и также программно (через кнопку) вставить эту строку (строки) , и главное при Вставке, одному полю присвоить значение некоторой переменной...
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
17.02.2011, 11:42
Ответы с готовыми решениями:

Копирование строки и вставка из буфера обмена
Добрый вечер! Хочу сделать так, что при комбинировании клавиш Ctrl + v из буфера обмена текст вставлялся в строку. Также я хочу что при...

Копирование строки из файла и вставка его в форму
Здравствуйте, прошу помощи, имеется файл list , в котором 20к строк , необходимо каждую строку скопировать и вставить в другую программу....

Stringgrid копирование содержимого строки и вставка его в выделенную строку
Доброго времени. Подскажите пожалуйста, нужно в stringgrid скопировать содержимое выделенной строки и вставить его в другую выделенную...

18
Модератор
Эксперт MS Access
 Аватар для shanemac51
12231 / 5078 / 814
Регистрация: 07.08.2010
Сообщений: 14,940
Записей в блоге: 4
17.02.2011, 12:06
Цитата Сообщение от DenProx Посмотреть сообщение
Доброго времени суток. У меня такой вопрос: как можно выполнить копирование строки (или нескольких строк), программно, т.е. на форме сделать кнопку и с помощью нее скопировать, и также программно (через кнопку) вставить эту строку (строки) , и главное при Вставке, одному полю присвоить значение некоторой переменной...
я восприняла это как копирование табличной части некой накладной в другую с присвоением нового номера накладной

насколько я права ......
0
Техник
 Аватар для DenProx
318 / 176 / 27
Регистрация: 09.10.2009
Сообщений: 3,109
17.02.2011, 12:12  [ТС]
shanemac51, от части да) в общем суть такая:

Наформе лежит СубФорма(таблица) в которую по запросу выводятся некоторые данные с соотношением Один ко многим, т.е. выбираем запись, а в этой таблице отодражаются данные относящиеся к выбранной записи, но бывает нужно скопировать данные из таблицы в другой раздел, при обычном копировании и вставке записи вставляются, но т.к. ключ по которому групперуются данные отсутствуют, записи пропадают из субформы... но в таблице они есть, просто с пустым полем где должен быть ключ... для этого и нужно сделать программное Копирование\Вставку, чтобы этот ключ присваивался записям которые были добавлены
0
Модератор
Эксперт MS Access
 Аватар для shanemac51
12231 / 5078 / 814
Регистрация: 07.08.2010
Сообщений: 14,940
Записей в блоге: 4
17.02.2011, 13:44
у меня было нечто похожее --копирование накладной в счет фактуру

-сообщи номер накладной
если найдена
----копирование головной строки из таб1 в раб11
----копирование табличной части накладной из таб2 в раб12
если не найдена
---сообщения и некое действие

-сообщи номер счет -фактуры
если найдена
---сообщения и некое действие
не найдено
---замена номера в раб11 и раб12 на новое значение
---вставка раб11 в счет1
---вставка раб12 в счет2

счетчики не использовались, ключом служили год и номер накл\счета

при использовании счетчика после вставки в счет1 определить значение счетчика и занести в раб12 до вставки в счет1
0
Техник
 Аватар для DenProx
318 / 176 / 27
Регистрация: 09.10.2009
Сообщений: 3,109
17.02.2011, 14:03  [ТС]
а как это программно выглядит ?))

у меня например так должно быть:
ID| GroupID| Name| .....
-------------------------
[здесь строка с данными]

допустим выбрали раздел 1, в этой таблице отобразились записи у которых GroupID = 2, копируем дну или несколько записей, переходим в раздел 2, где GroupID уже = 4, вставляем... и как теперь изменить значение GroupID на 4, у тех записей которые вставили?
0
2343 / 499 / 22
Регистрация: 01.04.2009
Сообщений: 2,200
18.02.2011, 12:18
Цитата Сообщение от DenProx Посмотреть сообщение
допустим выбрали раздел 1, в этой таблице отобразились записи у которых GroupID = 2, копируем дну или несколько записей, переходим в раздел 2, где GroupID уже = 4, вставляем... и как теперь изменить значение GroupID на 4, у тех записей которые вставили?
а разве нельзя просто запросом Insert вставить?... или я что не понял?...
и что такое "раздел"? имеются ввиду разные значения поля на главной форме?
0
Техник
 Аватар для DenProx
318 / 176 / 27
Регистрация: 09.10.2009
Сообщений: 3,109
18.02.2011, 12:29  [ТС]
Цитата Сообщение от Patch Посмотреть сообщение
или я что не понял?..
Раздел, имеется ввиду запись из какого либо контрола на форме, в моем случае это TreeView, в нем выбираем закую либо запись, в субформе (таблице) выводятся записи относящиеся к этой записи (разделу)... копируем, переходим в другой раздел, вставляем, вот тут и нужно чтобы вставленная запись стала принадлежать этому разделу
0
2343 / 499 / 22
Регистрация: 01.04.2009
Сообщений: 2,200
18.02.2011, 13:02
Цитата Сообщение от DenProx Посмотреть сообщение
копируем, переходим в другой раздел, вставляем, вот тут и нужно чтобы вставленная запись стала принадлежать этому разделу
вопрос исключительно в том, как это предполагается оформить с точки зрения дизайна.
две кнопки - скопировать и вставить; одна кнопка + выбор раздела куда копировать на той-же форме; или еще какой вариант.

как вам хочется, чтобы это выглядело?
0
Техник
 Аватар для DenProx
318 / 176 / 27
Регистрация: 09.10.2009
Сообщений: 3,109
18.02.2011, 13:04  [ТС]
Patch, меня дизайн мало интересует, мне важна технология вставки, с заменой ключа в соответствии с разделом куда вставляем запись
0
2343 / 499 / 22
Регистрация: 01.04.2009
Сообщений: 2,200
18.02.2011, 13:21
Цитата Сообщение от DenProx Посмотреть сообщение
мне важна технология вставки, с заменой ключа в соответствии с разделом куда вставляем запись
повторяю: запрос на добавление Insert
SQL
1
2
3
INSERT INTO конечный_объект [(поле1[, поле2[, ...]])]
SELECT [источник.]поле1[, поле2[, ...]
FROM выражение_таблицы
в качестве поля, с именем GroupID ставим значение из управляющего контрола формы.
все.
0
Техник
 Аватар для DenProx
318 / 176 / 27
Регистрация: 09.10.2009
Сообщений: 3,109
18.02.2011, 13:25  [ТС]
Patch, мне не нужно добавить запись в таблицу, грубо говоря мне ее нужно дубоировать с заменой ключа
0
2343 / 499 / 22
Регистрация: 01.04.2009
Сообщений: 2,200
18.02.2011, 13:38
Цитата Сообщение от DenProx Посмотреть сообщение
Patch, мне не нужно добавить запись в таблицу, грубо говоря мне ее нужно дубоировать с заменой ключа
дублирование - не есть вставка по вашему?

а что-же происходит с данными при дублировании, как вы думаете?
если в таблице появляется новая строка, значит это ВСТАВКА.
а как поменять ключ - я уже написал:
Цитата Сообщение от Patch Посмотреть сообщение
в качестве поля, с именем GroupID ставим значение из управляющего контрола формы.
ну, или можете поставить "4 as GroupID" и у вас все новые записи будут вставляться с GroupID = 4.
так понятнее?
0
Техник
 Аватар для DenProx
318 / 176 / 27
Регистрация: 09.10.2009
Сообщений: 3,109
18.02.2011, 13:42  [ТС]
Patch, под вставкой я подразумеваю - Ctrl + V или RMB - Вставить
0
2343 / 499 / 22
Регистрация: 01.04.2009
Сообщений: 2,200
18.02.2011, 13:50
Цитата Сообщение от DenProx Посмотреть сообщение
Patch, под вставкой я подразумеваю - Ctrl + V или RMB - Вставить
DenProx, ты уж определись, ты хочешь кнопкой, или "программно", как в топике написано.
хотя, по большому счету - это все равно.
в Access можно определить макросы на кнопки, так что скопировать и вставить можно и так.
0
Техник
 Аватар для DenProx
318 / 176 / 27
Регистрация: 09.10.2009
Сообщений: 3,109
18.02.2011, 13:57  [ТС]
Patch, просто ваш вариант координально отличается от того как я себе это представляю, и какие уже имеются наработки...

вот так делаю я:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
Private Sub Кнопка81_Click()
Dim rst As Recordset
 
Set rst = CurrentDb.OpenRecordset("SingleQuestionMode", dbOpenDynaset)
rst.MoveFirst
Do While Not rst.EOF
If rst.GroupID.Value <> temp Then
rst.GroupID.Value = temp
End If
rst.MoveNext
Loop
End Sub
смысл в том, что после вставки, я прохожусь цыклом по полю GroupID и проверяю значение, если оно не равно выбранному разделу, то заменить на это значение...

не работает этот код для нескольких записей... если вставить строку, и применить этот код, то значение измениться, если вставить группу строк, то измениться только та которая выделена...

мне сказали что нужно сделать клон... и подгонят пример ... вот щас жду...))
0
2343 / 499 / 22
Регистрация: 01.04.2009
Сообщений: 2,200
18.02.2011, 15:35
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
   Dim i As Long
   Dim F As Form
   Dim RS As Recordset
 
   ' Get the form and its recordset.
   Set F = Forms![Customers1]
   Set RS = F.RecordsetClone
 
   ' Move to the first record in the recordset.
   RS.MoveFirst
 
   ' Move to the first selected record.
   RS.Move F.SelTop - 1
 
   ' Enumerate the list of selected records presenting
   ' the CompanyName field in a message box.
   For i = 1 To F.SelHeight
 
     'здесь меняем ваш ID !!!
     RS.GroupID.Value = ...
 
     RS.MoveNext
   Next i

неудобный способ.
0
Техник
 Аватар для DenProx
318 / 176 / 27
Регистрация: 09.10.2009
Сообщений: 3,109
21.02.2011, 07:55  [ТС]
Patch, вообще ни каких изменений не происходит...
0
2343 / 499 / 22
Регистрация: 01.04.2009
Сообщений: 2,200
21.02.2011, 09:05
Цитата Сообщение от DenProx Посмотреть сообщение
Patch, вообще ни каких изменений не происходит...
выложи код целиком.
1
Техник
 Аватар для DenProx
318 / 176 / 27
Регистрация: 09.10.2009
Сообщений: 3,109
21.02.2011, 09:27  [ТС]
Всем спасибо! Я уже решил проблему)) все оказалось гараздо проще)

просто нужно было, при клике (выборе раздела), значению по умолчанию присвоить переменную:

Visual Basic
1
Me.fmSingleQuestionMode.Form!GroupID.DefaultValue = temp
а для субформы, на событие "До вставки": присвоить полю GroupID, значение по умолчанию)

Visual Basic
1
2
3
Private Sub Form_BeforeInsert(Cancel As Integer)
Me!GroupID = Me!GroupID.DefaultValue
End Sub
И все работает автоматически)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
21.02.2011, 09:27
Помогаю со студенческими работами здесь

Копирование определенного текста из файла, копирование и вставка в статичную переменную
Доброго вечера. Делаю программу которая бы выводила погоду на сегодня через данные сайта. Завис на передаче данных с сайта. Как можно...

Копирование файлов, указанных параметром
Допустим есть файлы res01.dll;res02.dll...res20.dll. При открытии bat файла он должен запросить какой файл переносить допустим...

Копирование и вставка Exel
Добрый день, помогите с следующие задачей Копировать с файла kurs.xlsx данные находящиеся (А1:Е21) (без формул только текст) и вставлять...

Копирование и вставка записей в БД
Хочу сделать копирование и вставку записей в таблицу: Вот так я копирую запись: if form1.ADOQuery1.FieldCount=8 then begin ...

Копирование и вставка в буфер
Clipboard.SetText(richTextBox1.Text); Копируем текст. А как вставить ? Например по кнопке в richTextBox1


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Новые блоги и статьи
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере нетипового документа выдачи шин для спецтехники с табличной частью, разработанного в конфигурации КА2. Номеклатура. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru