Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Word
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.10.2009, 01:38   #1
andrey0701
 
Регистрация: 23.10.2009
Сообщений: 4
Вопрос ввод текста из одной формы в другие

Подскажите, пожалуйста, каким образом можно присвоить значение вводимого текста в одну форму (TextBox) к другим формам (TextBox) и сколько таких значений можно приравнять (ориентировочно у меня в документе таких форм около 50).
andrey0701 вне форума Ответить с цитированием
Старый 23.10.2009, 09:22   #2
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию

Что-то провидческий дар у меня сегодня не пашет
В чем проблема? О каких формах идет речь?
Если мы говорим о пользовательских формах (почему их 50 в документе?), то все очень просто:
Код:
'Текст из первого текстового поля первой формы записываем в первое текстовое поле второй формы
Form2.TextBox1.Text = Form1.TextBox1.Text
Если же речь идет о полях для ввода текста, то каждое такое поле находится по умолчанию в закладке, а значит, на эту закладку можно сделать перекрестную ссылку.
Лучше день потерять — потом за пять минут долететь!©
viter.alex вне форума Ответить с цитированием
Старый 23.10.2009, 13:07   #3
andrey0701
 
Регистрация: 23.10.2009
Сообщений: 4
По умолчанию

просто, нужно чтобы один раз напечатав в акте (к примеру) в заданной форме - те же данные появлялись и в другой форме находящейся в документе. Сделал так как во вложении, но к сожалению не работает, а почему не понятно......
Если вопрос сам по себе дурацкий, то извиняюсь - я не программист.
если есть возможность, подскажите как это сделать.
Вложения
Тип файла: doc акт.doc (205.0 Кб, 28 просмотров)
andrey0701 вне форума Ответить с цитированием
Старый 23.10.2009, 13:42   #4
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию

Документ неплохой: видно, что человек старался. Скажи, такая форма документа обязательна? Или можно по-другому организовать ввод данных?
Не работает, потому что в документе у тебя 16 полей, по моим подсчетам, а обращаешься ты и к 20-му и к 30-му
Лучше день потерять — потом за пять минут долететь!©
viter.alex вне форума Ответить с цитированием
Старый 23.10.2009, 14:40   #5
andrey0701
 
Регистрация: 23.10.2009
Сообщений: 4
По умолчанию

это только две формы - предполагается сделать - девять документов (9 листов) объединённые в один .doc файл, вот поэтому я и написал про 50 полей
впринципе, форма - может быть и другой, но мне хочется понять, как это на конкретном примере организовать (заполнение).
andrey0701 вне форума Ответить с цитированием
Старый 23.10.2009, 15:02   #6
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию

Мда-а. Представляю себе этот ужас
Думаю, что логично будет делать так. Там, где нужно вводить данные, поставить либо текстбокс, как сейчас, либо, что предпочтительнее, поле ввода, т.к. оно уже имеет закладку. Но нужно еще знать, будет ли вводиться информаци куда-либо, помимо полей.
Далее. Там, где текст просто должен повторяться, ставить поля { DOCVARIABLE } и указывать имя переменной, из которой читать значение. А эту переменную задавать при редактировании соответствующего поля. Например, текст из поля TextBox1 должен повториться в трех местах. Нужно в обработчик события записать:
Код:
Private Sub TextBox1_Change()
  On Error Resume Next
  ActiveDocument.Variables.Add "var" & TextBox1.Name, TextBox1.Value
  If Err.Number = 5903 Then 'Если такая переменная в документе уже есть
    'Обновляем значение переменной
    ActiveDocument.Variables("var" & TextBox1.Name).Value = TextBox1.Value
    'Очищаем ошибку
    Err.Clear
  Else
    MsgBox Err.Description, vbCritical + vbOKOnly, "Ошибка при добавлении переменной " & "var" & TextBox1.Name, TextBox1.Value
    Exit Sub
  End If
End Sub
А в тех местах, где текст должен повториться поставить поле { DOCVARIABLE varTextBox1}
Но лично мне этот метод кажется не очень продуктивным. Я бы сделал форму с девятью вкладками (по количеству документов), вызывал бы эту форму при октрытии документа, и уже значения из формы вносил бы в документ.
Однако, остается много неясного, поэтому нужно больше информации: как часто это должно заполняться, откуда берутся данные для заполнения и т.д.
Попахивает работкой
Лучше день потерять — потом за пять минут долететь!©
viter.alex вне форума Ответить с цитированием
Старый 23.10.2009, 15:07   #7
БуреВестник
Пользователь
 
Регистрация: 19.09.2009
Сообщений: 69
По умолчанию

Я вот так представляю.
Вложения
Тип файла: doc Форма.doc (26.0 Кб, 26 просмотров)
БуреВестник вне форума Ответить с цитированием
Старый 23.10.2009, 15:15   #8
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию

Вообще-то, человек так и делал. Но это непродуктивно.
Лучше день потерять — потом за пять минут долететь!©
viter.alex вне форума Ответить с цитированием
Старый 23.10.2009, 15:47   #9
БуреВестник
Пользователь
 
Регистрация: 19.09.2009
Сообщений: 69
По умолчанию

viter.alex
то есть проблема в обновлении данных в TextBox? Т.е. есть 50 TextBoxов, которые должны содержать одну и ту же информацию, все эти 50 TextBoxов ссылаются на один TextBox, назовём его TextBox_1.
Т.е. мы вводим данные в TextBox_1 и эти данные должны появиться в 50 TextBoxах?
И проблема в том, что надо лезть в VBA, заходить в каждый TextBox и нажимать Run?

Если проблема в этом, то смотрите вложенный файл.
Вложения
Тип файла: doc Форма Вариант 2.doc (32.5 Кб, 31 просмотров)

Последний раз редактировалось БуреВестник; 23.10.2009 в 15:58.
БуреВестник вне форума Ответить с цитированием
Старый 23.10.2009, 15:58   #10
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию

Проблема не в обновлении, а в мозгах. Решение в лоб, конечно, будет работать, но очень все запутывается. Еще раз повторю: поля для ввода должны быть только там, где нужно вводить текст. Там, где текст просто копируется откуда-то, не должно быть поля ввода. Следование такому нехитрому правилу позволит избежать многих подводных камней.
Лучше день потерять — потом за пять минут долететь!©
viter.alex вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
макрос копирования текста из тегов и вставки в другие теги valdem Microsoft Office Word 18 21.02.2009 13:08
Ввод текста и ссылки в одну ячейку Апчхи Microsoft Office Excel 5 03.02.2009 10:44
Форматирование текста внутри поля. как? или другие варианты... smoky Microsoft Office Access 2 26.12.2008 19:09
Ввод текста pali4ev Общие вопросы Delphi 1 18.12.2008 01:01