Открытие страницы в PDF через VBA - ссылка на поле - PullRequest
2 голосов
/ 16 июня 2011

У меня есть PDF-файл, полный номеров деталей, которые попадают под «Стандарты». Я создал базу данных и поле под названием Номер страницы. Теперь мой код ниже открывает PDF-файл для указанной страницы, но после создания моего поля с номерами страниц вместо указания фактического номера страницы я хочу, чтобы оно прочитало поле и использовало этот номер страницы в качестве ссылки. Любая помощь по этому вопросу будет здорово. Мой код все выглядит следующим образом:

Private Sub ViewStandard_Click()

'open pdf at page #
  Dim pageNum As String
  Dim fileloc As String
  Dim bookmark As String

  pageNum = Me.Page
  fileloc =
  bookmark = 

  pat1 = """C:\Program Files\Adobe\Reader 9.0\Reader\AcroRd32.exe"""

  pat2 = "/A ""page=pageNum"""

  pat3 = """fileloc"""

  Shell pat1 & " " & pat2 & " " & pat3, vbNormalFocus

  'fileloc = location of pdf
  'bookmark = fileloc & pagenum

End Sub

Пожалуйста, обратите внимание, мои знания о доступе довольно ограничены, и я получил хорошую помощь от коллеги по работе над этим. Так что я не совсем уверен, как работают команды String. Кроме того, я не совсем уверен, как кодировать в файле loc / bookmark (PDF page) и pagenum.

Ответы [ 2 ]

1 голос
/ 16 июня 2011

Я не понимаю, откуда вы получаете значения для pageNum и fileloc.Ваш код, по-видимому, предназначен для события нажатия командной кнопки.В этом случае Me.Page относится к свойству формы.Вот что может сказать об этом справка Access:

Свойство Page указывает номер текущей страницы при печати формы или отчета.Чтение / запись Long .

Если это связанная форма, а ее источник записи содержит поля для Page_Number и File_Location, я думаю, вам следует добавить связанные элементы управления текстовым полем (txtPageNumber иtxtFileLocation) для этих полей.Затем вы можете ссылаться на эти значения (из текущей отображаемой записи) при создании строки, которую вы будете передавать в Shell.

Private Sub ViewStandard_Click()
    Dim strReader As String
    Dim strShell As String

    strReader = "C:\Program Files\Adobe\Reader 9.0\Reader\AcroRd32.exe"
    strShell = """" & strReader & """ /A ""page=" & Me.txtPageNumber & """ """ & _
        Me.txtFileLocation & """"
    Debug.Print "strShell: " & strShell 
    Shell strShell, vbNormalFocus
End Sub

Я не уверен, что все кавычки верны.Debug.Print позволит вам просмотреть завершенную строку, которую вы просите, чтобы Shell выполнила.Вы можете скопировать эту строку из окна Immediate и вставить ее в окно командной строки, чтобы протестировать ее, и при необходимости отрегулировать.

Кроме того, в вашем предыдущем вопросе вам были предложены альтернативы Shell.Я призываю вас уделить время их изучению.

0 голосов
/ 12 августа 2013
Option Explicit
Option Compare Database

Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, _
ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long

Private Const SW_SHOWNORMAL As Long = 1
Private Const SW_SHOWMAXIMIZED As Long = 3


Private Sub Command0_Click()
    ShellExecute 0, "Open", "C:\Users\hp\Documents\Office Work\Shruti\DownloadForm16.pdf", vbNullString, "C:\", SW_SHOWNORMAL
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...