Access VBA質問箱 IV

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

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


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

【5591】VBA勉強中 sakaiII 05/7/10(日) 13:23 質問[未読]
【5592】Re:VBA勉強中 とっつあん 05/7/10(日) 21:02 発言[未読]
【5596】Re:VBA勉強中 小僧 05/7/11(月) 11:56 発言[未読]
【5598】Re:VBA勉強中 sakaiII 05/7/11(月) 22:53 質問[未読]
【5600】Re:VBA勉強中 小僧 05/7/12(火) 10:04 発言[未読]
【5610】Re:VBA勉強中 sakaiII 05/7/14(木) 9:12 質問[未読]
【5611】Re:VBA勉強中 小僧 05/7/14(木) 10:00 回答[未読]

【5591】VBA勉強中
質問  sakaiII  - 05/7/10(日) 13:23 -

引用なし
パスワード
   こんにちは、
 VBA勉強中で、質問がありますので、よろしくお願いします。
下記のSQL文をVBAで実現させる場合は、どのようなVBA文になるのでしょうか?
例、
SELECT [納品日付を入力してください] AS 納品日付, test_0513.商材コード,        test_0513.商材名, test_0513.数量, test_0513.単価,
    test_0513.合計金額, test_0513.備考欄
FROM test_0513;

【5592】Re:VBA勉強中
発言  とっつあん E-MAIL  - 05/7/10(日) 21:02 -

引用なし
パスワード
   ▼sakaiII さん:

http://www.accessclub.jp/dao/08.html
を参考にしてみれば良いかと思います。

【5596】Re:VBA勉強中
発言  小僧  - 05/7/11(月) 11:56 -

引用なし
パスワード
   ▼sakaiIIさん、とっつあん さん:
こんにちは。

>下記のSQL文をVBAで実現させる場合は、どのようなVBA文になるのでしょうか?
>
>SELECT [納品日付を入力してください] AS 納品日付, test_0513.商材コード,  >      test_0513.商材名, test_0513.数量, test_0513.単価,
>      test_0513.合計金額, test_0513.備考欄
>FROM test_0513;

SELECT されたレコードをどのように使うのかが解らないので
的確な回答がつけれられません。

「目に見える形にしたい」のであれば「CreateQueryDef」メソッドで
クエリとして表示するのが一般的です。

「レコードの編集を行いたい」等の場合は、Recordset型のオブジェクトに
上記SQLの結果を Set するのが一般的ですね。

Recordset オブジェクト を使うには「DAO」「ADO」があり、
DAO 使われるのでしたら とっつあん さんのご紹介されてる
URLを参考にされるのも良いかと思われます。

【5598】Re:VBA勉強中
質問  sakaiII  - 05/7/11(月) 22:53 -

引用なし
パスワード
   ▼小僧 さん:
>▼sakaiIIさん、とっつあん さん:
>こんにちは。
>
>>下記のSQL文をVBAで実現させる場合は、どのようなVBA文になるのでしょうか?
>>
>>SELECT [納品日付を入力してください] AS 納品日付, test_0513.商材コード,  >      test_0513.商材名, test_0513.数量, test_0513.単価,
>>      test_0513.合計金額, test_0513.備考欄
>>FROM test_0513;
>
>SELECT されたレコードをどのように使うのかが解らないので
>的確な回答がつけれられません。
VBAで、上記のSQL文と同じ結果を得るため、
どんなVBAコードになるかを知りたいです。
たとえば、SQL実行する場合は、まずパラメータの入力が要求され、
最後、結果を表示されます。

【5600】Re:VBA勉強中
発言  小僧  - 05/7/12(火) 10:04 -

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

>最後、結果を表示されます。

一般的にAccessを使用してツール等を作成する場合
結果の表示はフォームやレポートに出力しますので
それであればDAOやADOで処理できますが、

クエリの様に表示させるとなると下記の様なコードで同じ事ができると思います。

Sub クエリ作成()
Dim SQLCode As String
Dim QD As DAO.QueryDef
  SQLCode = "SELECT [納品日付を入力してください] AS 納品日付, test_0513.商材コード, " _
      & "test_0513.商材名, test_0513.数量, test_0513.単価, " _
      & "test_0513.合計金額 , test_0513.備考欄 FROM test_0513"
      
  Set QD = CurrentDb.CreateQueryDef("Q_Test", SQLCode)
  Set QD = Nothing
  
  DoCmd.OpenQuery "Q_test"
End Sub

【5610】Re:VBA勉強中
質問  sakaiII  - 05/7/14(木) 9:12 -

引用なし
パスワード
   ▼小僧 さん:
>▼sakaiII さん:

>一般的にAccessを使用してツール等を作成する場合
>結果の表示はフォームやレポートに出力しますので
>それであればDAOやADOで処理できますが、
いままでほとんどクエリでその結果を表示する方法でやっています。
抽出の結果をフォームに出力するほうほうはわかりません。
申し訳ありませんが、下の実行結果をフォームに出力する場合は、
どのように添削になるのでしょうか?
>
>クエリの様に表示させるとなると下記の様なコードで同じ事ができると思います。
>
>Sub クエリ作成()
>Dim SQLCode As String
>Dim QD As DAO.QueryDef
>  SQLCode = "SELECT [納品日付を入力してください] AS 納品日付, test_0513.商材コード, " _
>      & "test_0513.商材名, test_0513.数量, test_0513.単価, " _
>      & "test_0513.合計金額 , test_0513.備考欄 FROM test_0513"
>      
>  Set QD = CurrentDb.CreateQueryDef("Q_Test", SQLCode)
>  Set QD = Nothing
>  
>  DoCmd.OpenQuery "Q_test"
>End Sub

【5611】Re:VBA勉強中
回答  小僧  - 05/7/14(木) 10:00 -

引用なし
パスワード
   ▼sakaiII さん:
おはようございます。

フォームには連結フォームと非連結フォームがありますが、
例として連結フォームのやり方です。

まずフォームを用意(仮にF_Sakaiとします。)

テキストボックスを7個配置します。
名前      コントロールソース
txt納品日付   納品日付
txt商材コード  商材コード
txt商材名    商材名



「F_Sakai」を開くとレコードソースがないので
各フィールドが「#NAME?」になっていると思われますが、
ここに先ほどの SQL をセットしてあげる形です。

フォームはSAVEして閉じた状態で
下記コードをモジュールに貼り付けて確かめてみてください。

Sub SQLをフォームにセット()
Dim SQLCode As String

  DoCmd.OpenForm "F_Sakai"
  SQLCode = "SELECT [納品日付を入力してください] AS 納品日付, test_0513.商材コード, " _
      & "test_0513.商材名, test_0513.数量, test_0513.単価, " _
      & "test_0513.合計金額 , test_0513.備考欄 FROM test_0513"
   
  Forms![F_Sakai].RecordSource = SQLCode
   
End Sub

フォームに「SELECT」された値が入ったと思われますがいかがでしょうか?

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