ここから本文です

Access VBAでSQLを発行し、 得た値を変数に入れたい。

tai********さん

2010/7/1417:10:11

Access VBAでSQLを発行し、 得た値を変数に入れたい。

現在Access VBAを勉強しています。
VBAでSQLを発行し、下記のような対象テーブルの中から得た値を変数に格納することを試みていますが、うまくできません。
SQLで得ようとしている値は下記テーブルの場合、SELECT COUNT(生年月日)、SELECT MAX/MIN(生年月日) FROM 対象テーブル の3つです。

また、練習でDCount、DMax、DMin関数も使って上記と同様の値を取得しようと考えています。

対象テーブル
|生年月日 | 名前 |
| 20000101 |aaaaaaa|
| 20020101 |bbbbbbb|
| 20020101 |aaaaaaa|
| 20020101 |aaaaaaa|
| 20030101 |aaaaaaa|
| 20030101 |aaaaaaa|
| 20040101 |aaaaaaa|
| 20050101 |aaaaaaa|
| 20060101 |aaaaaaa|

勉強し始めたばかりの初心者なので、ソースサンプルを挙げて頂ければ幸いです。
どうぞ、よろしくお願いします。

補足丁寧な回答をいつもありがとうございます。
[生年月日]フィールドがテキスト型であった場合は、
MAX/MINのSQLを発行するために一度数値型に直す必要があると思います。
その際はどのようにすれば宜しいでしょうか?
どうぞ、よろしくお願いします。

閲覧数:
29,565
回答数:
1
お礼:
25枚

違反報告

ベストアンサーに選ばれた回答

mi_********さん

2010/7/1418:08:05

Sub CODE_0714()
Dim DB As Database
Dim R1 As Recordset
Dim SQL_Txt As String
Dim L1 As String

Set DB = CurrentDb()

SQL_Txt = "SELECT COUNT([生年月日]) AS A FROM 対象テーブル"
Set R1 = DB.OpenRecordset(SQL_Txt)
L1 = R1!A
Debug.Print L1

SQL_Txt = "SELECT MAX([生年月日]) AS A FROM 対象テーブル"
Set R1 = DB.OpenRecordset(SQL_Txt)
L1 = R1!A
Debug.Print L1

SQL_Txt = "SELECT MIN([生年月日]) AS A FROM 対象テーブル"
Set R1 = DB.OpenRecordset(SQL_Txt)
L1 = R1!A
Debug.Print L1

End Sub


でどうでしょう。

質問した人からのコメント

2010/7/15 14:13:37

驚く MAX/MIN を LAST/FIRST にすると、
テキスト型のフィールドにおける最初と最後の値を得ることができました。
いつも丁寧な回答をありがとうございます。

あわせて知りたい

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる