Я попытался прочитать Excel, используя ссылку на библиотеку Excel в VB6.0.
Поскольку мастер импорта служб SSIS обрабатывает NUMERIC как NULL, когда данные экспортируются в таблицу SQL.
Эта процедура очень хорошо работает для вставки данных, а также для других операций с базой данных.
Личный Sub AccessExcelData ()
При ошибке GoTo errHandler
Dim oXLApp As Excel.Application'Объявление переменной объекта
Dim oXLBook As Excel.Workbook
Dim oXLSheet As Excel.worksheet
Dim strFileName As String
Dim lCount As Long
Dim strSCDName As String
Dim strICDName As String
Dim intSource_Index As Integer
Dim strInput_Port As String
Dim strLabel As String
Dim strSDI_CID As String
Dim intWordBitNO As Integer
Dim strFilter_Type As String
Dim strPgroup_Input As String
Dim strParagraph_Input As String
Dim strSQL As String
Dim sConnString As String
Dim cnTest As New ADODB.Connection
Dim rsTempRecordset As New ADODB.Recordset
Dim objDataAccess As New FmmtDataAccess.clsDataAccess
Dim strxmlResult As String
objDataAccess.Intialize ConString
strFileName = App.Path & "\ IODE.xls"
sConnString = "Сервер = uasql \ commonsql; База данных = учетные записи; Драйвер = SQL Server; Trusted_Connection = Да; DSN = uasql \ commonsql"
С помощью cnTest
.ConnectionString = sConnString
.ConnectionTimeout = 4
.CursorLocation = adUseClient
.Open
Конец
'Создание части листа Excel.
Set oXLApp = CreateObject ("Excel.Application")
«Создать новый экземпляр Excel
oXLApp.Visible = False
«Не показывать это пользователю
Set oXLBook = oXLApp.Workbooks.Open (strFileName) 'Открыть существующую книгу
Set oXLSheet = oXLBook.Worksheets (1) 'Работа с первым рабочим листом oXLSheet.Activate
с oXLApp
Для lCount = 2 Для oXLSheet.UsedRange.Rows.Count
strSCDName = .Cells (lCount, 1). Значение
strICDName = .Cells (lCount, 2) .Value
intSource_Index = .Cells (lCount, 3). Значение
strInput_Port = .Cells (lCount, 4). Значение
strLabel = .Cells (lCount, 5). Значение
strSDI_CID = .Cells (lCount, 6). Значение
intWordBitNO = .Cells (lCount, 7). Значение
strFilter_Type = .Cells (lCount, 8). Значение
strPgroup_Input = .Cells (lCount, 9). Значение
strParagraph_Input = .Cells (lCount, 10). Значение
'strSQL = "Вставить в значения XYX () (strSCDName .....) Здесь могут использоваться любые связанные с БД запросы
rsTempRecordset.Open strSQL, cnTest, adOpenForwardOnly, adLockReadOnly Next
Конец
Заключительная часть листа Excel.
oXLApp.Visible = False 'Donot Показать его пользователю
Set oXLSheet = Nothing 'отключить от всех объектов Excel (разрешить пользователю)
oXLBook.Close SaveChanges: = False 'Сохранить (и отключить) рабочую книгу
Установить oXLBook = ничего
oXLApp.Quit 'Закрыть (и отключиться от) Excel
Set oXLApp = Nothing
Выход из SuberrHandler:
MsgBox Err.Description
Screen.MousePointer = vbNormalEnd Sub
С помощью этой процедуры записи Excel можно читать из приложения vb и вставлять в существующую таблицу в базе данных SQL.
Спасибо
Рамм