Используйте значение закладки в WORD для SQL-запроса - PullRequest
0 голосов
/ 26 февраля 2019

В настоящее время я пытаюсь создать автоматизированное деловое письмо WORD, которое заполняет соответствующие данные, такие как адрес компании, название компании, сегодняшняя дата, дата крайнего срока и т. Д. После ввода 5-значного числа.

Число и все остальные поля являются закладками.

Всякий раз, когда пользователь вводит конкретное 5-значное число в закладку с именем "theNumber", это значение будет использоваться для запроса SQL (Oracle). Запрос затем заполняет все другие закладки!

Вот что я пробовал до сих пор:

 Function dbQuery(ByVal TM As String, ByVal myNumber As String) As Boolean

        Dim sqlrumpf As String
        Dim sqlstring As String
        Dim connstring As String

         With ActiveDocument
           If .Bookmarks.Exists(TM) Then
            Dim TMRange As Range
              Set TMRange = .Bookmarks(TM).Range
               TMRange = myNumber
              .Bookmarks.Add TM, TMRange
              dbQuery = True
            Else
                Debug.Print "Bookmark not found: " & TM
           End If
        End With

        sqlrumpf = "SELECT p.name " & _
        "FROM xy.person p, xy.adresse a, wz.zusatz1 z, xy.vorgang v " & _
        "WHERE p.adresse_id = a.adresse_id " & _
        "AND z.aktnr = v.vorgang_id " & _
        "AND a.adresse_id = v.adresse_id " & _
        "AND v.vorgang_nr = '"

        sqlstring = sqlrumpf & myNumber & "'"
        connstring = "ODBC;DSN=mydsn;UID=myuid;DBQ=my.dbq.lan;DBA=W;APA=T;PFC=1;TLO=0;PWD=mypw;"

        QueryTables.Add _
        (Connection:=connstring, _
        Destination:=Range(TMRange), _
        Sql:=sqlstring).Refresh

End Function
Sub Main()

    If dbQuery("theNumber", "12345") = False Then
      MsgBox "Database query failed!"
   End If

End Sub

Я получаю ошибку:

Ошибка времени выполнения '4608': значение не входит в диапазон определения.

Как это можно исправить?

Кажется, здесь возникает ошибка:

Destination:=Range(TMRange), _

Обычно я использую этот запрос только для Excel, когда хочу напечатать запрос в одной ячейке.

Является ли вообще плохой идеей использовать закладки с SQL-запросами таким образом?Какие поля вы бы использовали, если бы не закладки?Как вы запрашиваете значения закладок?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...