- 締切済み
構造体からレコードセットへの代入
下のような構造体があり、その値をレコードセットに代入したいと思います。 構造体内の変数名とレコードセットのフィールド名が同じなので名前を 利用して簡潔に書けないかと思うのですが、これは可能でしょうか? '構造体 Type Product Price As Long Name As String Size As Single End Type '変数の宣言 Dim Car As Product 'レコードセットへの代入 With Product RS("Price").Value = .Price RS("Name").Value = .Name RS("Size").Value = .Size End With
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- mitarashi
- ベストアンサー率59% (574/965)
参考にならないと思いますが、構造体でなくクラスを使うと、当方覚えたばかりのCallByNameで、For Eachのループで代入できました。(当方VBAですが)。クラスの内容はpropertyだけなので割愛します。 Sub test() Dim car As productClass Dim field As Object Dim rs As Object Const adBSTR As Long = 8 Const adInteger As Long = 3 Const adSingle As Long = 4 Const adOpenStatic As Long = 3 Const adLockOptimistic As Long = 3 Set car = New productClass With car .Price = 50000 .Name = "onboro" .Size = 2000.5 End With Set rs = CreateObject("ADODB.Recordset") With rs .fields.Append "Price", adInteger .fields.Append "Name", adBSTR, 50 .fields.Append "Size", adSingle .CursorType = adOpenStatic .LockType = adLockOptimistic .Open End With With rs .addnew For Each field In rs.fields .fields(field.Name).Value = CallByName(car, field.Name, VbGet) Next field End With With rs For Each field In rs.fields Debug.Print .fields(field.Name).Value Next field End With Set rs = Nothing End Sub
- rivoisu
- ベストアンサー率36% (97/264)
>With Product With Car ですね いろいろ考えてみたのですができないと思います。
補足
ありがとうございます。 無理のようですか。。。 手作業で書きます。
お礼
ありがとうございます。 今ちょっと、時間がないので後でじっくり読ませていただきます。 わからないところとかあったら、また、よろしくお願いいたします。