Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ms access MS Access窗体按钮,允许用户浏览/选择文件excel,然后将文件导入表_Ms Access_Vba - Fatal编程技术网

Ms access MS Access窗体按钮,允许用户浏览/选择文件excel,然后将文件导入表

Ms access MS Access窗体按钮,允许用户浏览/选择文件excel,然后将文件导入表,ms-access,vba,Ms Access,Vba,在我的窗体access中,我想制作一个按钮,用于浏览/选择excel文件,并将其导入access中的表格格式 这是我的密码 '需要引用Microsoft Office 15.0对象库。' Public Function ImportDocument() As TaskImportEnum On Error GoTo ErrProc Dim fd As FileDialog Set fd = Application.FileDialog(msoFileDialogFilePicker) Wit

在我的窗体access中,我想制作一个按钮,用于浏览/选择excel文件,并将其导入access中的表格格式

这是我的密码

'需要引用Microsoft Office 15.0对象库。'

Public Function ImportDocument() As TaskImportEnum
On Error GoTo ErrProc

Dim fd As FileDialog
Set fd = Application.FileDialog(msoFileDialogFilePicker)

With fd
    .InitialFileName = "Some folder"
    .Title = "Dialog Title"
    With .Filters
        .Clear
        .Add "xlsx documents", "*.xlsx", 1
    End With
    .ButtonName = " Import Selected "
    .AllowMultiSelect = False   'Change this to TRUE to enable multi-select

   'If aborted, the Function will return the default value of Aborted
    If .Show = 0 Then GoTo Leave
End With

Dim selectedItem As Variant
For Each selectedItem In fd.SelectedItems
    DoCmd.TransferText acImportDelim, "Raw Data from Import_ Import Specification", "Raw Data from Import", selectedItem, True, ""
Next selectedItem

ImportDocument = TaskImportEnum.Success

Leave:
Set fd = Nothing
On Error GoTo 0
Exit Function

ErrProc:
MsgBox err.Description, vbCritical
ImportDocument = TaskImportEnum.Failure  'Return Failure if error
Resume Leave
End Function

所讨论的代码是提供的解决方案的一部分。但是,由于提供的解决方案涉及CSV文件导入,因此需要进行一些更改


在标准模块中,粘贴以下内容:

Public Enum TaskImportEnum
    Aborted = 0 'default
    Success
    Failure
End Enum

Public Function ImportDocument() As TaskImportEnum
    On Error GoTo ErrProc

    Dim fd As FileDialog
    Set fd = Application.FileDialog(msoFileDialogFilePicker)

    With fd
        .InitialFileName = "Some folder"
        .Title = "Dialog Title"
        With .Filters
            .Clear
            .Add "Excel documents", "*.xlsx", 1
        End With
        .ButtonName = " Import Selected "
        .AllowMultiSelect = False   'Change this to TRUE to enable multi-select

       'If aborted, the Function will return the default value of Aborted
        If .Show = 0 Then GoTo Leave
    End With

    Dim selectedItem As Variant
    For Each selectedItem In fd.SelectedItems
        DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel12Xml, "YourTableName", selectedItem, True, "YourSheetName$" 'Change 'YourTableName' and 'YourSheetName' to the actual names
    Next selectedItem

   'Return Success
   ImportDocument = TaskImportEnum.Success

Leave:
    Set fd = Nothing
    On Error GoTo 0
    Exit Function

ErrProc:
    MsgBox Err.Description, vbCritical
    ImportDocument = TaskImportEnum.Failure  'Return Failure if error
    Resume Leave
End Function
Dim status_ As TaskImportEnum
    status_ = ImportDocument

Select Case status_
    Case TaskImportEnum.Success:
        MsgBox "Success!"

    Case TaskImportEnum.Failure:
        MsgBox "Failure..."

    Case Else:
        MsgBox "Aborted..."
End Select

在按钮的单击事件上粘贴以下内容:

Public Enum TaskImportEnum
    Aborted = 0 'default
    Success
    Failure
End Enum

Public Function ImportDocument() As TaskImportEnum
    On Error GoTo ErrProc

    Dim fd As FileDialog
    Set fd = Application.FileDialog(msoFileDialogFilePicker)

    With fd
        .InitialFileName = "Some folder"
        .Title = "Dialog Title"
        With .Filters
            .Clear
            .Add "Excel documents", "*.xlsx", 1
        End With
        .ButtonName = " Import Selected "
        .AllowMultiSelect = False   'Change this to TRUE to enable multi-select

       'If aborted, the Function will return the default value of Aborted
        If .Show = 0 Then GoTo Leave
    End With

    Dim selectedItem As Variant
    For Each selectedItem In fd.SelectedItems
        DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel12Xml, "YourTableName", selectedItem, True, "YourSheetName$" 'Change 'YourTableName' and 'YourSheetName' to the actual names
    Next selectedItem

   'Return Success
   ImportDocument = TaskImportEnum.Success

Leave:
    Set fd = Nothing
    On Error GoTo 0
    Exit Function

ErrProc:
    MsgBox Err.Description, vbCritical
    ImportDocument = TaskImportEnum.Failure  'Return Failure if error
    Resume Leave
End Function
Dim status_ As TaskImportEnum
    status_ = ImportDocument

Select Case status_
    Case TaskImportEnum.Success:
        MsgBox "Success!"

    Case TaskImportEnum.Failure:
        MsgBox "Failure..."

    Case Else:
        MsgBox "Aborted..."
End Select

那么问题到底是什么呢?问题是,当选择excel文件时,它不想导入,如果您有解决方案帮助,请选择meit不想导入的excel文件。请阅读并编辑相应的问题。目前,它可能会被关闭。会发生什么情况-错误消息、错误结果,什么都没有?问题是我不知道如何从文件对话框vba恢复路径,因为通常需要另一个代码将所选路径与文件对话框链接,请帮助我将excel文件导入access数据库中已经存在的表中。这是我的代码,我需要您的帮助。谢谢。以上操作应该可以。只需将“YourTableName”和“YourSheetName”更改为实际名称。错误是什么?是的,您是对的,只需告诉我我想将此文件导入数据库access中已存在的表中。请