2011-08-10 13 views
1

プレビューのためにフォームにリンク(バインド)できる一時的なメモリテーブル/レコードセット、データセット(データセットなど)にデータをロードする方法はありますか? .NETにはデータセットがありますが、Access 2007はどうですか?データセット、Access 2007の仮想テーブルまたは仮想テーブル

XMLファイルのデータをメニュー/リストコントロールに入力することはできますが、連続したフォームと同様に縮尺は変わりません。

答えて

1

この例に基づくソリューションです:Create In-Memory ADO Recordsets - 新しいを作成する可能性もあり

Public Sub createDataSet(mekeNewSet As Boolean) 
'requires reference addedd **Microsoft ActiveX Data Object** 

Dim rs As ADODB.Recordset 
Dim fld As ADODB.Field 

Set rs = New ADODB.Recordset 
With rs 
    .Fields.Append "EmployeeID", adInteger, , adFldKeyColumn 
    .Fields.Append "FirstName", adVarChar, 10, adFldMayBeNull 
    .Fields.Append "LastName", adVarChar, 20, adFldMayBeNull 
    .Fields.Append "Email", adVarChar, 64, adFldMayBeNull 
    .Fields.Append "Include", adInteger, , adFldMayBeNull 
    .Fields.Append "Selected", adBoolean, , adFldMayBeNull 
    .CursorType = adOpenKeyset 
    .CursorLocation = adUseClient 
    .LockType = adLockPessimistic 
    .Open 
End With 

With rs 
    .AddNew 
    .Fields(0) = 777 
    .Fields(1) = "John" 
    .Fields(2) = "Smith" 
    .Fields(3) = "[email protected]" 
    .Fields(4) = 1 
    .Fields(5) = True 
    .Update 
End With 


Set Me.Recordset = rs 

End Sub 

最新のMicrosoft ActiveXデータオブジェクトを見つけ、参考資料>最初のツールで参照を追加することを忘れないでくださいVBAのクラスと、このチュートリアルのようにコレクションを構築:完全なソリューションのためにUsing Custom Collections in Microsoft Access

XMLデータをダウンロードし、ここでrecordserチェックにそれを入力する方法: Access VBA - how to download XML file and enter its data into a recordset

+0

質問の "プレビュー用のフォームにリンクできますか?" –

+0

簡単に、Me.Recordset = rsを設定します。 "Me"は、このコードが実行される形式です。フォーム内のフィールドは、このレコードと同じ名前(データソース)にバインドする必要があります。 "EmployeeID"、 "FirstName"など。 – Lumis

+0

私はあなたがそれについて明示的に何かを言って、それがあなたのコードでコメントアウトされた理由を説明するべきだと思います。 –

1

いいえ、アクセスできませんデータセット。
しかし、データセットをADODB.Recordsetに変換できます。アクセスはそれを知っていて、連続フォームに直接バインドすることができます。ここで

はADODB.Recordsetsにデータセットを変換するスニペット(および他の方法ラウンド)である:
http://dotnet-snippets.de/dns/ado-recordset-converter-SID525.aspx

ページやコード内のコメントはドイツ語であるが、あなたは理解していない場合でも、ドイツ語、コード自体は使いやすいです。
あなただけMicrosoft ActiveX Data Objects 2.8への参照を必要とし、その後、あなただけのこのメソッドを呼び出す必要があります:A2000始まる

public static ADODB.Recordset ConvertDataTableToRecordset(DataTable table) 
+0

これはC#.NETで書かれているので、変換するのは簡単ではありませんが、必要な場合がある、ゼロからレコードセットを作成するなど、いくつかのアイデアがあります。 – Lumis

+0

申し訳ありませんが、私はあなたの質問を誤解したと思います。私はあなたが既に.NET DataSetを持っていて、それをAccessに表示したいと思っていました。私は私の答えをそのまま残しておいて、多分あなたを助けてくれるでしょう... –

1

Accessフォームがレコードセットの割り当ては、フォームのレコードセットにコードで組み立てができ、そしてそれはADOが含まれてレコードセット。したがって、XMLファイルからADOレコードセットを開いた場合は、そのレコードをフォームに割り当てることができます。

ただし、これは私がこれを必要としなかったためではないことに注意してください.ADOとDAOのレコードセットに問題があり、これを行うときに遭遇するあらゆる種類の小さな非互換性があります。ものの種類。ここで