Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Help!!! Word and Access / 25 сообщений из 48, страница 1 из 2
22.03.2004, 00:38
    #32450662
Tasha178
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Help!!! Word and Access
Здравствуйте!
У меня такая проблимз!
в Accessе есть форма принажатии кнопки у меня автоматичеки сохраняется файл типа doc с названием поля открытой страницы этой формы.
в форме более 50 страниц, следовательно более 50 файлов с расширением doc.

так называемый файл.doc каждый раз разный!! Потомучто получен вот так:

'получение имени нового файла
strFleName = "СЗ№" & "" & Forms!Служеб!№служебной & "" & Forms!Служеб!Описание & "" & ".doc"
' получеия строки полниой для сохранения
myDocname = "C:\cz\" + strFleName

А вот как сделать обратное, открыть уже ранее созданный файл с таким именем при нажати кнопки????
я незнаю как написать процедуру
...
Рейтинг: 0 / 0
22.03.2004, 00:57
    #32450669
Geo
Geo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Help!!! Word and Access
получение имени нового файла
strFleName = "СЗ№" & "" & Forms!Служеб!№служебной & "" & Forms!Служеб!Описание & "" & ".doc"
' получеия строки полниой для сохранения
myDocname = "C:\cz\" + strFleName
shell "winword.exe " & myDocname
...
Рейтинг: 0 / 0
22.03.2004, 01:03
    #32450670
