Сначала я создал таблицу в SQL серверной базе данных с такими столбцами, как идентификатор документа, имя документа и данные документа.
Во-вторых, мне удалось загрузить документ в эту таблицу, используя MS Access и объект ole, и теперь я там есть документ Word, дважды щелкнув объект ole в интерфейсе формы MS Access, я могу открыть документ.
Что интересно, так это то, что я могу редактировать документ и получать изменения, сохраненные в документе внутри сервера.
Идея состоит в том, что я хочу использовать сервер SQL через нашу локальную сеть в качестве альтернативы OneDrive и сделать совместную работу возможной для моих коллег без службы inte rnet.
Теперь я пытаюсь открыть этот документ, используя VBA в MS Word.
Вот моя смутная попытка:
Option Explicit
Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Private Sub CommandButton1_Click()
' my own connection string
cn.Open "provider=sqloledb;server=127.0.0.1,1433;database=accessdb;UID=sa;PWD=111111"
With rs
Set .ActiveConnection = cn
.Source = "select * from docs where did=1"
.LockType = adLockOptimistic
.CursorType = adOpenKeyset
.CursorLocation = adUseClient
.Open
End With
Dim WordObj As Word.Application
'rs![docdata].Verb = -2
'rs![docdata].Action = 7 ' Activates the application.
Dim obdoc As Word.Document
Set obdoc = rs![docdata] ' what property to attach here ??
obdoc.SaveAs2 "D:\thisdoc.doc"
WordObj.Documents.Open obdoc
WordObj.Activate
End Sub
Появляется ошибка несоответствия, а я не сделал знать, как с этим справиться, какой тип свойства должен извлечь данные из этого поля и назначить их вновь созданному документу.
Обновление 20-2-20 20
Хм, теперь я понял, что документ Ms-word - это не простой RTF-файл.
Это папка в сжатом виде! смотри это ! и чтобы проверить это, я удалил расширение .docx и заменил его на .zip, затем разархивировал и получил несколько папок внутри них несколько. xml файлов ..
Это означает, что верхний Подход не совместим с природой этого файла. тип.