• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Access コントロール(Listbox or Combobox)へのデータ貼り付け)

Access コントロールへのデータ貼り付けの方法とエラー対処法

このQ&Aのポイント
  • Accessコントロールへのデータ貼り付けの方法とエラー番号438の対処法を紹介します。
  • ADOを利用してリストボックスやコンボボックスにデータを表示する方法と、エラー番号438が発生した場合の対処法を解説します。
  • Accessのバージョンや参照設定によって、ADOによるRecordsetの貼り付けができない場合があります。エラー438の対処法についても説明します。

質問者が選んだベストアンサー

  • ベストアンサー
  • syasushi
  • ベストアンサー率27% (226/837)
回答No.3

#1です。 確かにRowsourceはカレントデータベースにアクセスしますので、リンクさせてないことにはどうにもなりません。 フォームを開いた時にテーブルに取り込んで閉じたらテーブルの内容を削除とかで、いいんじゃないかな? しかし、それは何故だかやりたくないということのようなので。 リンクも張らず、ワークテーブルも作りたくないということなので"Table/Query"でデータを表示するのは不可能でしょう。 "Table/Query"でなければ、方法はありますが(値リストでもない。)kumosukeさんのやりたいこととは違ってしまうでしょうから、書き込みはやめておきます。 頑張って下さい。

kumosuke
質問者

お礼

回答いただきまして、ありがとうございます。 ユーザーにテーブル内容自体を見て欲しくない(テーブルとして取り込んでしまうと吐き出しが可能なため)、という案件からの派生的な質問でした。 私なりにいろいろ試したところ、結局Access2002以上でないと実現できないようなので、今回はあきらめます。 ご回答いただきまして、ありがとうございました。

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.2

下記でそれらしくなりましたので、報告します。 (例)テーブルで ID コード 商品名 1 1 分度器 2 2 ものさし 3 3 ノート 4 4 のり 5 5 ハサミ を作った。テーブル名を商品名とする。 モジュールに Sub test01() Dim frm As Form Set frm = CreateForm frm.Caption = "商品" '-------- Set ctlcmb = CreateControl(frm.Name, acComboBox, , "", "", 1000, 100) ctlcmb.RowSourceType = "Table/Query" ctlcmb.RowSource = "" ' ctlcmb.RowSource = "商品名" ctlcmb.RowSource = "SELECT 商品名.商品名 From 商品名" '-------- DoCmd.OpenForm frm.Name End Sub を作った。 そして実行した。 フォームには、コンボが1つ出て、▼をクリックすると 商品名であるところの 分度器 ものさし ノート のり ハサミ が出た。

kumosuke
質問者

補足

回答いただきまして、ありがとうございます。 今回私が実験しているケースでは、テーブルを同一MDB内に持たず、操作を実現できないか、というものだったりします。 ユーザーが若干のAccessに関する知識を持ってしまっており、「Shift + Enter」によるデザインモード起動でテーブルを直に触れる、という状況があります。 これを回避するために、リンクテーブル(CreateTable)を一切使わずに、操作を実現したいのですが... 何かいい方法は有りませんでしょうか? もちろん、ADOで元となるDBへ接続し、テーブルを作成することでリストボックスやコンボボックスにデータを表示させる、ということは可能ですが、上記方法を用いずに、DBと直結させリアルタイムに更新する方法があるのか... 完全に壁にぶちあたってしまいました。

  • syasushi
  • ベストアンサー率27% (226/837)
回答No.1

値集合タイプを"Table/Query"に設定した場合に使える値集合ソースは「テーブル、クエリ、SQLステートメント」になります。 値集合ソースはRowSourceプロパティで設定します。 Me!.リストボックス1.RowSource=XXX 今回の場合は「xxx」にSQLかな。

kumosuke
質問者

補足

回答いただきまして、ありがとうございます。 回答いただきました、RowSourceプロパティの場合だと、テーブルを同一MDB(MDE)内に持たなければ実行できない、かと思いますがいかがでしょうか?

関連するQ&A