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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.03.2015, 14:16   #1
an10
Новичок
Джуниор
 
Регистрация: 11.03.2015
Сообщений: 2
По умолчанию Перенос данных поля со списком из access в word

Здравствуйте
Подскажите, пожалуйста, как модифицировать код к кнопке в форме БД:
если в форме "История_болезни" имеются Поля со списком: Код_отд, Код_госпр, Код_хир. Внутри этих полей со списком отображаются значения, соответствующие их идентификаторам из справочников-таблиц Отделение, Госпрограмма и Хирург. Сама же форма "История_болезни" основана на таблице-справочнике, которая связана с таблицами Отделение, Госпрограмма, Хирург через ранее указанные коды.

Нужно сделать так, чтобы в шаблон word (Отчет_коронарография) переносилось само значение поля Код_отд, Код_госпр, Код_хир, а не его идентификационный код.
Надеюсь, проблема понятно сформулирована)
Заранее спасибо!

Option Compare Database
Option Explicit
Function funOutputWord(strPathDot As String, strPathWord As String) As Boolean
On Error GoTo Err_
Dim app As Word.Application
Dim DlgUser As Integer
If Dir(strPathWord) <> "" Then
DlgUser = MsgBox("Документ с таким именем ранее уже был создан. Заменить его?", vbYesNo, "admin")
If DlgUser = vbNo Then
Set app = CreateObject("Word.Application")
With app
.Visible = True
.Documents.Open strPathWord
End With
Set app = Nothing
Else
GoTo nn
End If
Else

nn:
Set app = New Word.Application
app.Visible = True
app.Documents.Add strPathDot
With app.ActiveDocument
.Bookmarks.Item("ФИО_пац").Range.Te xt = Nz(ФИО_пац, "")
.Bookmarks.Item("ИБ_номер").Range.T ext = Nz(Номер_истории, "")
.Bookmarks.Item("Отделение").Range. Text = Nz(Код_отд, "")
.Bookmarks.Item("Номер_иссл").Range .Text = Nz(Номер_операции, "")
.Bookmarks.Item("Время_иссл").Range .Text = Nz(Время_операции, "")
.Bookmarks.Item("Госпрограмма").Ran ge.Text = Nz(Код_госпр, "")
.Bookmarks.Item("Рентгенохирург").R ange.Text = Nz(Код_хир, "")
.Bookmarks.Item("Дата").Range.Text = Nz(Дата_исследования, "")
Dim p, r
p = CurrentProject.Path & "\Коронарография\"
r = Mid(strPathWord, InStrRev(strPathWord, "."))
.SaveAs p & Forms!История_болезни!Номер_операци и & r

End With
Set app = Nothing
End If
funOutputWord = True
Exit_:
Exit Function
Err_:
funOutputWord = False
Err.Clear
app.Quit
Resume Exit_
End Function

Private Sub Кнопка101_Click()
Dim strPathDot As String, strPathWord As String
strPathDot = CurrentProject.Path & "\" & "Отчет_коронарография.dotx"
strPathWord = CurrentProject.Path & "\" & "Коронарография.docx"
Call funOutputWord(strPathDot, strPathWord)
End Sub
an10 вне форума Ответить с цитированием
Старый 13.03.2015, 15:22   #2
NeoSocionic
Новичок
Джуниор
 
Регистрация: 13.03.2015
Сообщений: 3
По умолчанию

Нужно чтобы здесь :
.Bookmarks.Item("Отделение").Range. Text = Nz(Код_отд, "")
стояло другое имя, не "Код_отд"
Обычно текст храниться в справочнике рядом с кодом. Нужно открыть в базе справочник отделений и посмотреть, как называется поле, в котором хранится текст.
Однако это поле может не входить в набор данных для формы. Тогда придется писать промежуточный запрос, с подключением нужных полей.
NeoSocionic вне форума Ответить с цитированием
Старый 16.03.2015, 20:47   #3
an10
Новичок
Джуниор
 
Регистрация: 11.03.2015
Сообщений: 2
По умолчанию

А Вы не подскажете, как приблизительно должен выглядеть этот запрос. Если Код_отд хранится в таблице Отделение (существует также форма для этой таблицы Отделение). Само значение идентификатора тоже называется Отделение.
an10 вне форума Ответить с цитированием
Старый 25.03.2015, 19:57   #4
LittleFatCat
Пользователь
 
Регистрация: 14.09.2010
Сообщений: 68
По умолчанию

Доброго времени суток!

Если у Вас таблица называется Отделение, где есть Код_отд и Название отделения в поле Отделение, то можно поступить так:

.Bookmarks.Item("Отделение").Range. Text = Nz(Код_отд, "")
записать как
.Bookmarks.Item("Отделение").Range. Text = Dlookup("Отделение", "Отделение", "Код_отд =" & Код_отд)

C уважением Анатолий
LittleFatCat вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
HTML. Перенос данных из формы в поля таблицы Antonnew HTML и CSS 3 25.01.2012 07:31
Перенос данных из Еxcel в Word m1cky Microsoft Office Excel 2 19.04.2011 19:05
Использование поля со списком для отбора данных newgor Microsoft Office Access 2 14.05.2010 20:52
Перенос данных из Excel в Word Volch Microsoft Office Excel 6 19.10.2008 20:36
Перенос данных из MS Word в MS Excel ? Nickd5 Помощь студентам 2 28.06.2008 20:40