我正在编写一个excel应用程序,它从Access数据库中提取工作.当用户打开Excel工具时,数据表需要从我创建的Access数据库中填充其中一个工作表.我一直在excel中编写VBA代码,我收到运行时错误:"429"ActiveX组件无法创建对象.
其他问题都是从Access编写的,但我相信我需要从Excel工作簿文件中编写此代码.我编写的代码在Workbook_Open()
函数中,以便在用户打开文件时收集数据.非常感谢你的帮助.顺便说一句,我正在使用Access 2007和Excel 2010.
Private Sub Workbook_Open()
'Will fill the first listbox with data from the Access database
Dim DBFullName As String
Dim TableName As String
Dim FieldName As String
Dim TargetRande As String
DBFullName = "D:\Tool_Database\Tool_Database.mdb"
Dim db As DAO.Database, rs As Recordset
Dim intColIndex As Integer
Set TargetRange = Range("A1")
Set db = OpenDatabase(DBFullName)
Set rs = db.OpenRecordset("SELECT * FROM ToolNames WHERE Item = 'Tool'", dbReadOnly)
' Write the field names
For intColIndex = 0 To …
Run Code Online (Sandbox Code Playgroud) 我已经在这个问题上搜索了很多,我尝试了很多东西.实际上,我需要让用户保存为msoFileDialogSaveAs
过滤器中不可用的自定义类型.
我知道我可以保存为,*.txt
然后在保存之前更改扩展名.我做了这个并且它工作但是当用户在已经包含自定义类型的其他文件的文件夹中输入文件的名称时,用户将看不到现有的自定义文件列表,因为活动过滤器不属于该类型.
因此,我想知道是否有一种方法可以msoFileDialogFilePicker
通过键入文件的名称来保存为自定义类型.
这是可能的样子:
Function userFileSaveDialog_OneFilterOnly(iFilter As String, _
iExtension As String, _
Optional iTitle As String)
With Application.FileDialog(msoFileDialogFilePicker) '(msoFileDialogSaveAs)
.Filters.Clear
.Filters.Add iFilter, iExtension
.AllowMultiSelect=False
.ButtonName "Save"
.Title = iTitle
If CBool(.Show) Then
userFileSaveDialog_OneFilterOnly = .SelectedItems(.SelectedItems.Count)
Else
End If
End With
End Function
Run Code Online (Sandbox Code Playgroud)
谢谢您的帮助!