Microsoft Access 掲示板

フォームからExcelファイルの一部分をインポートしたい / 21

27 コメント
views
21
PPP 2025/07/14 (月) 22:22:11 修正 50473@7267b >> 9

(4-2)実際に処理する部分となります

'※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
                      '1行ずつデータを読み込む
                      '読み込みする行は12行目から固定なので
                      'カウンター変数[i]は12から始まり、最後はエクセルデータを
                      '入力している最終行まで繰り返す
                      For i = 12 To myLastRow
                                                    
                          
                        '[コンボBOXの発注者ID]+[受注番号]+[No]を結合した管理番号を生成する
                        '例:[AA-1111-0001]
                        'この管理番号がACCESSのテーブルに登録された主キーとしての役目を持たせ
                        '重複して登録させない唯一の識別番号とさせる
                        unionFormatNo(0) = Me.cmb01.Column(1) & "-" & myOrderNo & "-" & Format(myXlWorksheet.Cells(i, 1).Value, "0000")
                          
                        '取り込み済みかを判定する
                        unionFormatNo(1) = Nz(DLookup("unionFormatNo", "orderCapture", "unionFormatNo ='" & unionFormatNo(0) & "'"), "Unregistered")
                          
                        'unionFormatNo(1)の値が"Unregistered"の時は登録する
                        '"Unregistered"でないときは、フォーマット形成した文字列が戻る為
                        'すでに登録済みとみなし、登録させない
                        If unionFormatNo(1) = "Unregistered" Then
                          
                              'セルA番地のNoがゼロの時は入力データなしのため
                              '取り込みしない。 ゼロより大きい値の時のみ取り込み開始
                              If myXlWorksheet.Cells(i, 1).Value <> 0 Then
                                    
                                  'ADO経由でエクセルデータの登録を開始する
                                  rs.AddNew
                                
                                      'エクセル番地の指定方法はCellsで指定する
                                      'Cells(行インデックス, 列インデックス)
                             
                                       cells_No = myXlWorksheet.Cells(i, 1).Value
                                      
                                       'セル番地[A11]の[No]の値を登録するテーブル
                                       rs!noX = myXlWorksheet.Cells(i, 1).Value

                                       'セル番地[B11]の[品番]の値を登録するテーブル
                                       rs!partNumber = myXlWorksheet.Cells(i, 2).Value
            
                                       'セル番地[C11]の[品名]の値を登録するテーブル
                                       rs!productName = myXlWorksheet.Cells(i, 3).Value
    
                                       'セル番地[D11]の[数量]の値を登録するテーブル
                                        rs!quantity = myXlWorksheet.Cells(i, 4).Value
            
                                        'セル番地[E11]の[単価]の値を登録するテーブル
                                        rs!UnitPrice = myXlWorksheet.Cells(i, 5).Value
            
                                        'セル番地[F11]の[金額]の値を登録するテーブル
                                        rs!Totalamount = myXlWorksheet.Cells(i, 6).Value:
            
                                        'セル番地[G11]の[納期]の値を登録するテーブル
                                        rs!dayOfDelivery = myXlWorksheet.Cells(i, 7).Value
            
                                        'セル番地[H11]の[発注者備考]の値を登録するテーブル
                                        rs!remarks = myXlWorksheet.Cells(i, 8).Value
                
                                        '[コンボBOXの発注者ID]+[受注番号]+[No]を結合した管理番号
                                        '例:[AA-1111-0001]
                                        rs!unionFormatNo = Me.cmb01.Column(1) & "-" & myOrderNo & "-" & Format(cells_No, "0000")

                                      rs.Update
                                         
                                      '登録件を更新していく
                                      j = j + 1
                                End If
                        End If

                      Next i
  
通報 ...