簡體   English   中英

如何使用SQL Server后端從MS Access前端導入新數據

[英]How to Import New Data from MS Access Front End with SQL Server back end

  • 你好,

我需要找到一種將新數據導入數據庫的方法,該數據庫包括一個SQL Server后端和一個MS Access 2010前端,該前端具有從前端到后端的鏈接表。

理想情況下,這將涉及用戶單擊前端表單上的按鈕,然后選擇要導入新數據的excel電子表格,然后將其保存在后端SQL Server表中。

我已經在要導入的Excel電子表格中創建了一個vba模塊。 代碼是:

Public Function ExcelPicker(Optional strFileName As String, _
    Optional ByVal strWindowTitle As String = "Select an excel file") As String

    Dim fd As Office.FileDialog

    'Set fd = Application.FileDialog(msoFileDialogFolderPicker)
    Set fd = Application.FileDialog(msoFileDialogFilePicker)

    With fd
        .Title = strWindowTitle
        .Filters.Add "All files", "*.*", 1
        .Filters.Add "Excel Workbooks", "*.xls;*.xlsx;*.xlsm", 2
        .AllowMultiSelect = False
        If .Show = -1 Then
            FilePicker = (.SelectedItems(1))
        Else
            FilePicker = vbNullString
        End If
    End With
    Set fd = Nothing
End Function

然后,我在MS Access 2010前端上創建了一個導入按鈕,並在OnClick事件中輸入了代碼:

Private Sub cmdImportFilterResults_Click()

Dim sExcelFile As String
Set sExcelFile = Application.FileDialog(msoFileDialogFilePicker)
'' if sExcelFile is not blank then
'' import the file to MSSQL linked table
If sExcelFile <> "" Then
    DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel12Xml, "[Database].Table_Result", sExcelFile, True
End If
End Sub

但是,當我單擊前端的導入按鈕時,沒有任何反應。 我的代碼或解決方案出了什么問題?

這是一個工作示例:

Private Sub cmdImportFilterResults_Click()
    Dim strWindowTitle As String
    Dim objDialog As Object
    Dim sExcelFile As String

    strWindowTitle = "Select an excel file"
    Set objDialog = Application.FileDialog(msoFileDialogFilePicker)
    With objDialog
        .Title = strWindowTitle
        .Filters.Add "Excel Workbooks", "*.xls;*.xlsx;*.xlsm", 1
        .AllowMultiSelect = False
        .Show
        If .SelectedItems.Count = 0 Then
            MsgBox "No File Selected."
        Else
            sExcelFile = Dir(.SelectedItems(1))
        End If
    End With
    ' if sExcelFile is not blank then
    ' import the file to MSSQL linked table
    If sExcelFile <> "" Then
        DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel12Xml, "[Database].Table_Result", sExcelFile, True
    End If
End Sub

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM