アプリ版:「スタンプのみでお礼する」機能のリリースについて

Access2002 VBA
教えていただけませんか!

テーブルのフィールドに[日付]と[品名]があるとします。
ある期間の日付で抽出をした時5件のレコードが抽出されました。
(例)
 日付    品名
H14-04-01 プリンター
H14-04-02 ハードディスク
H14-04-03 モニター 
H14-04-04 プリンター
H14-04-05 マウス

このときの品名を表示したいのですが、重複品名は除いて
プリンター
ハードディスク
モニター
マウス
とするにはどうすればいいでしょう?

A 回答 (3件)

ふたたび回答します。


フォームに表示するためだけの抽出であれば、前回と同様にGROUP BYやDISTINCTで
重複しないSQLを生成するのがレスポンス的にも早いです。
あくまで抽出は全レコードというのであれば、ORDER BYでソートして
ループ内でブレイク毎に配列にセットされてはいかがでしょうか。
    • good
    • 0
この回答へのお礼

ご回答有難うございます。

とりあえずフォームで表示するだけですので
GROUP BY を使うことで解決しました。

お礼日時:2002/04/22 14:09

クエリーですとメニューバーの表示(V)に集計(O)という項目があります。


これにチェックすると、「集計:グループ化」と下のセルに追加されます。
これで同じ内容のものは表示されません。
ちなみに、このテーブルに「金額」などがあれば「集計:合計」とすれば
同じ品名のものの金額の計が得られます。
SQLビューに切り替えて生成されたSQL文字列をVBAで使用されてはいかが
でしょうか。
もうひとつの方法は
SELECT distinct テーブル.品名 FROM テーブル;
と、distinctキーワードを追加することで重複を避けることができます。

この回答への補足

ご返事有難うございます。

まったく私の説明不足ですので、質問を書き直します。

次のようなテーブル(テーブル名:明細)があります。
(例)
顧客ID 貸出本タイトル   返却予定日
 1  図解アクセス   H14年4月1日
 2  VBA入門    H14年5月1日
 1  図解エクセル   H14年5月1日
 4  やさしいワード  H14年4月1日
 3  アクセス解説   H14年4月1日
 2  アクセス裏技   H14年5月1日
 4  図解ワード    H14年4月1日
 1  アクセス2000 H14年5月1日
 3  ワードマスター  H14年5月1日

返却予定日がH14年5月1日の顧客を抽出します。

Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim mySQL As String
Set db = CurrentDb()

mySQL = "SELECT * FROM 明細 " _
& "WHERE 返却予定日 = #" & _
Format$(Me!txtKey, "yyyy-mm-dd") & "#;"
Set rs = db.OpenRecordset(mySQL, dbOpenDynaset)
(注)txtKeyはフォームの抽出条件を入力するテキストボックスです

Dim ID(1 To 100) AS Integer
Dim i AS Integer
i = 0
Do Until rs.EOF
i = i + 1
ID(i) = rs![顧客ID]
rs.MoveNext
Loop

このとき抽出された顧客ID次の通りなりますね。
変数  顧客ID
ID(1)→ 2
ID(2)→ 1
ID(3)→ 2
ID(4)→ 1
ID(5)→ 3

これを抽出された顧客IDをフォームで表示するとき
H14年5月1日の返却予定者は
   顧客ID
    2
    1
    2
    1
    3
と、表示するのではなく
   顧客ID
    2
    1
    3
と、したいのです。

長文になり申し訳ありませんがご指導ください。

補足日時:2002/04/19 21:41
    • good
    • 1

この抽出はクエリーでやっているのですか?



プリンターがふたつあるから重複しないようにひとつだけ表示したい、とのことですが、日付が違うので別データとして扱われます。

クエリーで、日付を入れなければできるかと思いますが。。。

この回答への補足

説明不足で申し訳ありません。
質問を書き直しましたのでよろしくお願いします。

補足日時:2002/04/19 22:30
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています