電子書籍の厳選無料作品が豊富!

Access2010を使用しております。

フィールドAに
テキストボックス1=日付
コンボボックス1=時間
テキストボックス2=タブ区切りのデータを貼付け用を用意しております。

読込ボタンを押した際に
テーブルAの
日付␣時間␣フィールド1␣フィールド2…
というテーブルにインポートを考えております(>_<)

テキストボックス2で読み込ませるデータは、
タブ区切りの行の数が不確定と成りますので
日付はテキストボックスから
時間はコンボボックス1から
フィールド1以降にテキストボックス2の最終行まで
読み込みを行いたいのですが、上手く行きません(´;ω;`)

インポートした際に、テキストボックス2に張り付けたタブ区切りのデータの最終行まで日付と時間を入力される様にアドバイス頂けませんでしょうか(>_<)

Dim rs As DAO.Recordset
Set dbs = CurrentDb
Set Rst = dbs.OpenRecordset("テーブルA")

With Rst
.AddNew
!日付 = 日付
!時間 = 時間
.Update
End With

Rst.Close

Set rs = CurrentDb.OpenRecordset("テーブルA")

Dim r, i As Long
For Each r In Split(Meテキストボックス1.Value, vbCrLf)
Dim c
c = Split(r, vbTab)
rs.AddNew
For i = 0 To UBound(c)
rs.Fields(i).Value = c(i)
Next
rs.Update
Next

rs.Close: Set rs = Nothing
MsgBox "Inportが完了しました", vbOKOnly

お願い致しますm(__)m

「Access VBAに付いて教えて下さい」の質問画像

質問者からの補足コメント

  • つらい・・・

    説明不足申し訳ありません(><)
    上手く行きませんと言うよりは「やり方が分かりません」が正しい表現でしたm(_ _)m
    日付と時間はテキストボックス1とコンボボックス1から、その他のデータはテキストボックス3からインポートしたいのです(><)
    御教授ください(><)

    No.1の回答に寄せられた補足コメントです。 補足日時:2020/07/23 18:47

A 回答 (2件)

>やり方が分かりません


質問文を読む感じ、やり方はわかっているのでは。

Public Sub Example()
Const TNAME = "T1", NDATA = 4, FLD_IDX_OFFSET = 2
Dim rs As DAO.Recordset, dte As Date, tim As Date
Dim dat(NDATA - 1) As String
Dim ridx As Long, i As Long, f As Variant

dat(0) = "01,02,03"
dat(1) = "11,12"
dat(2) = ""
dat(3) = "31,32,33,34"

dte = CDate("2020-07-23")
tim = CDate("20:30")

Set rs = CurrentDb.OpenRecordset("T1", dbOpenDynaset)
For ridx = LBound(dat) To UBound(dat)
f = Split(dat(ridx), ",", rs.Fields.Count - FLD_IDX_OFFSET)
rs.AddNew
rs.Fields(0).Value = dte
rs.Fields(1).Value = tim
For i = 0 To UBound(f)
rs.Fields(i + FLD_IDX_OFFSET).Value = f(i)
Next
rs.Update
Next
rs.Close
Debug.Print "fin"
End Sub
    • good
    • 0

「上手く行きません」の詳細が不明なので、あてずっぽうですが、


日付&日時とフィールド1,2,…が1レコードなら、.AddNew()が2回出てくるのはおかしいような。
この回答への補足あり
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!