Geo
Geo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Help!!! Word and Access
Вернее,
Shell """" & SysCmd(acSysCmdAccessDir) & "\winword.exe"" " & myDocname
...
Рейтинг: 0 / 0
22.03.2004, 01:05
    #32450671
Tasha178
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Help!!! Word and Access
Спасибо!
Но я не знаю как всю процедуру для кнопки задать?
там же цикл будет?
...
Рейтинг: 0 / 0
22.03.2004, 01:10
    #32450672
Geo
Geo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Help!!! Word and Access
Где?
...
Рейтинг: 0 / 0
22.03.2004, 01:20
    #32450673
Tasha178
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Help!!! Word and Access
из Access
Форма
№СЗ 2
описание о том то
на форме кнопка (просмотреть СЗ)!
и при нажатии этой кнопки должен открываться файл с названием
СЗ№2о том то.doc
...
Рейтинг: 0 / 0
22.03.2004, 01:28
    #32450676
Geo
Geo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Help!!! Word and Access
К сожалению, не очень понял смысл последнего поста.
и при нажатии этой кнопки должен открываться файл с названием
СЗ№2о том то.doc

Ну и пусть открывается. Ты в цикле открываешь файлы? Тогда будет цикл (если напишешь его). Один файл открываешь? Тогда не будет цикла (если не напишешь его)...
...
Рейтинг: 0 / 0
22.03.2004, 01:33
    #32450677
Tasha178
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Help!!! Word and Access
Да вот в этом и есть вся фича я незнаю как цикл написать?
я начинающий vb програмер!
...
Рейтинг: 0 / 0
22.03.2004, 01:40
    #32450680
Geo
Geo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Help!!! Word and Access
For
Next

или

Do
Loop

или

While
wend

...
---
Cм. F1. См. "Борей".
...
Рейтинг: 0 / 0
22.03.2004, 01:43
    #32450681
Tasha178
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Help!!! Word and Access
Смотри!
есть база по док обороту
которая состоит из множеств таблиц форм и тд.
заходит юз чтоб написать СЗ он должен взять ее номер он заходит в базу в нужную форму набивает это все нажимает кнопку (отправить в воерд) и автомтически сохроняет фаил с нужным именем в док.
это я сделала
но мне терьнужен обратный эффект
он зашел в базу нашел нужный ему ранее написанный номер СЗ и хочет открыть ее для просмотра ну там прочитать документ.
...
Рейтинг: 0 / 0
22.03.2004, 08:24
    #32450750
Geo
Geo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Help!!! Word and Access
Слушай!
Я выспался и все равно не понимаю что ты хочешь как запустить ворд и передать ему имя файла для открытия тебе уже сказали как сделать кнопку ты знаешь значит сделать еще одну кнопку сумеешь.
При чем тут циклы не пойму попробуй сделай и если будет ошибка напиши код и покажи строку где возникла ошибка может быть тогда станет понятнее что требуется.
...
Рейтинг: 0 / 0
22.03.2004, 21:31
    #32452072
Tasha178
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Help!!! Word and Access
я тож отдохнула объясняю!
ну как файл же сохраняется в ворде а база в акцесе мне и надо открывать из базы вордовский файл для просмотра.
вобщем база она будет что-то типо проводника в виндах.
А как создать таблицу чтобы автоматом записывались имена файлов ну и путь к ним?

P.S. я не глупая меня просто все достали! требуют эл. док. оборот за неделю.
...
Рейтинг: 0 / 0
22.03.2004, 21:43
    #32452081
Tasha178
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Help!!! Word and Access
пишет
Object variable or With block variable not set
...
Рейтинг: 0 / 0
22.03.2004, 22:03
    #32452092
Geo
Geo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Help!!! Word and Access
Где пишет?!
прости господи
...
Рейтинг: 0 / 0
22.03.2004, 22:05
    #32452094
Tasha178
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Help!!! Word and Access
а еще он
the remote machine does not exit or is unavailable
вот как ругается
...
Рейтинг: 0 / 0
22.03.2004, 22:12
    #32452098
Tasha178
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Help!!! Word and Access
Я ж могу и обидется!
ну понимаю достала
я зделала кнопку вторую нажимаю вот где пишется
...
Рейтинг: 0 / 0
22.03.2004, 22:12
    #32452099
Geo
Geo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Help!!! Word and Access
Покажите, пожалуйста, текст процедуры (если можно, полностью)...
...
Рейтинг: 0 / 0
22.03.2004, 22:16
    #32452102
Tasha178
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Help!!! Word and Access
Слушай мож мылом выслать он большой?
...
Рейтинг: 0 / 0
22.03.2004, 22:25
    #32452105
Geo
Geo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Help!!! Word and Access
> Я ж могу и обидется!

Вопрос отнюдь не в Вашей назойливости, а в том, что Вы, похоже, разговариваете сами с собой. Как я или любой из присутствующих может догадаться, где и почему возникает ошибка "объектная переменная не задана"? Конкурс телепатов у нас на форуме уже был, лично я не попал даже в десятку лидеров.

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

> Слушай мож мылом выслать он большой?

Код обработчика нажатия кнопки большой? Если один-два экрана - лучше сюда, в мыло не хочу смотреть.
...
Рейтинг: 0 / 0
22.03.2004, 22:30
    #32452107
Tasha178
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Help!!! Word and Access
извените что на ты!
Option Compare Database
Option Explicit
Public myDocname As String, strFleName As String, errDocname As String
Public mainWord As Object
Public aaa As Boolean

Private Sub Кнопка23_Click()
On Error GoTo Err_CreateCV
Dim objWinWord As Object
' пишет строку "Выполняются подготовительные операции." в строке состояния аксесса
Application.Echo False, "Выполняются подготовительные операции." ' Отключает обновление экрана.
DoCmd.Hourglass True ' Выводит значок песочных часов.

'создание обьекта ворда на основе файла указаного в пути
If Not Create_Doc_Word2("C:\db1\tex.doc", mainWord) Then
MsgBox "Невозможно создать Отчет."
Err.Raise 1, "Create_Doc_Word2", "создание основного документа Report"
GoTo Exit_CreateCV
End If

' прячет документ вода
mainWord.Visible = False

' включает показ кодов полей,отключает проверку орфографии, отключает проверку грамматики
mainWord.ActiveWindow.View.ShowFieldCodes = True
mainWord.Options.CheckSpellingAsYouType = False
mainWord.Options.CheckGrammarAsYouType = False


' включение обновление экрана
Application.Echo True

' вставка поля из рекордсета в поле с именем -----
aaa = ReplaceField(mainWord, "Privet", Forms!Служеб!Кому)
aaa = ReplaceField(mainWord, "ded", ("Служебная записка №76/" & "" & Forms!Служеб!№служебной & "" & "-" & "" & Forms!Служеб!КНГ & "" & "-04"))
aaa = ReplaceField(mainWord, "text", Forms!Служеб!Описание)
aaa = ReplaceField(mainWord, "Kto", ("Начальник СКТО ___________ Лебедев В.Е."))


SetupVievDoc mainWord, 3 ' переключение в просмотр но не активация не путайте
'отключение показа кодов полей
mainWord.ActiveWindow.View.ShowFieldCodes = False
'получение имени нового файла
strFleName = "СЗ№" & "" & Forms!Служеб!№служебной & "" & Forms!Служеб!Описание & "" & ".doc"
' получеия строки полниой для сохранения
myDocname = "C:\cz\" + strFleName


mainWord.Selection.WholeStory
mainWord.Selection.Fields.Update

myDocname = SaveDoc(strFleName, "C:\cz\")

mainWord.ActiveDocument.SaveAs FileName:=myDocname ', FileFormat:=2 'wdFormatText

Dim i As Integer
'звуковой сигнал об окончании формирования у меня на компе че-то не пищит, а на старых пикает
For i = 1 To 10
Beep
Next i
mainWord.Visible = True

' отключает песочные часики мышки на экране
DoCmd.Hourglass False

Exit_CreateCV:
Exit Sub
Err_CreateCV:
MsgBox Err.Description
MsgBox "Модуль находится на тестировании. Сообщите разработчику об ошибке."
Resume Exit_CreateCV

End Sub
Function ReplaceField(objWinWord As Object, strCode As String, ValueField As Variant) As Boolean
Dim sect As Integer, i As Integer, kolFields As Integer
Dim strValueField As String
ReplaceField = False
' проверка на непустоту
If Not IsNull(ValueField) Then
strValueField = CStr(ValueField)
Else
strValueField = ""
End If
With objWinWord.ActiveDocument
' проверка количесва записей ( сейчас не особо важно но когда используеться в запросах и полях со списком надо
kolFields = .Fields.Count
For i = 1 To kolFields
' находи поле в документе потом если количество одно то удаляет
If LCase(Trim(.Fields(i).Code)) = LCase(Trim(strCode)) Then
.Fields(i).Select
.Fields(i).Delete
If strValueField = "" Then
Else
'вставка значения поля вместо поля с названием strCode
objWinWord.Selection.InsertBefore strValueField
End If
ReplaceField = True
Exit For
End If
Next
End With
' проверка на вставку если не вставило то выдает ошибку
If ReplaceField = False Then
Err.Raise 50001, "ReplaceField", " Запись в поле " + strCode + " значения" + ValueField
End If
End Function

Sub SetupVievDoc(docWord As Object, TypeView As Integer)
' это можно не включать в код здесь вкартце настраиваэться рабочий стол ворда ( в смысле вид панельки и т.д.)
With docWord
If .ActiveWindow.View.SplitSpecial = 0 Then
.ActiveWindow.ActivePane.View.Type = 3
Else
.ActiveWindow.View.Type = 3
End If
If .ActiveWindow.View.SplitSpecial <> 0 Then
.ActiveWindow.Panes(2).Close
End If
If .ActiveWindow.ActivePane.View.Type = 1 Or .ActiveWindow.ActivePane.View.Type = 2 Or .ActiveWindow.ActivePane.View.Type = 5 Then
.ActiveWindow.ActivePane.View.Type = 3
End If
If TypeView = 3 Then
.ActiveWindow.ActivePane.View.Type = 3
Else
.ActiveWindow.ActivePane.View.SeekView = TypeView
End If
End With

End Sub

Function SaveDoc(strFleName As String, strPath As String)
'strFleName- название файла с расширением
'strPath - полный путь файла
'возвращает полное имя файла в который необходимо сохранить файл
Dim Message As String, Title As String, CurBottom As Integer
If Dir(strPath + strFleName) <> "" Then
Message = "Файл с именем " + (Chr(13) & Chr(10)) + strFleName + (Chr(13) & Chr(10)) & _
" уже существует." + (Chr(13) & Chr(10)) & _
"Переписать существующий файл вновь созданным?"
Title = "ВНИМАНИЕ!" ' Заголовок.
CurBottom = MsgBox(Message, vbYesNo + vbApplicationModal, Title)
If CurBottom = vbYes Then
' сохраняет документ под исходным именем
SaveDoc = strPath + strFleName
Else
Message = "Введите имя файла для вновь созданного документа."
Title = "Новое имя." ' Заголовок.
Dim strDefault As String

strDefault = Mid(strFleName, 1, Len(strFleName) - 4)
strFleName = InputBox(Message, Title, strDefault) + ".doc"

SaveDoc = SaveDoc(strFleName, strPath)

End If

'процедура подшивки файла к отбору

Else
SaveDoc = strPath + strFleName
End If
End Function

Function Create_Doc_Word2(strTemplate As String, objWinWord As Object)
' выполняет создание обьекта на основе вордовского файла
' с проверкой можно его открывать или нет
On Error GoTo H_OLEerr
Dim blnIsAppOpen As Boolean

Set objWinWord = GetObject(, "Word.Application")
blnIsAppOpen = True

H_OLEcontinue:
If blnIsAppOpen = False Then
Set objWinWord = CreateObject("Word.Application")
End If
objWinWord.Documents.Add Template:=strTemplate
Create_Doc_Word2 = True
Exit Function

H_OLEerr:
Select Case Err
Case 429
blnIsAppOpen = False
Resume H_OLEcontinue
Case Else
End Select
End Function

Private Sub Кнопка26_Click()
On Error GoTo Err_Кнопка26_Click

Dim stAppName As String

stAppName = "X:\Служебные записки\СЗ№1.doc"
Call Shell(stAppName, 1)

Exit_Кнопка26_Click:
Exit Sub

Err_Кнопка26_Click:
MsgBox Err.Description
Resume Exit_Кнопка26_Click

End Sub
Private Sub Кнопка28_Click()
On Error GoTo Err_Кнопка28_Click


DoCmd.Close

Exit_Кнопка28_Click:
Exit Sub

Err_Кнопка28_Click:
MsgBox Err.Description
Resume Exit_Кнопка28_Click

End Sub


Private Sub Кнопка29_Click()
On Error GoTo Err_Кнопка29_Click

Dim strFleName As String, stAppName As String

mainWord.ActiveWindow.View.ShowFieldCodes = False

'получение имени нового файла
strFleName = "СЗ№" & "" & Forms!Служеб!№служебной & "" & Forms!Служеб!Описание & "" & ".doc"
' получеия строки полниой для сохранения
myDocname = "C:\cz\" + strFleName
Shell """" & SysCmd(acSysCmdAccessDir) & "\winword.exe"" " & myDocname

