Option ExplicitImplements IDTExtensibility2Dim WithEvents appHostApp As Word.Application Dim WithEvents cbbButton As Office.CommandBarButtonPrivate Sub cbbButton_Click(ByVal Ctrl As Office.CommandBarButton, CancelDefault As Boolean) Dim conn As New ADODB.Connection Dim rs As New ADODB.Recordset Dim strSQl As String
Dim sel As Word.Selection
Dim strWordText As String '用于要复制到WORD中的数据库数据。这里只是用于测试。 '打开ACCESS数据库 With conn If conn.State = adStateOpen Then conn.Close .ConnectionString = "provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\test.mdb;Mode=ReadWrite;Persist Security Info=False" .Open End With strSQl = "select * from test" Set rs = conn.Execute(strSQl)
'判断ACCESS中是否拥有数据。 If Not rs.EOF And Not rs.BOF Then strWordText = rs(0) '将要复制到WORD中的数据
Set sel = appHostApp.Selection '将数据写到当前word中(光标所在处) sel.InsertAfter strWordText Else MsgBox ("没有你需要的数据!") Exit Sub End If
rs.Close Set rs = Nothing conn.Close Set conn = Nothing
End SubPrivate Sub IDTExtensibility2_OnAddInsUpdate(custom() As Variant)End SubPrivate Sub IDTExtensibility2_OnBeginShutdown(custom() As Variant)End SubPrivate Sub IDTExtensibility2_OnConnection(ByVal Application As Object, ByVal ConnectMode As AddInDesignerObjects.ext_ConnectMode, ByVal AddInInst As Object, custom() As Variant) Set appHostApp = New Word.Application Set cbbButton = CreateBar() End Sub Private Sub IDTExtensibility2_OnDisconnection(ByVal RemoveMode As AddInDesignerObjects.ext_DisconnectMode, custom() As Variant) ' RemoveToolbar ' 移除要关闭的引用 Set appHostApp = Nothing Set cbbButton = Nothing End SubPrivate Sub IDTExtensibility2_OnStartupComplete(custom() As Variant) ' End SubPrivate Sub objApp_ItemSend(ByVal Item As Object, Cancel As Boolean)
End Sub Private Sub objResetBar_Click(ByVal Ctrl As Office.CommandBarButton, CancelDefault As Boolean)
End Sub '增加按扭 Public Function CreateBar() As Office.CommandBarButton
' 添加命令条 Dim cbcMyBar As Office.CommandBar Dim btnMyButton As Office.CommandBarButton On Error GoTo CreateBar_Err Set cbcMyBar = appHostApp.CommandBars.Add(Name:="Custom", Position:=msoBarTop, Temporary:=True) ' 指定命令条按钮 Set btnMyButton = cbcMyBar.Controls.Add(Type:=msoControlButton, Parameter:="增加数据") With btnMyButton .Style = msoButtonCaption .BeginGroup = True .Caption = "从数据库中选择数据" .ToolTipText = "测试!" .Width = "200" End With ' 显示并返回命令条 cbcMyBar.Visible = True Set CreateBar = btnMyButton 'MsgBox ("成功") Exit Function
CreateBar_Err: MsgBox Err.Number & vbCrLf & Err.Description End Function '删除部分 Private Function RemoveToolbar() appHostApp.CommandBars("Custom").Delete End Function
Dim WithEvents cbbButton As Office.CommandBarButtonPrivate Sub cbbButton_Click(ByVal Ctrl As Office.CommandBarButton, CancelDefault As Boolean)
Dim conn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim strSQl As String
Dim sel As Word.Selection
Dim strWordText As String '用于要复制到WORD中的数据库数据。这里只是用于测试。 '打开ACCESS数据库
With conn
If conn.State = adStateOpen Then conn.Close
.ConnectionString = "provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\test.mdb;Mode=ReadWrite;Persist Security Info=False"
.Open
End With
strSQl = "select * from test"
Set rs = conn.Execute(strSQl)
'判断ACCESS中是否拥有数据。
If Not rs.EOF And Not rs.BOF Then
strWordText = rs(0) '将要复制到WORD中的数据
Set sel = appHostApp.Selection '将数据写到当前word中(光标所在处)
sel.InsertAfter strWordText Else
MsgBox ("没有你需要的数据!")
Exit Sub
End If
rs.Close
Set rs = Nothing
conn.Close
Set conn = Nothing
End SubPrivate Sub IDTExtensibility2_OnAddInsUpdate(custom() As Variant)End SubPrivate Sub IDTExtensibility2_OnBeginShutdown(custom() As Variant)End SubPrivate Sub IDTExtensibility2_OnConnection(ByVal Application As Object, ByVal ConnectMode As AddInDesignerObjects.ext_ConnectMode, ByVal AddInInst As Object, custom() As Variant)
Set appHostApp = New Word.Application
Set cbbButton = CreateBar()
End Sub
Private Sub IDTExtensibility2_OnDisconnection(ByVal RemoveMode As AddInDesignerObjects.ext_DisconnectMode, custom() As Variant)
'
RemoveToolbar
' 移除要关闭的引用
Set appHostApp = Nothing
Set cbbButton = Nothing
End SubPrivate Sub IDTExtensibility2_OnStartupComplete(custom() As Variant)
'
End SubPrivate Sub objApp_ItemSend(ByVal Item As Object, Cancel As Boolean)
End Sub
Private Sub objResetBar_Click(ByVal Ctrl As Office.CommandBarButton, CancelDefault As Boolean)
End Sub
'增加按扭
Public Function CreateBar() As Office.CommandBarButton
' 添加命令条
Dim cbcMyBar As Office.CommandBar
Dim btnMyButton As Office.CommandBarButton On Error GoTo CreateBar_Err Set cbcMyBar = appHostApp.CommandBars.Add(Name:="Custom", Position:=msoBarTop, Temporary:=True) ' 指定命令条按钮
Set btnMyButton = cbcMyBar.Controls.Add(Type:=msoControlButton, Parameter:="增加数据")
With btnMyButton
.Style = msoButtonCaption
.BeginGroup = True
.Caption = "从数据库中选择数据"
.ToolTipText = "测试!"
.Width = "200"
End With ' 显示并返回命令条
cbcMyBar.Visible = True
Set CreateBar = btnMyButton
'MsgBox ("成功")
Exit Function
CreateBar_Err:
MsgBox Err.Number & vbCrLf & Err.Description
End Function
'删除部分
Private Function RemoveToolbar()
appHostApp.CommandBars("Custom").Delete
End Function
但是放在结束执行就不行,不知道为什么