| 
     サンプル投稿用掲示板  VB2005 〜 用トップページ  VB6.0 用 トップページ
日時: 2010/01/07 13:48
名前: 花ちゃん
 
 ************************************************************************************ カテゴリー:[エクセル][データベース][]                                          *
 * キーワード:,,,,,                                                               *
 ***********************************************************************************
 
 ----------------------------------------------------------------------------
 投稿時間:2002/11/07(Thu) 21:27   No.1295
 投稿者名:魔界の仮面弁士
 タイトル:Re: VB6.0からEXCEL97へのデータ入力でのエラーについて
 ----------------------------------------------------------------------------
 
 > 上記環境にて、別のプログラムで作成した複数CSVファイルを
 > 一つのブックの複数シートに入力しようと考えています。
 
 ADOと、Jet用OLE DB Provider 4.0を使って作成する方法もあります。
 (この方法だとは、Excelがインストールされていない環境でも作成できます)
 
 Option Explicit
 
 Private Sub Form_Load()
 Dim strWorkName As String
 Dim strCSVFolder As String
 Dim strCSVName As String
 Dim strExcelFileFullPath As String
 Dim Cn As ADODB.Connection
 Dim SQL As String
 
 strCSVFolder = "C:\USER\"
 strWorkName = "~tmpVB.dat"
 strExcelFileFullPath = "C:\USER\Excel.xls"
 
 If Dir(strExcelFileFullPath) <> "" Then
 Kill strExcelFileFullPath
 End If
 With CreateObject("ADOX.Catalog")
 .Create "Provider=Microsoft.Jet.OLEDB.4.0;" _
 & "Data Source=" & strCSVFolder & strWorkName
 End With
 
 Set Cn = New ADODB.Connection
 Cn.Provider = "Microsoft.Jet.OLEDB.4.0"
 Cn.Open strCSVFolder & strWorkName
 
 strCSVName = Dir(strCSVFolder & "*.csv")
 Do Until strCSVName = ""
 SQL = "SELECT * INTO ["
 SQL = SQL & "Excel 8.0;Database=" & strExcelFileFullPath
 SQL = SQL & "].["
 SQL = SQL & Replace(strCSVName, ".", "_")
 SQL = SQL & "] FROM ["
 SQL = SQL & "text;HDR=NO;FMT=Delmited;Database=" & strCSVFolder
 SQL = SQL & "].[" & strCSVName & "]"
 
 Cn.Execute SQL
 
 strCSVName = Dir()
 Loop
 Cn.Close
 Set Cn = Nothing
 End Sub
 
  |