愚者の経験

「また今度」はほとんどこない

ADOのRecordsetをフォームに利用 番外編

今回は「自作した」レコードセットにデータを追加し、それをフォームに表示させる場合のメモ。
「自作した」レコードセットとはSQL文に依らないレコードセットのことで、
SQL文に依らないのでフィールドの数、型宣言、データの追加等をすべて自分で行う必要があります。
作業用のテーブルがかなり近い感覚。
今後この「自作した」レコードセットを「スタンドアロンレコードセット」と呼ぶことにします。

スタンドアロンレコードセットの作り方
1. ADODB.Recordsetを作成する

Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset

2. フィールド(列)を作成する

rs.Fields.Append , , , ,

あとは普通のレコードセットと同じでRecordsetを開き、Addnewメソッドでデータを追加して完成です。

rs.Open
rs.AddNew Array(“TESTID”, “TEST”), Array(1, “test”)

出来たレコードセットをフォームのレコードセットに代入すればいいのですが

Set Me.サブフォーム1.Form.Recordset = rs

おそらくテキストボックスに「#エラー」がでます。
自分もよくわかりませんが、フィールドのデータ型が
adLongVarWChar以外でこうなるようです。

もしかしたらAppendの第四引数が関係しているかもしれませんがよくわかりません。

広告

ADOのRecordsetをフォームに利用 番外編」への2件のフィードバック

  1. まるめろ 3月 9, 2015 3:57 pm

    こんにちは。いつも参考にさせて頂いています。
    (過去記事にコメント失礼します)

    本日まさしくこれにはまっていました。
    あるフィールドに入っているカンマ区切りのデータを、
    テーブルを起こすほどではないが表形式でみたいため、
    配列→レコードセット→サブフォーム としたかったのですが「#エラー」の一点張り。
    件数はあってるので、あーでもないこーでもないと数時間ほど悶絶しておりました。

    非常に助かりました。ありがとうございます。

    • rsskkr 3月 9, 2015 6:45 pm

      まるめろ様
      はじめましてrsskkrです。コメントありがとうございます。
      かなりキワモノの記事だと自分でも思うのですが、お力になれたようで幸いです。
      最近ネタ切れになっていますが、また当ブログをよろしくお願い致します。

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Google フォト

Google アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。