Я создал форму приложения с использованием MS Word и целую кучу полей формы, и у меня есть db доступа, который может импортировать все данные, которые мне нужны из этого Word-документа, благодаря этому :Импортировать поля формы MS Word в MS Access
http://msdn.microsoft.com/en-us/library/aa155434%28office.10%29.aspx
Теперь все работает просто отлично (мне даже удалось получить его импортировать в несколько таблиц!), но проблема с выше, что я должен вручную ввести имя каждого файла, по одному время ... это нормально, если это всего лишь случай импорта формы приложения в том виде, в каком он приходит ... но у меня довольно много сидят в папке, которая требуется ввести в базу данных.
Тогда я нашел это:
How to show "Open File" Dialog in Access 2007 VBA?
Я пытался настроить и объединить два, чтобы заставить его работать ... но как вы можете догадаться, но безрезультатно ... (это Безразлично помогите, когда я очень новичок в Access!)
Что я хочу сделать, так это возможность импортировать кучу полей документов Word/форм в MS Access с помощью диалогового окна Open/Select file ... у меня есть работы, но я хотел бы облегчить работу!
Спасибо всем Джейк
##### Коды Я используюOption Compare Database
Option Explicit
Private Sub cmdFileDialog_Click()
' This requires a reference to the Microsoft Office 11.0 Object Library.
Dim fDialog As Office.FileDialog
Dim varFile As Variant
Dim appWord As Word.Application
Dim doc As Word.Document
' Dim cnn As New ADODB.Connection
' Dim rst As New ADODB.Recordset
Dim strDocName As String
Dim blnQuitWord As Boolean
' Clear the list box contents.
' Me.FileList.RowSource = ""
' Set up the File dialog box.
Set fDialog = Application.FileDialog(msoFileDialogFilePicker)
With fDialog
' Allow the user to make multiple selections in the dialog box.
.AllowMultiSelect = True
' Set the title of the dialog box.
.Title = "Select One or More Files"
' Clear out the current filters, and then add your own.
.Filters.Clear
.Filters.Add "Microsoft Word", "*.DOC"
.Filters.Add "All Files", "*.*"
' Show the dialog box. If the .Show method returns True, the
' user picked at least one file. If the .Show method returns
' False, the user clicked Cancel.
If .Show = True Then
' Loop through each file that is selected and then add it to the list box.
For Each varFile In .SelectedItems
' Me.FileList.AddItem varFile
Set appWord = GetObject(, "Word.Application")
Set doc = appWord.Documents.Open(varFile)
' cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
' "Data Source=M:\Medical\GPAppraisal\Contacts & Databases\" & _
' "AppForm.mdb;"
' rst.Open "tbl_Applicants", cnn, _
' adOpenKeyset, adLockOptimistic
' With rst
.addnew
!Title = doc.FormFields("wTitle").Result
!FirstName = doc.FormFields("wFirstName").Result
!LastName = doc.FormFields("wLastName").Result
!Address1 = doc.FormFields("wAddress1").Result
!Address2 = doc.FormFields("wAddress2").Result
!Address3 = doc.FormFields("wAddress3").Result
!City = doc.FormFields("wCity").Result
!PostCode = doc.FormFields("wPostCode").Result
!Email = doc.FormFields("wEmail").Result
!Phone1 = doc.FormFields("wPhone1").Result
!Phone2 = doc.FormFields("wPhone2").Result
!LM = doc.FormFields("wLM").Result
!LMAddress1 = doc.FormFields("wLMAddress1").Result
!LMAddress2 = doc.FormFields("wLMAddress2").Result
!LMAddress3 = doc.FormFields("wLMAddress3").Result
!LMCity = doc.FormFields("wLMCity").Result
!LMPostCode = doc.FormFields("wLMPostCode").Result
!LMEmail = doc.FormFields("wLMEmail").Result
!LMPhone = doc.FormFields("wLMPhone").Result
!LMOK = doc.FormFields("wLMOK").Result
!Probity = doc.FormFields("wProbity").Result
!Practising = doc.FormFields("wPractising").Result
!Signature = doc.FormFields("wSignature").Result
!AppDate = doc.FormFields("wAppDate").Result
!e2011012028 = doc.FormFields("w2011012028").Result
!e2011021725 = doc.FormFields("w2011021725").Result
!e2011030311 = doc.FormFields("w2011030311").Result
!e2011031625 = doc.FormFields("w2011031625").Result
!e20110203 = doc.FormFields("w20110203").Result
!e20110211 = doc.FormFields("w20110211").Result
!e20110322 = doc.FormFields("w20110322").Result
!e20110330 = doc.FormFields("w20110330").Result
.Update
.Close
End With
doc.Close
If blnQuitWord Then appWord.Quit
cnn.Close
MsgBox "Application Imported!"
Cleanup:
' Set rst = Nothing
' Set cnn = Nothing
Set doc = Nothing
Set appWord = Nothing
Next
Else
MsgBox "You clicked Cancel in the file dialog box."
End If
End With
End Sub
#
Я пытался возиться с me.tables и мне формы и .Добавьте и т.д. и т.д. - очевидно, Я здесь полный новичок!
Я хочу, чтобы иметь возможность импортировать данные из полей формы в Word Doc в таблицу MS Access (что мне удалось сделать с первым URL в моем исходном сообщении выше); путем выбора документа Word из диалогового окна «Открыть/Выбрать», вместо того, чтобы вручную вводить имена каждого документа Word.
Приносим извинения, если это звучит очевидным или простым - доступ не является моей сильной стороной любым способом!
Можете ли вы дать нам шаг за шагом, что вы делаете? Кроме того, насколько вам комфортно с VB & VBA? Я спрашиваю, потому что решение, вероятно, потребует его скромного количества. – PowerUser
Итак, ваш вопрос о настройке диалога? Что бы вы хотели быть другим? – Asaf
Спасибо за все ваши быстрые ответы! –