小编sim*_*MAn的帖子

编写Excel VBA以从Access接收数据

我正在编写一个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)

excel ms-access vba excel-vba

10
推荐指数
1
解决办法
6万
查看次数

使用msoFileDialogFilePicker保存

我已经在这个问题上搜索了很多,我尝试了很多东西.实际上,我需要让用户保存为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)

谢谢您的帮助!

excel vba excel-vba

5
推荐指数
1
解决办法
2919
查看次数

标签 统计

excel ×2

excel-vba ×2

vba ×2

ms-access ×1