将数据从Access数据库拉到Word文档

时间:2013-11-18 06:58:02

标签: vba ms-word automation ms-access-2010 word-vba

我正在尝试将数据从Access数据库传输到Word文档中。我使用Excel执行了类似的过程,我需要使用Access而不是Excel来编写它。

Excel代码(类比为此)

Dim myworkbook As Excel.Workbook
Set myworkbook = GetObject("C:\Users\jn\Desktop\trial.xlsm")

然后

Dim excelstr As String
Excelstr = Application.Range("A1:A100").Find("aword").Offset(0,1).Value

我无法弄清楚如何使用Access执行此操作,我通过在表中查找字符串并使用某种偏移过程来查找找到的字符串旁边的字符串来获取数据。

1 个答案:

答案 0 :(得分:1)

我不知道Access中的表结构是什么......所以我会假设这样:

该表将命名为Table1 ...,其中包含2个字段Col1和Col2 ...以及您将搜索的值之一(您的示例“aword”)在Col1中,相应的结果将在Col2中。

以下是代码:

Public Function GetAccess(strData As String)
   Dim db As DAO.Database
   Dim rst As DAO.Recordset
   Dim strDB As String
   Dim strSQL As String
   Dim strResult As String

   'Change Table1, Col1, Col2 to your liking correspondingly
   strSQL = "Select Col2 from Table1 where Col1 = """ & strData & """"
   strDB = "C:\\Users\\jn\\Documents\\Trial.accdb"  'Change it to your database name

   Set db = OpenDatabase(strDB)
   Set rst = db.OpenRecordset(strSQL)
   If rst.RecordCount > 0 Then
      strResult = rst.Fields("Col2") 'Remember to change Col2 to your own Column name
   Else
      strResult = ""
   End If
   rst.Close
   db.Close

   Set rst = Nothing
   Set db = Nothing

   GetAccess = strResult
End Function

所以如果你想找到结果,这里是调用上述函数的代码:

Dim strResult As String

strResult = GetAccess("aword")