Задача перенести из отчета Excel в чистый готовый файл dbf, с символьными полями и числовыми разобрался, не могу никак перенести даты в поле типа date dbf файла. Подмогите столько всего перепробовал ... не получается :(
' Создаем соединение с dbf ADO
' создаем объект соединения
Set cnn = CreateObject("ADODB.Connection")
' свойства соединения для работы с DBF
cnn.Provider = "Microsoft.Jet.OLEDB.4.0"
cnn.Mode = adModeReadWrite
cnn.Properties("Extended Properties") = "dBase IV"
cnn.Properties("Data Source") = Dir_PathDBF & "\"
'Set cnn = New ADODB.Connection
'cnn.Open "Driver={Microsoft dBASE Driver (*.dbf)};uid=;pwd=;database=" & def_dir & "\" & NewName1 & ";"
' открываем соединение
cnn.Open
Str = CInt(Sht_Par.Cells(3, 2).Value)
While Not IsEmpty(lst.Cells(Str, 1).Value)
Str = Str + 1
Wend
Strok = Str
Str = Sht_Par.Cells(3, 2).Value
While Not IsEmpty(Lst.Cells(Str, 1).Value)
eFIO = CStr(Left(Trim(Lst.Cells(Str, 1).Value), 55))
eTABN = CStr(Left(Trim(Lst.Cells(Str, 3).Value), 5))
eKOD_NACH = CStr(Left(Trim(Lst.Cells(Str, 4).Value), 3))
ePL_DAY = MyRound(CDbl(Lst.Cells(Str, 5).Value), 0, 0)
ePL_TIME = MyRound(CDbl(Lst.Cells(Str, 6).Value), 0, 0)
eDay = MyRound(CDbl(Lst.Cells(Str, 7).Value), 0, 0)
eTime = MyRound(CDbl(Lst.Cells(Str, 8).Value), 2, 0)
eOTDEL = Left(Trim(Lst.Cells(Str, 9).Value), 200)
eOKLAD = MyRound(CDbl(Lst.Cells(Str, 10).Value), 4, 0)
'If Trim(Lst.Cells(Str, 11).Value) <> "" Then
eDATAGR_N = Format(CDate(Trim(Lst.Cells(Str, 11).Value)), "dd/mm/yyyy")
'Else
' eDATAGR_N = Null
'End If
'If Trim(Lst.Cells(Str, 12).Value) <> "" Then
eDATAGR_K = Format(CDate(Trim(Lst.Cells(Str, 12).Value)), "dd/mm/yyyy")
'Else
' eDATAGR_K = Null
'End If
ePRIZNAK = CStr(Left(Trim(Lst.Cells(Str, 13).Value), 1))
SQL_Text = "INSERT INTO " & dirPath & NameNoXls & ".dbf " & "(FIO,TABN,KOD_NACH,PL_DAY,PL_TIME,DAY1,Time1,OTDEL,OKLAD,DATAGR_N,DATAGR_K,PRIZNAK) VALUES (" & Chr(34) & eFIO & Chr(34) & "," & Chr(34) & eTABN & Chr(34) & "," & Chr(34) & eKOD_NACH & Chr(34) & "," & ePL_DAY & "," & ePL_TIME & "," & eDay & "," & eTime & "," & Chr(34) & eOTDEL & Chr(34) & "," & eOKLAD & "," & eDATAGR_N & "," & eDATAGR_K & "," & Chr(34) & ePRIZNAK & Chr(34) & ")"
Sht_Protocol.Cells(1, 1) = SQL_Text
cnn.Execute SQL_Text
progress = 100 * (Str - Sht_Par.Cells(3, 2).Value - 1) / Strok
Application.StatusBar = "Идет заполнение данных dbf файла. Выполнено: " & Int(progress) & " %"
Str = Str + 1
DoEvents
Wend
' Закрываем соединение
cnn.Close
Ответить
|