Использование встроенных функций DAO в Access для экспорта в Excel, но если для типа данных в столбце таблицы Access задано значение int, столбец будет пустым в Excel. Если перед запуском функции я установил тип данных на короткий текст, данные будут экспортированы правильно. Что здесь происходит?
Это моя функция экспорта:
Private Sub export_Click()
If IsNull(DLookup("Name", "MSysObjects", "Name='tbl_final_output'")) Then
MsgBox ("Ingen fundne spilletider til eksport.")
Else
Dim sortChoice As Integer
Dim xlApp As New Excel.Application
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.Worksheet
Dim db As DAO.Database
Dim rsLabel As DAO.Recordset
Dim rsData As DAO.Recordset
Dim strSQL As String
Dim lngLoop1 As Long
Dim lngCount As Long
Dim faneblad As String
Set db = DBEngine(0)(0)
sortChoice = Me.sortBox.Value
Select Case sortChoice
Case 1
faneblad = "Track-ID"
Case 2
faneblad = "Gramex-ID"
Case 3
faneblad = "Producer No_"
Case 4
faneblad = "Label no_"
Case 5
faneblad = "Organization No_"
End Select
strSQL = "SELECT DISTINCT [" & faneblad & "] FROM tbl_final_output ORDER BY [" & faneblad & "] ASC;"
Set rsLabel = db.OpenRecordset(strSQL)
If Not (rsLabel.BOF And rsLabel.EOF) Then
Set xlBook = xlApp.Workbooks.Add
Do
Set xlSheet = xlBook.Worksheets.Add(After:=xlBook.Worksheets(xlBook.Worksheets.Count))
xlSheet.Name = rsLabel(faneblad)
strSQL = "SELECT * FROM tbl_final_output WHERE [" & faneblad & "]=" & "'" & rsLabel(faneblad) & "'"
Set rsData = db.OpenRecordset(strSQL)
For cols = 0 To rsData.Fields.Count - 1
xlSheet.Cells(1, cols + 1).Value = rsData.Fields(cols).Name
Next
If Not (rsData.BOF And rsData.EOF) Then
xlSheet.Range("A2").CopyFromRecordset rsData
End If
rsLabel.MoveNext
Loop Until rsLabel.EOF
lngCount = xlBook.Worksheets.Count
For lngLoop1 = lngCount To 1 Step -1
If Left(xlBook.Worksheets(lngLoop1).Name, 5) = "Sheet" Then
xlBook.Worksheets(lngLoop1).Delete
End If
Next lngLoop1
xlBook.Worksheets(1).Delete
xlApp.Visible = True
End If
End If
End Sub