mainWord.Selection.WholeStory
mainWord.Selection.Fields.Update



Exit_Кнопка29_Click:
Exit Sub

Err_Кнопка29_Click:
MsgBox Err.Description
Resume Exit_Кнопка29_Click

End Sub
...
Рейтинг: 0 / 0
22.03.2004, 23:08
    #32452120
Geo
Geo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Help!!! Word and Access
Код обработчика нажатия кнопки, это только это:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Private Sub Кнопка29_Click()
  On Error GoTo Err_Кнопка29_Click
  Dim strFleName As String, stAppName As String
  mainWord.ActiveWindow.View.ShowFieldCodes = False
  'получение имени нового файла
  strFleName = "СЗ№" & "" & Forms!Служеб!№служебной & "" & Forms!Служеб!Описание & "" & ".doc"
  ' получеия строки полниой для сохранения
  myDocname =  "C:\cz\"  + strFleName
  Shell  """  " & SysCmd(acSysCmdAccessDir) & " \winword.exe "" "  & myDocname
  mainWord.Selection.WholeStory
  mainWord.Selection.Fields.Update
Exit_Кнопка29_Click:
  Exit Sub
Err_Кнопка29_Click:
  MsgBox Err.Description
  Resume Exit_Кнопка29_Click
End Sub


Переменная mainWord к моменту его выполнения может быть и не задана, что и происходит, и из-за чего возникает ошибка. Можно повыкидывать или закомментарить строки с ее упоминанием. (Я не знаю, что они делают, поэтому это тоже считаю вариантом)

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Private Sub Кнопка29_Click()
  On Error GoTo Err_Кнопка29_Click
  Dim strFleName As String, stAppName As String
  'получение имени нового файла
  strFleName = "СЗ№" & "" & Forms!Служеб!№служебной & "" & Forms!Служеб!Описание & "" & ".doc"
  ' получеия строки полниой для сохранения
  Shell  """  " & SysCmd(acSysCmdAccessDir) & " \winword.exe "" "  & myDocname
