Ответить на сообщение
Вернуться к теме
Вы отвечаете на сообщение:
ник: palarm А зачем тогда в Word выводить? Ведь для того и выводят, чтобы правили. А иначе делай обычный отчет Access. Вообще, чего вы тут намудрили, только заморочили человека... Все просто: делаешь документ в Worde, втыкаешь метки посреди текста (обзываешь их также, как и соответвующие параметры в нижепреведенной процедуре) и созраняешь как Dot. Потом создаешь процедуру типа такой:
Function ВыводПоШаблону(ПутьШаблона As String, ПутьДокумента As String, ИмяШаблона As String) As Boolean On Error GoTo 999 Dim app As Word.Application Dim strDOC As String, strDOT As String, DateFormatLong As String Dim DlgUser As Integer Dim ИтДопОткос, ИтКомплОткос, ИтогоОткосы, ВсегоПоЗаказу As Double DateFormatLong = FormatDateTime(Date, vbLongDate) strDOT = ПутьШаблона strDOC = ПутьДокумента & [НомЗаказа] & [КодФирмача] & ".doc" If Dir(strDOC) <> "" Then DlgUser = MsgBox("Документ с таким именем ранее уже был создан. Заменить его?", vbYesNo, NomWers) If DlgUser = vbNo Then Set app = CreateObject("Word.Application") With app .Visible = True .Documents.Open strDOC End With Set app = Nothing Else GoTo nn End If Else nn: ИтДопОткос = Nz(DLookup("СумЦена", "СправДоб", "[КодЗаказа]=" & Me.КодЗаказа & " and [Параметр]=" & "'" & "откосы" & "'"), 0) ИтКомплОткос = Nz(DLookup("СумЦена", "СправКомпл", "[КодЗаказа]=" & Me.КодЗаказа & " and [Параметр]=" & "'" & "откосы" & "'"), 0) ИтогоОткосы = ИтДопОткос + ИтКомплОткос + Nz(Forms!Заказы!Панели, 0) + Nz(Forms!Заказы!ВнутрОбналичка, 0) + Nz(Forms!Заказы!ЦенаПорога, 0) ВсегоПоЗаказу = Forms!Заказы!Итог - (Nz(Forms!Заказы!Скидка, 1) * Forms!Заказы!Итог) + ИтогоОткосы - Nz(Forms!Заказы!СкидкаОткосы, 0) * ИтогоОткосы Set app = New Word.Application app.Visible = True app.Documents.Add strDOT With app.ActiveDocument If ИмяШаблона = "АктПриемки" Then .Bookmarks.Item("Заказчик").Range.Text = "" & [Заказчик] .Bookmarks.Item("НомЗакКодЗак").Range.Text = "" & [НомЗаказа] & "" & [КодФирмача] & " от " & "" & [ДатаЗаказа] .Bookmarks.Item("НомЗакКодЗак1").Range.Text = "" & [НомЗаказа] & "" & [КодФирмача] & " от " & "" & [ДатаЗаказа] ElseIf ИмяШаблона = "Договор" Or ИмяШаблона = "ДоговорВремянка" Then .Bookmarks.Item("НомЗакКодзак2").Range.Text = "" & [НомЗаказа] & "" & [КодФирмача] .Bookmarks.Item("ТекДата").Range.Text = Date .Bookmarks.Item("ТекДата1").Range.Text = Date + 2 & "г." .Bookmarks.Item("СумПроп").Range.Text = Num2Str(ВсегоПоЗаказу) .Bookmarks.Item("Текст1").Range.Text = [Заказчик] & ", " & IIf(Forms!Заказы!КодФирмача = "н", "действующее на основании устава", "действующий(ая) на основании " & [Паспорт]) & ", " & IIf(Forms!Заказы!КодФирмача = "н", "именуемое в дальнейшем Заказчик и ", "именуемый(ая) в дальнейшем Заказчик и ") & ДанныеОрг.Form!Исполнитель & " " & ДанныеОрг.Form!Ини & IIf(ДанныеОрг.Form!Исполнитель = "предприниматель", ", действующий на основании свидетельства индивидуального предпринимателя, именуемый ", ", действующее на основании устава, именуемое ") & "в дальнейшем Исполнитель, заключили настоящий договор о нижеследующем." .Bookmarks.Item("Текст2").Range.Text = IIf([КодФирмача] = "н", "Срок выполнения работ с " & DateFormatLong & " до ______ _______________ " & Year(Date) & "г. при условии поступления денежных средств на расчетный счет Исполнителя не позднее______ _______________" & Year(Date) & "г. Исполнитель имеет право выполнить работы досрочно.", "Срок выполнения работ с " & Date & " до______ _______________" & Year(Date) & "г. Исполнитель имеет право выполнить работы досрочно.") .Bookmarks.Item("Текст3").Range.Text = IIf([КодФирмача] = "н", "Оплата заказчиком услуг осуществляется путем перечисления средств на расчетный счет Исполнителя, указанный в настоящем договоре.", "Оплата Заказчиком услуг осуществляется путем внесения наличными в кассу Исполнителя 70% при заключении договора и 30% при подписании акта приемки - передачи в момент окончания работ на месте монтажа.") .Bookmarks.Item("Исполнитель").Range.Text = ДанныеОрг.Form!Исполнитель & " " & ДанныеОрг.Form!Ини .Bookmarks.Item("АдресФирмы").Range.Text = "Адрес: " & ДанныеОрг.Form!АдресФирмы .Bookmarks.Item("ИНН").Range.Text = "ИНН " & ДанныеОрг.Form!ИНН .Bookmarks.Item("Банк").Range.Text = "" & ДанныеОрг.Form!Банк .Bookmarks.Item("РС").Range.Text = "Р/с " & ДанныеОрг.Form!РС .Bookmarks.Item("КС").Range.Text = "К/с " & ДанныеОрг.Form!КС .Bookmarks.Item("БИК").Range.Text = "БИК " & ДанныеОрг.Form!БИК .Bookmarks.Item("Телефон").Range.Text = "Телефон: " & ДанныеОрг.Form!Телефон .Bookmarks.Item("ДопТелефон").Range.Text = " " & ДанныеОрг.Form!ДопТелефон .Bookmarks.Item("Заказчик").Range.Text = Nz(Forms!Заказы!Заказчик, "") .Bookmarks.Item("Паспорт").Range.Text = IIf(IsNull(ИНН), Nz(Forms!Заказы!Паспорт, ""), "ИНН " & ИНН) .Bookmarks.Item("ВыданПаспорт").Range.Text = IIf(IsNull(Банк), "выдан " & Nz(Forms!Заказы!ВыданПаспорт.Column(1), ""), Банк) .Bookmarks.Item("АдресЖит").Range.Text = IIf(Not IsNull(АдресЖит), "Адрес: " & Forms!Заказы!АдресЖит, "") .Bookmarks.Item("ТелЗаказчика").Range.Text = IIf(Not IsNull(Телефон), "Телефон: " & Forms!Заказы!Телефон, "") .Bookmarks.Item("ДопТелЗаказчика").Range.Text = IIf(Not IsNull(Сотовый), "Доп. телефон: " & Forms!Заказы!Сотовый, "") .Bookmarks.Item("РСЗак").Range.Text = IIf(Not IsNull(РС), "Р/с " & Forms!Заказы!РС, "") .Bookmarks.Item("КСЗак").Range.Text = IIf(Not IsNull(КС), "К/с " & Forms!Заказы!КС, "") .Bookmarks.Item("БИКЗак").Range.Text = IIf(Not IsNull(БИК), "БИК " & Forms!Заказы!БИК, "") .Bookmarks.Item("ПримЗак").Range.Text = IIf(Not IsNull(ПримОргЗаказчика), Forms!Заказы!ПримОргЗаказчика, "") End If .SaveAs strDOC End With Set app = Nothing End If ВыводПоШаблону = True Exit_: Exit Function 999: ВыводПоШаблону = False MsgBox Err.Description Err.Clear app.Quit Resume Exit_ End Function
Function StringMonth(dateData As Date, strTip As String) As String If Month(dateData) = 2 Then StringMonth = Replace(Format(dateData, strTip), "п", "л") Else StringMonth = Format(dateData, strTip) End If End Function
Ваше имя:
Пароль:
Сообщение:
Прикрепить:
Для вставки смайлов в текст щелкните по значку.