| 
    
     |  | お世話になります。 
 時系列で並んでいるExcelのデータのうち、ある一日のデータのみをアクセスへEXPORTしたいのですが、EXCELの項目名とAccessのフィールド名が同じものだけEXPORTするようにしたいのです。deleteまではスムーズですが、その後のどこをどういう風に直したらいいかわからなくなってしまいました。
 教えていただけませんでしょうか。
 
 <EXCEL>
 B   C   E
 2009/8/1 さんま あじ いわし
 
 ↓
 
 <Access>
 A   B   C   D   E
 2009/8/1    さんま あじ     いわし
 
 -------------
 
 Dim CBk As Workbook
 Dim CSht As Worksheet
 Dim Cr As Byte: Dim Col As Byte
 
 Public Sub Port_Export()
 Dim myDb As DAO.Database
 Dim myRst As DAO.Recordset
 Dim myFileName As String:   Dim myTblsql As String:   Dim myTbl As String
 Dim dt As Date
 Dim fld As Long
 
 Set CBk = ThisWorkbook: Set CSht = CBk.ActiveSheet
 dt = CSht.Cells(2, 1).Value
 
 Select Case CBk.ActiveSheet.Name
 Case "Pr": myTbl = "Daily"
 Case "Bg": myTbl = "Ind"
 End Select
 
 myFileName = "test.mdb"
 myTblsql = "delete * FROM " & myTbl & " WHERE " & myTbl & ".date in(#" & dt & "#)"
 
 Set myDb = OpenDatabase(CBk.Path & "\" & myFileName)
 myDb.Execute myTblsql
 
 Set myRst = myDb.OpenRecordset(myTbl, dbOpenDynaset)
 Cr = 8: Col = 17
 myRst.AddNew
 ct = 17
 Do Until CSht.Cells(Cr, 17) = ""
 If CSht.Cells(Cr, 17) = dt Then
 Do Until CSht.Cells(Cr, Col) = ""
 For fld = 0 To myRst.Fields.Count - 1
 If myRst(fld).Name = CSht.Cells(7, ct) Then
 With myRst
 .Fields(fld) = CSht.Cells(Cr, Col)
 .Update
 End With
 ct = ct + 1
 End If
 Next
 Loop
 End If
 Cr = Cr + 1
 Loop
 
 myDb.Close
 Set myRst = Nothing
 Set myDb = Nothing
 End Sub
 
 |  |