Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


1818 / 2272 ツリー ←次へ | 前へ→

【5113】フォーム上でSQLを流す ぶる 05/5/26(木) 13:35 質問[未読]
【5115】Re:フォーム上でSQLを流す クロ 05/5/26(木) 13:55 回答[未読]
【5116】Re:フォーム上でSQLを流す ぶる 05/5/26(木) 14:03 発言[未読]
【5117】Re:フォーム上でSQLを流す クロ 05/5/26(木) 14:13 回答[未読]
【5120】Re:フォーム上でSQLを流す 小僧 05/5/26(木) 14:44 回答[未読]
【5122】Re:フォーム上でSQLを流す ぶる 05/5/26(木) 15:11 質問[未読]
【5124】Re:フォーム上でSQLを流す 小僧 05/5/26(木) 15:23 回答[未読]
【5126】Re:フォーム上でSQLを流す ぶる 05/5/26(木) 15:55 質問[未読]
【5129】Re:フォーム上でSQLを流す クロ 05/5/26(木) 16:43 回答[未読]

【5113】フォーム上でSQLを流す
質問  ぶる  - 05/5/26(木) 13:35 -

引用なし
パスワード
   リストのSQL一覧から任意のものを選択すると
Txtsql(テキストボックス)にSQLが表示されます。
そのSQLを下の処理で流しています。


Private Sub cmdStrt_Click()

If IsNull(Me.Txtsql) Then
  MsgBox "処理内容が記述されていません。"
End If

'テキストボックスに入力されているSQLを実行
DoCmd.RunSQL Me.Txtsql

End Sub


UPDATE文・INSERT文・DELETE文はちゃんと流れるのですが
SELECT文を流すことが出来ません。
希望はSELECT文を流すと抽出されたレコードが別ウィンドウで開かれる
という処理が出来たらうれしいです。

【5115】Re:フォーム上でSQLを流す
回答  クロ  - 05/5/26(木) 13:55 -

引用なし
パスワード
   RunSQLではアクションクエリ(SQL)しか走りません。
SELECTのような選択クエリ(SQL)はRun出来ないですよ。

【5116】Re:フォーム上でSQLを流す
発言  ぶる  - 05/5/26(木) 14:03 -

引用なし
パスワード
   ▼クロ さん:
>RunSQLではアクションクエリ(SQL)しか走りません。
>SELECTのような選択クエリ(SQL)はRun出来ないですよ。

そうだったんですか(><)
他の方法でもSELECT文を流して表示させるという事は出来ないのでしょうか?

【5117】Re:フォーム上でSQLを流す
回答  クロ  - 05/5/26(木) 14:13 -

引用なし
パスワード
   QueryDefでSQL文から一時的にクエリを作って
OpenQueryで開くとか?

【5120】Re:フォーム上でSQLを流す
回答  小僧  - 05/5/26(木) 14:44 -

引用なし
パスワード
   ▼ ぶる さん、クロ さん:
こんにちは。

フォーム上にリストボックスを作成して、コマンドボタンを実行すると
リストボックスの RowSource にSQLのコードが指定されるようにしてみては
いかがでしょうか?

【5122】Re:フォーム上でSQLを流す
質問  ぶる  - 05/5/26(木) 15:11 -

引用なし
パスワード
   ▼小僧 さん:
>▼ ぶる さん、クロ さん:
>こんにちは。
>
>フォーム上にリストボックスを作成して、コマンドボタンを実行すると
>リストボックスの RowSource にSQLのコードが指定されるようにしてみては
>いかがでしょうか?

RowSourceを使ったことがないのですが
それを使うとSELECT文でも実行できるのですか??

【5124】Re:フォーム上でSQLを流す
回答  小僧  - 05/5/26(木) 15:23 -

引用なし
パスワード
   ▼ぶる さん:
こんにちは。

>RowSourceを使ったことがないのですが
>それを使うとSELECT文でも実行できるのですか??

リストボックスの値集合ソースにはSQL文が記述出来るようになっています。
SELECT文を実行できる…というよりは、値集合ソースを書き換えると言う方が
近いイメージでしょうか?

フォーム上に結果リスト(リストボックス)を追加して

Private Sub cmdStrt_Click()

If IsNull(Me.Txtsql) Then
  MsgBox "処理内容が記述されていません。"
End If

'テキストボックスに入力されているSQLを実行
  Me.結果リスト.RowSource = Me.Txtsql
  Me.結果リスト.Requery
End Sub

リストボックスの列数をSELECTしたフィールド数に合わせれば
結果が表示されると思います。

【5126】Re:フォーム上でSQLを流す
質問  ぶる  - 05/5/26(木) 15:55 -

引用なし
パスワード
   SELECT結果を表示できました。ただ、扱うレコード数が
数千件単位だったりフィールド数が10〜20あるので
リストボックスですとやはりキツイです(><)
なのでやはり別ウィンドウなどに表示できる方法はないでしょうか?
すみません(TT)

【5129】Re:フォーム上でSQLを流す
回答  クロ  - 05/5/26(木) 16:43 -

引用なし
パスワード
   一度そのSQLでフォーム(データシートビューなど)を作成して
SELECTではじまるSQL文ならそのフォームを開く時にSQL文を
レコードソースとして代入してあげればいいのでは?

1818 / 2272 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
1078263
(SS)C-BOARD v3.8 is Free