Microsoft Access 掲示板

DO LOOP

2 コメント
views
4 フォロー

こんにちは
行き詰まってしまいました。アドレス頂ければ助かります。
OS win10
access 2016

rsを基に新たにtgに書き込もうと思っていますがrsが最後まで読まれず終わっています。
rs = t_filedeta

file_nofile_namefile_address
数値数texttext
1001G:\001.jpg

tg = t_print(f_15まであります)

f_1f_2f_3
    Dim rs As DAO.Recordset
    Dim tg As DAO.Recordset
    Dim c As Integer
    Dim t As Integer

        c = 1       ' --- field_count
        DoCmd.SetWarnings False
            DoCmd.RunSQL "DELETE FROM t_print"
        DoCmd.SetWarnings True

            Set rs = CurrentDb.OpenRecordset("t_filedeta", dbOpenDynaset)
                If rs.RecordCount > 0 Then
                    rs.Requery
                End If
            Set rs = rs.OpenRecordset
            Set tg = CurrentDb.OpenRecordset("t_print", dbOpenDynaset)
                Do Until rs.EOF
                    tg.AddNew
                        c = 1
                        Do
                            tg.Fields("f_" & c) = rs.Fields("file_image")
                            rs.MoveNext
                            c = c + 1
                        Loop Until c > 15
                    tg.Update
                Loop
                rs.Close:                tg.Close
            Set rs = Nothing:            Set tg = Nothing

宜しくお願い致します。

行脚
作成: 2021/05/26 (水) 12:14:21
最終更新: 2021/05/26 (水) 13:12:03
通報 ...
1

コードには rs.Fields("file_image") とあるのですが、file_image というフィールドは t_filedetaにあるのですよね。

あと、内側の Do Loop の最後でも rs.EOF でチェックしないとエラーになると思います。

        Do
            tg.Fields("f_" & c) = rs.Fields("file_image")
            rs.MoveNext
            c = c + 1
        Loop Until c > 15 Or rs.EOF

蛇足

コードを見た感じ、印刷用ワークテーブルで15列に出力しているのだと思いますが、
レポートの印刷設定で列数を設定できますのでそれでいいように思いますか、
なにか特別なレイアウトになっているのでしょうか。

2
行脚 2021/05/27 (木) 04:42:46 35ab5@adc4f

コードには rs.Fields("file_image") とあるのですが、file_image というフィールドは t_filedetaにあるのですよね。

⇒ です。確認がイマイチでした。申し訳ありませんでした。

あと、内側の Do Loop の最後でも rs.EOF でチェックしないとエラーになると思います。

⇒ 記載しませんでしたがエラーが出て困っておりました。

印刷用ワークテーブルで15列に出力しているのだと思いますが、

⇒ 一旦は15列での出力を試みましたが画像が粗く埋め込みにしようかとその為のワークテーブル作りでした。
  他に策があればご教授下さいますようお願い致します。
  と言うか、新たにトピックを起こします。
  hatena様ありがとうございました。