Exit_Кнопка29_Click:
  Exit Sub
Err_Кнопка29_Click:
  MsgBox Err.Description
  Resume Exit_Кнопка29_Click
End Sub


Либо можно работать с Application:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
Private Sub Кнопка29_Click()
  Dim strFleName As String, stAppName As String

On Error Resume Next
  Set mainWord = GetObject(,  "Word.Application" )
  If Err.Number <>  0  Then
    Set mainWord = CreateObject( "Word.Application" )
  endif
  If Err.Number <>  0  Then Exit Sub
On Error GoTo HaveError
  'получение имени нового файла
  strFleName = "СЗ№" & "" & Forms!Служеб!№служебной & "" & Forms!Служеб!Описание & "" & ".doc"
  ' получеия строки полниой для сохранения
  myDocname =  "C:\cz\"  + strFleName
  mainWord.Documents.Open myDocname
  mainWord.ActiveWindow.View.ShowFieldCodes = False
  mainWord.Selection.WholeStory
  mainWord.Selection.Fields.Update
HaveError:
End Function


Только при чем тут цикл?
---
ЗЫ. Это все не проверял, могут быть другие ошибки. Можно нажимать на кнопку "справка" в окошке ошибки, тогда увидишь ее описание.
...
Рейтинг: 0 / 0
22.03.2004, 23:38
    #32452135
