ACCESSでアプリ開発をしています。
2000個ほどの、EXCELファイルの中から、シートをIMPORTしていますが、
ものすごく時間がかかっています。
EXCELシートからの取り込みに関して、もっと良い方法があれば教えていただきたいのですが
現状のソースを下記に示します。
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel12Xml, strTblName, strPath, True, sheet & "!"
vb
1 2Public TableNames As Collection 3Private qdf As DAO.QueryDef 4Dim myRS As DAO.Recordset 5Private sql As String 6Private xlPath As String 7 8Public Sub tablename() 9Dim FSO As FileSystemObject 10Dim filenum As Variant 11Dim table As Variant 12Dim FIO As ClsFileIO 13Set FIO = New ClsFileIO 14Dim bar As Variant: Set bar = New clsProgressBar 15Dim count_all 16Dim count 17count_all = TableNames.count 18 19For Each filenum In TableNames 20With filenum 21Dim tbln 22tbln = StrConv(.tbl, 4) 23FIO.Import .Path & "\" & .File, "Lot結果", "Lot結果" 24bar.UpdateProgress count, count_all, filenum.File, Form_frmProgressBar 25count = count + 1 26End With 27Next 28 29End Sub 30 31 32 33Public Sub Import(strPath As Variant, strTblName As Variant, sheet As Variant) 34On Error GoTo err 35 36Select Case OdbcSelect(strPath) 37Case ACCESS 38 DoCmd.TransferDatabase acImport, "Microsoft Access", _ 39 strPath, acTable, strTblName, strTblName 40 Exit Sub 41 42Case EXCEL 43DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel12Xml, strTblName, strPath, True, sheet & "!" 44 45 Exit Sub 46Case Else 47End Select 48 49err: MsgBox "テーブル構造が違います" 50 51End Sub 52 53
読み込むシートは下記のようなデータで、400行程度です。
L1シートNo 基板連番 YMP測定No 個片No NG判定 ブロックNo
10311M87U010254 1 1 1 4WNG #N/A
10311M87U010254 1 2 28 4WNG #N/A
10311M87U010254 1 3 55 4WNG #N/A
10311M87U010254 1 4 82 4WNG #N/A
10311M87U010254 1 5 2 4WNG #N/A
10311M87U010254 1 7 56 4WNG #N/A
10311M87U010254 1 8 83 4WNG #N/A
10311M87U010254 1 15 58 4WNG #N/A
10311M87U010254 1 16 85 4WNG #N/A
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/10/30 02:42
2018/10/30 02:49 編集
2018/10/30 04:13
2018/10/30 04:30 編集
2018/10/30 04:42