
リストボックス、コンボボックスなら
Private Sub Form_Open(Cancel As Integer)
With Form_フォーム1.リスト2
.RowSourceType = "Table/Query"
.RowSource = "SELECT テーブル.フィールド, FROM テーブル"
End With
End Sub
で結果を返すことは可能なのですが
フォームをデータシートとして
Private Sub Form_Load()
Me.RowSourceType = "Table/Query"
Me.RowSource = "SELECT テーブル.フィールド, FROM テーブル"
End Sub
とするのは不可能ですか?
これを実行すると
「コンパイルエラー
メソッドまたはメンバーが見つかりません」
となり、
「RowSourceType =」が選択されます。
そしてVBAの停止の意の四角ボタンを押すとユーザーフォームが図のようになります。
私のやりたいことは、クエリではなくVBAでSQL文を書き、データシートビューで表示させたいのですがやはり不可能でしょうか?
(変数を代入できるため)
何でもいいのでご教授よろしくお願いします。
No.3ベストアンサー
- 回答日時:
No.2です。
> しかしデータが表示されないのです。
もしかしたらなのですが、フォームにテキストボックスなどを設置していないか、
設置したテキストボックスなどの『コントロールソース(ControlSource)』に
フィールド名を指定していない、ということはないでしょうか。
(リストボックス等では「列数(ColumnCount)」や「列幅(ColumnWidths)」等を
指定して表示列を規定したのに対し、フォームでレコードを表示する場合は、
フィールドに対応するコントロールを設置してやる必要があります)
以下、上記の推測の通りだった前提での回答になります。
(違いましたらご容赦のほど・・・)
コントロールソースは、テーブルのデザインビューでも設定できますし、VBAで
設定することもできます(なお、フォームのRecordSourceも同様)。
SQL文の切替により、表示するフィールドの名前も変わる場合はVBAで都度
変更、SQL文を切り替えても表示するフィールドの名前は同じ(表示レコードを
指定するWhere句のみの変更など)場合はデザインビューで設定、とするのが
効率的かと思います。
以下、VBAの場合(前回からの改修):
Private Sub Form_Load()
Me.RecordSource = "SELECT テーブル.フィールド FROM テーブル;"
txtフィールド.ControlSource = "フィールド"
End Sub
※テキストボックス名を「txtフィールド」とした場合です。
複数のフィールドを表示する場合は、その数だけテキストボックスを増やし、
同様にControlSourceへの代入を行います。
見事できました!
.仰るとおりテキストボックスなどコントロールを配置していませんでした。(そりゃできないわけですね)
できたときすごく感動しました!!!
本当に感謝です!再度ありがとうございます。
No.2
- 回答日時:
フォームにRowSourceやRowSourceTypeを適用するとご質問の
エラーになるのは、No.1の方も言われているように、
フォームがそのプロパティを持っていないためです。
で、SQLの結果をデータシートに表示させたいのでしたら、
フォームの「RecordSource」にSQL文を代入します。
Private Sub Form_Load()
Me.RecordSource = "SELECT テーブル.フィールド FROM テーブル;"
End Sub
※抽出したレコード自体を編集されたくない場合は、フォームの
プロパティシートで、『データ』タブの『レコードセット』を
「スナップショット」にしておいて下さい。
(「既存の編集は不可だけど新規追加は可」等としたい場合は、
『レコードセット』は「ダイナセット」とした上で、
その上の『更新の許可』~『データ入力用』の値を適当に
設定します。(『データ入力用』は起動時に新規レコードのみ
表示。詳細は、プロパティシートの当該部分にカーソルを
合わせた上でF1キーを押し、ヘルプを参照してみて下さい))
すいません、間違えてアップした画像削除してしまいました。。。
DexMachinaさまご回答ありがとうございます。
早速実行してみました!
しかしデータが表示されないのです。
一番左の横▲マークがある部分がレコード分しか表示されず、(テーブルは全部で1000行あり、フォームをあけるとデータはありませんが1000行まで見えます)列の再表示をしてもなにもありません。
しかし"SELECT テーブル.フィールド, FROM テーブル" をクエリのsqlビューに貼り付けて実行してもちゃんと表示されます。
なぜでしょう?
再度ご回答いただければ幸いです。
No.1
- 回答日時:
[Me] は、コードが書かれたフォームの意味です。
[Form_フォーム1.RowSourceType] と指定したのと同じ意味です。
フォームにはRowSourceTypeプロパティが無いのでエラーになったのでしょう。
操作する場所(コントロール)を指定してください。
Me.リスト2.RowSourceType =
ありがとうございます。
やはりフォーム上にコントロールを設置しないとだめそうですね。
「RowSourceType」をオブジェクトブラウザで確認したら
ComboBox 、.ListBox、ObjectFrameの3つのみでした。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
Access サブフォームでの選択行の取得
その他(データベース)
-
レコードを保存するコード アクセスvba
その他(Microsoft Office)
-
アクセスで数値型のフィールドにNullをいれたい
その他(データベース)
-
-
4
ADOでRecordsetオブジェクトをレコードソースに設定したい
その他(データベース)
-
5
AccessのDAO.ExecuteとDoCmd.RunSqlの違いについて
その他(データベース)
-
6
アクセス VBAで列の入れ替え データシートビュー
その他(Microsoft Office)
-
7
Accessで埋め込んだサブフォーム(データシート形式)でデータ追加ができない
Access(アクセス)
-
8
MS Accessでフォームの「開く時」と「読込み時」のイベントの違い
Access(アクセス)
-
9
日付型のフィールドに空白を入れる方法を教えてください
その他(データベース)
-
10
ACCESSで条件によってフォーム上のフィールドの色を変更
Access(アクセス)
-
11
ACCESSのフォームで列固定?
Access(アクセス)
-
12
AccessのSQL文で1件のみヒットしたら終了させる構文。
その他(データベース)
-
13
ACCESS フォームでの、データシートビューで表示できない
Access(アクセス)
-
14
アクセスVBAのMe!と[ ]
Access(アクセス)
-
15
AccessVBA RecordSourceのリセットについて
Access(アクセス)
-
16
Access 別フォームへの再クエリ(更新)がしたい。
その他(データベース)
-
17
「RunSQL」と「Execute」の違い
Access(アクセス)
-
18
Accessデータシートビューの行指定について
その他(プログラミング・Web制作)
-
19
親フォームからサブフォームのレコードソースを設定
Access(アクセス)
関連するカテゴリからQ&Aを探す
今、見られている記事はコレ!
-
釣りと密漁の違いは?知らなかったでは済まされない?事前にできることは?
知らなかったでは済まされないのが法律の世界であるが、全てを知ってから何かをするには少々手間がかかるし、最悪始めることすらできずに終わってしまうこともあり得る。教えてgooでも「釣りと密漁の境目はどこです...
-
カスハラとクレームの違いは?カスハラの法的責任は?企業がとるべき対応は?
東京都が、客からの迷惑行為などを称した「カスタマーハラスメント」、いわゆる「カスハラ」の防止を目的とした条例を、全国で初めて成立させた。条例に罰則はなく、2025年4月1日から施行される。 この動きは自治体...
-
なぜ批判コメントをするの?その心理と向き合い方をカウンセラーにきいた!
今や生活に必要不可欠となったインターネット。手軽に情報を得られるだけでなく、ネットを介したコミュニケーションも一般的となった。それと同時に顕在化しているのが、他者に対する辛らつな意見だ。ネットニュース...
-
大麻の使用罪がなかった理由や法改正での変更点、他国との違いを弁護士が解説
ドイツで2024年4月に大麻が合法化され、その2ヶ月後にサッカーEURO2024が行われた。その際、ドイツ警察は大会運営における治安維持の一つの方針として「アルコールを飲んでいるグループと、大麻を吸っているグループ...
-
ピンとくる人とこない人の違いは?直感を鍛える方法を心理コンサルタントに聞いた!
根拠はないがなんとなくそう感じる……。そんな「直感がした」という経験がある人は少なくないだろう。ただ直感は目には見えず、具体的な説明が難しいこともあるため、その正体は理解しにくい。「教えて!goo」にも「...
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
INSERT INTO ステートメントに...
-
SQLServer2005のSQL文での別名...
-
ACCESSでの改行コード
-
アクセス メモ型 255文字...
-
アクセス エラーを数値「0」に...
-
Accessでフィールドの結合
-
Accessでテーブルの値をテキス...
-
Accessのフィールド数が255しか...
-
アクセスのテーブルデータをCSV...
-
Accessのオートナンバー
-
ACCESS レーダーチャートのデー...
-
ExcelからAccessにデータを取り...
-
ACCESS2000でEXCELデータのイン...
-
Access の非連結テキストボック...
-
ACCESS検索★ある文字を複数のフ...
-
ExcelのデータをAccessのテーブ...
-
ACCESSでテーブルのチェックを...
-
ACCESSで和暦を西暦に・・・
-
ACCESSでオートナンバーを任意...
-
Access:リンクテーブルマネー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Accessのフィールド数が255しか...
-
INSERT INTO ステートメントに...
-
Accessでテーブルの値をテキス...
-
ACCESSで400以上のフィールドが...
-
SQLServer2005のSQL文での別名...
-
アクセス エラーを数値「0」に...
-
accessのレポートで元になるテ...
-
アクセス メモ型 255文字...
-
【Access】フォームで自動計算...
-
Accessで、固定アルファベット+...
-
アクセス A列コピー B列貼り...
-
ACCESSでオートナンバーを任意...
-
ACCESSでの改行コード
-
ファイルメーカーでCountifの様...
-
主キーはオートナンバー型のID...
-
ACCESS VBAにてCSV...
-
accessで重複を防ぎたい
-
ACCESSで和暦を西暦に・・・
-
Access:リンクテーブルマネー...
-
ACCESSでテーブルのフィールド...
おすすめ情報