objXL.Workbooks(1).FileFormat

azlan

Registered User.
Local time
, 17:03
Joined
Aug 14, 2014
Messages
39
Hi there,
I have this code;
Code:
Private Sub Command51_Click()

 'Lets get the file name
    'Debug.Print "Getting File Name"
    'Declare a variable as a FileDialog object.
    Dim fd As FileDialog
    Dim Exceltype As Integer
    Dim objXL As Excel.Application
        'Set the starting look location
    Dim strComPath As String
    strComPath = "C:\Users\hakki.bulut\Desktop\Envanter Kayıtları\import data from excel\"
    Dim strFilePath As String
    'Create a FileDialog object as a File Picker dialog box.
    Set fd = Application.FileDialog(msoFileDialogFilePicker)

    'Declare a variable to contain the path
    'of each selected item. Even though the path is a String,
    'the variable must be a Variant because For Each...Next
    'routines only work with Variants and Objects.
    Dim vrtSelectedItem As Variant

    'Use a With...End With block to reference the FileDialog object.
    With fd
        .InitialFileName = strComPath
        .AllowMultiSelect = False
        .Filters.Clear
        'Add filter to only show excel files.
        '.Filters.Add "Excel files", "*.xls", 1
        'Use the Show method to display the File Picker dialog box and return the user's action.
        'The user pressed the action button.
        If .Show = -1 Then
                strFilePath = .SelectedItems(1)
            'Step through each string in the FileDialogSelectedItems collection.
            'For Each vrtSelectedItem In .SelectedItems

                'vrtSelectedItem is a String that contains the path of each selected item.
                'You can use any file I/O functions that you want to work with this path.
                'This example simply displays the path in a message box.
             '   strFilePath: " & vrtSelectedItem

            'Next vrtSelectedItem
    


        Else
            'The user pressed Cancel.
            DoCmd.Hourglass (False)
            MsgBox "Bir Excel dosyası seçmelisiniz", vbOKOnly + vbExclamation, "No file Selected, exiting"
            Set fd = Nothing
            Exit Sub
        End If
     End With
     Set objXL = New Excel.Application
    objXL.Workbooks.Open strFilePath
    Debug.Print objXL.Workbooks(1).FileFormat
    Exceltype = DetermineVersion(objXL.Workbooks(1).FileFormat)
    
    Debug.Print Exceltype
    objXL.Quit
    Set objXL = Nothing
     
     DoCmd.TransferSpreadsheet acImport, Exceltype, "tblTemp", strFilePath, True
    
     Set fd = Nothing

 CurrentDb.Execute "AppendSayimQ"
 'MsgBox "Append den sonra "
 CurrentDb.Execute "DELETE * FROM [tblTemp] "
 'MsgBox "delet ten sonra "
 Set fd = Nothing
End Sub
and objXL.Workbooks(1).FileFormat supposed to return
value of acSpreadsheetType which is 0,5,8,6 but when I debug run step by step I get 56 for .xls , which supposed to be 5
Can anyone make a sense of it.
 
So, my function is wrong then???
Code:
Function DetermineVersion(intFileFormat As Integer) As Integer
Select Case intFileFormat
        Case xlExcel9795
            DetermineVersion = acSpreadsheetTypeExcel97
        Case xlExcel7
            DetermineVersion = acSpreadsheetTypeExcel7
        Case xlExcel5
            DetermineVersion = acSpreadsheetTypeExcel5
        Case xlExcel4Workbook
            DetermineVersion = acSpreadsheetTypeExcel4
        Case xlExcel4
            DetermineVersion = acSpreadsheetTypeExcel4
        Case xlExcel3
            DetermineVersion = acSpreadsheetTypeExcel3
        Case Else
            DetermineVersion = acSpreadsheetTypeExcel3 ' and hope it works...
    End Select
End Function
 
It works on my computer with

Function DetermineVersion(intFileFormat As Integer) As Integer
Select Case intFileFormat
Case xlExcel9795
DetermineVersion = acSpreadsheetTypeExcel97
Case xlExcel7
DetermineVersion = acSpreadsheetTypeExcel7
Case xlExcel5
DetermineVersion = acSpreadsheetTypeExcel5
Case xlExcel4Workbook
DetermineVersion = acSpreadsheetTypeExcel4
Case xlExcel4
DetermineVersion = acSpreadsheetTypeExcel4
Case xlExcel3
DetermineVersion = acSpreadsheetTypeExcel3
Case xlOpenXMLWorkbook
DetermineVersion = acSpreadsheetTypeExcel12
Case Else
DetermineVersion = acSpreadsheetTypeExcel3 ' and hope it works...
End Select
End Function
 
Ok I got it. I added
Case xlOpenXMLWorkbook
DetermineVersion = acSpreadsheetTypeExcel12Xml
and it works now.
 

Users who are viewing this thread

Back
Top Bottom