データの取り込み
VB6.0 SQLSERVER で開発しています。
EXCELにあるデータをSQLへ取り込みたいのですが
下記のようにすると取り込めるのですが
EXCELに空白があるとエラーが出ます。
教えてください。
Dim strSQL As String
Dim adoRsWork As ADODB.RecordSet
Dim exl As Object
Dim i As Integer
Dim k As Long
Dim mds As Boolean
Dim rs As Variant
Dim j As Integer
Dim s As String
Dim ct As Long
Dim fno As Integer
Dim fnm As String
strSel1 = "SELECT"
strSel1 = strSel1 & " A.品番"
strSel1 = strSel1 & ",A.品名"
strSel1 = strSel1 & ",A.倉番"
strSel1 = strSel1 & ",A.数量"
strFro1 = " FROM "
strFro1 = strFro1 & " A_zaiko AS A"
strSQL = strSel1 & " " & strFro1
Debug.Print (strSQL)
Set adoRsWork = pbAdo.OpenRecordset(strSQL)
Set exl = CreateObject("Excel.Sheet")
mds = True
fnm = "C:\Documents and Settings\デスクトップ\159.xls"
j = adoRsWork.Fields.Count - 1
ReDim ctyp(j) As Boolean
For i = 0 To j
Select Case adoRsWork(i).Type
Case 131, 139
ctyp(i) = True
Case Else
ctyp(i) = False
End Select
Next
adoRsWork.Close
Set exl = CreateObject("Excel.Application")
exl.Application.Visible = True
exl.Application.Workbooks.Open FileName:=fnm
k = 1
If mds Then
k = 2
End If
gSvrADOActiveconnection.BeginTrans
On Error Resume Next
For k = k To 65536
s = ""
If exl.Cells(k, 1) = "" Then Exit For
For i = 0 To j
If ctyp(i) Then
s = s & "," & exl.Cells(k, i + 1)
Else
s = s & ",'" & exl.Cells(k, i + 1) & "'"
End If
Next
s = Mid(s, 2)
strSQL = "insert into " & strFro1 & " values (" & s & ")"
pbAdo.OpenRecordset (strSQL)
If Err <> 0 Then
gSvrADOActiveconnection.RollbackTrans
Close fno
adoRsWork.Close
MsgBox "更新エラー" & Chr(10) & Err & ": " & Error _
& Chr(10) & ct + 1 & " 件目に問題あり" _
& Chr(10) & strSQL
End
End If
ct = ct + 1
Next
gSvrADOActiveconnection.CommitTrans
On Error GoTo 0
exl.Application.DisplayAlerts = False
exl.Application.Quit
adoRsWork.Close
補足
ありがとうございます。 エクセルのクローズ処理をを下記一行で行いました。結果は 'コンパイルエラー SubまたはFunctionが定義されていません とエラーになりました。 この処理はEXCEL.EXEをクローズするための処理のような気がしますが、XXXX.XSL ファイルのみクローズするだけではだめなんでしょうか。 当面はプロシージャ内でオープン、クローズ処理するやり方にします。