Tasha178
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Help!!! Word and Access
1 варитант
таже ошибка

2 вариант
открывает пустой ворд

3 вариант
не каких действий

да цыкл тут не нужен!!!!
а как сделать так чтоб акцес автоматисеки создавал таблицу с именами файлов??
...
Рейтинг: 0 / 0
22.03.2004, 23:51
    #32452144
Tasha178
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Help!!! Word and Access
урааа спасибо 1 вариант ругается но открывыает! чмок
он опять говорит что
объектная переменная или с блочной переменной не установленное
но работает!!!!!!!!!!!
но хотя всеж определено?
...
Рейтинг: 0 / 0
23.03.2004, 00:14
    #32452152
Tasha178
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Help!!! Word and Access
АААААААААА
Вау это круто мы это сделали!!!!!!!!!
я кое че там на меняла и получилась!!!!!
С меня ПИВО!!!!
если надо опобликовать конечный вариант???
...
Рейтинг: 0 / 0
23.03.2004, 00:34
    #32452159
Geo
Geo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Help!!! Word and Access
Первый вариант - это оригинал.

Во втором недостает строки (нечаянно удалил с остальным)
myDocname = "C:\cz\" + strFleName

В третьем перед HaveError: надо написать
mainWord.visible = true

> Вау это круто мы это сделали!!!!!!!!!

Вот и славненько :)

---
"- Какой тулуп?
- Из того зайца, на которого тень от орла упала." (с)
:)

> если надо опобликовать конечный вариант???

Как хочешь. :)
А знаки препинания в нашем великом и могучем все-таки не запрещается ставить :)
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Help!!! Word and Access / 25 сообщений из 48, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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