Microsoft Access 掲示板

表をアクセスに取り込みたい / 14

17 コメント
views
4 フォロー
14
hiroton 2020/10/26 (月) 14:48:03 8d8c2@f966d

単純に1データ1行のテキストデータですかね?レコード(列数)という情報なしの

Private Sub AddData2(tblname As String, ByRef s As String, colCount As Long)
    Dim db As DAO.Database
    Dim rs As DAO.Recordset
    i As Long, j As Long
    Dim Datas

    Set db = CurrentDb
    Set rs = db.OpenRecordset(tblname)
    Datas = Split(s, vbNewLine)
    i = 0
    Do While i <= UBound(Datas)
        rs.AddNew
        On Error Resume Next
        For j = 0 To colCount
            rs(j) = Datas(i)
            i = i + 1
        Next
        On Error GoTo 0
        rs.upDate
    Next
End Sub
通報 ...
  • 15

    ワードの表データではなく、別のテキストデータということなのかな。
    だとしたら、まったく別の質問になるので新規に質問を立ててもらった方がいいですね。
    あとから見た人にとっても利用しやしすですので。

    16
    セロハン 2020/10/26 (月) 15:30:41 0029a@1c915 >> 15

    スミマセン!同じくワードの表からテキストボックスへのコピペなのですが、セル内に改行がなく、レコード途中で改行があったので、下記加工して、1行のテキストのようにして扱っていました。そのことを書けばよかったです。
    新規スレ立てようか悩んだんですが、わかりづらくなってしまい申し訳ありません。

    Private Sub btn取込_Click()
        Dim 取り込みデータ As String
        取り込みデータ = Me.txtボックス
        取り込みデータ = Replace(取り込みデータ, vbCrLf, vbTab)
          Call AddData2(Me.txtテーブル名, Me.txtデータ,列数)
    End Sub
    

    上記の上、教えていただいたコードを部分的に修正してうまく動きました!
    他の方が参考にされるかもしれないので載せておきます。
    大変助かりました。ありがとうございました!

    Private Sub AddData2(tblname As String, ByRef s As String, colCount As Long)
        Dim db As DAO.Database
        Dim rs As DAO.Recordset
        Dim i As Long, j As Long
        Dim Datas
    
        Set db = CurrentDb
        Set rs = db.OpenRecordset(tblname)
        Datas = Split(s, vbTab)
        i = 0
        Do While i <= UBound(Datas)
            rs.AddNew
            On Error Resume Next
            For j = 0 To colCount
                rs(j) = Datas(i)
                i = i + 1
            Next
            On Error GoTo 0
            rs.upDate
        Loop
    End Sub