- 題名: Excel取り込みのスピードを上げる
- 日時: 2008/06/18 14:59:26
- ID: 22298
- この記事の返信元:
- (なし)
- この記事への返信:
- [22299] Re[1]: Excel取り込みのスピードを上げる2008/06/18 15:15:26
- ツリーを表示
エラーチェック内容も書いておきます 取り込み時、もし同じ商品があった場合、それを呼び出して実棚数を足して 更新するとしています Dim strMessage_ERR As String = "" Dim str_Sql As String = "" Dim str_Sql2 As String = "" Dim strK As String = "" Dim dsRow As DataRow Dim intLen As Int32 = 0 Dim intPoint As Int32 = 0 Dim strCHECK_JITTANA As String = "" Dim cdJITUTANA As Double = 0 READ_EXCEL_ERR = False '商品コードチェック --> If str_SYOHIN_CD <> "" Then 'A列が無ければ飛ばす '商品コードチェック --> If strMessage_ERR = "" Then Call TBL.C_SYOHIN(sdr2, CInt(str_SYOHIN_CD)) If Not sdr2.Read Then strMessage_ERR = "商品が存在しません" End If Call SQL_DataReader(sdr2, ActionModeEnum.UserClose) End If If strMessage_ERR = "" Then str_Sql = _ "Select " & _ "* " & _ "From " & _ "T_TANAOROSI With ( NoLock ) " & _ "Where " & _ "SYOHIN_CD = " & CInt(str_SYOHIN_CD) & Space(1) & _ "And INPUT_KBN = 0 " Call SQL_DataReader(sdr3, ActionModeEnum.UserOpen, str_Sql) If sdr3.Read Then strMessage_ERR = "マニュアル入力済みです" End If Call SQL_DataReader(sdr3, ActionModeEnum.UserClose) End If '商品コードチェック <-- '実棚数チェック --> '型チェック If strMessage_ERR = "" Then If IsNumeric(strJITTANA) = False Then strMessage_ERR = "実棚数 型が一致しません" End If End If '桁数チェック If strMessage_ERR = "" Then intLen = Len(strJITTANA) intPoint = strJITTANA.LastIndexOf(".") + 1 If intPoint <> 0 Then strCHECK_JITTANA = CStr(MC.CUT_STRING(strJITTANA, intPoint + 1, intLen, "")) If Len(strCHECK_JITTANA) > 1 Then strMessage_ERR = "実棚数 桁数オーバーです" End If End If End If If strMessage_ERR = "" Then strK = CStr(Math.Abs(CDbl(strJITTANA))) If Math.Abs(CDbl(strJITTANA)) >= 1000000 Then strMessage_ERR = "実棚数 桁数オーバーです" End If End If '実棚数チェック <-- 'エラー出力用 If strMessage_ERR <> "" Then dsRow = dsRpt2.Tables(strTable2).NewRow '商品コード dsRow("SYOHIN_CD") = str_SYOHIN_CD '品名 dsRow("SYOHIN_NM") = strSYOHIN_NM '実棚数 dsRow("JITTANA") = strJITTANA '原価 dsRow("GENKA") = strGENKA '売価 dsRow("BAIKA") = strBAIKA '合計 dsRow("GOKEI") = strGOKEI 'エラー内容 dsRow("ERR") = strMessage_ERR dsRpt2.Tables(strTable2).Rows.Add(dsRow) End If '取込用 If strMessage_ERR = "" Then If dsRpt.Tables(strTable).Select("SYOHIN_CD = '" & str_SYOHIN_CD & "'").Length = 0 Then '08.06.18 DEL dsRow = dsRpt.Tables(strTable).NewRow '商品コード dsRow("SYOHIN_CD") = str_SYOHIN_CD '実棚数 dsRow("JITTANA") = CDbl(strJITTANA) dsRpt.Tables(strTable).Rows.Add(dsRow) Else dsRow = dsRpt.Tables(strTable).Select("SYOHIN_CD = '" & str_SYOHIN_CD & "'")(0) cdJITUTANA = CDbl(dsRow("JITTANA")) dsRow("JITTANA") = cdJITUTANA + CDbl(strJITTANA) dsRow.AcceptChanges() End If End If End If
分類:[.NET]