MS Access 2003中 - Access窗体上嵌入Excel电子表格
-
23-09-2019 - |
题
让我们说我有一个Microsoft Access窗体上的嵌入Excel电子表格。我调用对象帧
ExcelFrame
和我称为在窗体上添加文本框
txtA1
和我添加称为表单上的按钮
cmdInsert
我想输入的“Hello World”的文本框中,单击该按钮,让它出现在该电子表格的A1单元格。 VBA做什么,我用它来完成呢?
由于
解决方案
可以自动化Excel,写值到工作表中,然后更新该对象帧。
Private Sub cmdInsert_Click()
Dim strPath As String
Dim oExcel As Object
Dim oSheet As Object
Set oExcel = CreateObject("Excel.Application")
oExcel.Visible = True
strPath = Me.ExcelFrame.SourceDoc
'Debug.Print strPath '
oExcel.Workbooks.Open strPath
Set oSheet = oExcel.ActiveSheet
'Debug.Print oSheet.Name '
oSheet.Range("A1").Value = Me.txtA1
oExcel.ActiveWorkbook.Save
oExcel.Quit
Set oSheet = Nothing
Set oExcel = Nothing
'acOLEUpdate action requires Enabled = True '
'and Locked = False '
Me.ExcelFrame.Enabled = True
Me.ExcelFrame.Locked = False
Me.ExcelFrame.Action = acOLEUpdate
Me.txtA1.SetFocus
Me.ExcelFrame.Enabled = False
Me.ExcelFrame.Locked = True
End Sub
修改强>:这个例子是基于外部工作簿文件是的联强>作为源的形式的对象帧。
要链接的工作表,选择“从文件创建的”单选按钮,勾选“链接的”复选框,并浏览,选择工作簿。这就是我与Access 2007年做到了。我记得的方式,它与Access 2003中
相似其他提示
这是永远不会太晚了吧?
提供您已经创建Excel对象(如在OP):
Dim wb As Excel.Workbook, ws As Excel.Worksheet
Set wb = Me.ExcelFrame.Object
Set ws = wb.Worksheets(1)
ws.range("a1")= "Hello world"
请注意,此代码需要VBA到MS Excel的引用。
不隶属于 StackOverflow