プロが教える店舗&オフィスのセキュリティ対策術

印刷チェック 見積番号B 見積番号C 発注先コード               B-001 C-001 D-001               B-001 C-001 D-001
       B-001 C-002 D-002
       B-001 C-002 D-002

このようなフォームがあります。
これを
印刷チェック 見積番号B 見積番号C 発注先コード               B-001 C-001 D-001

       B-001 C-002 D-002
このようにしたいと思っています。
重複したデータ部分を非表示にしたいと思っています。
印刷チェックの区分は、印刷したいものにチェックをする、
チェックボックスになっているため、
クエリにての操作が出来ません。

どのようにしたら良いのでしょうか?
宜しくお願いします。

A 回答 (3件)

見積番号B 見積番号C 発注先コード を持つフィールドのテーブルで


同じ値のものを表示しない方法は、クエリーを作成する際、
クエリーのプロパティの固有の値をはいにしてください。
した場合SQLは
SELECT DISTINCT テーブル1.見積番号B, テーブル1.見積番号C, テーブル1.発注先コード FROM テーブル1;
になります。
固有の値をいいえの場合
SELECT テーブル1.見積番号B, テーブル1.見積番号C, テーブル1.発注先コード FROM テーブル1;
DISTINCTがないところがことなり、あれば同じ値は表示されません。
このクエリーを使って印刷すればよいと思います。
    • good
    • 0

tab1:



ID__印刷チェック__見積番号B__見積番号C__発注先コード
01__Yes___________B-001______C-001______D-001
02__Yes___________B-001______C-001______D-001
03__Yes___________B-001______C-002______D-002
04__Yes___________B-001______C-002______D-002
05__No____________B-001______C-003______D-003
06__No____________B-001______C-003______D-003

クエリ1:

[UID__UCHeck__見積番号B__見積番号C__発注先コード
02____-1______B-001______C-001______D-001
04____-1______B-001______C-002______D-002
06_____0______B-001______C-003______D-003

クエリ2:

UID___見積番号B__見積番号C__発注先コード
2_____B-001______C-001______D-001
4_____B-001______C-002______D-002

この2つのクエリが考えられます。

SELECT
 MAX(ID) AS UID,
 MAX(印刷チェック) AS UCHeck,
 見積番号B,
 見積番号C,
 発注先コード
FROM tab1
GROUP BY 見積番号B, 見積番号C, 発注先コード;

SELECT
 MAX(ID) AS UID,
 見積番号B,
 見積番号C,
 発注先コード
FROM tab1
WHERE 印刷チェック=True
GROUP BY 見積番号B, 見積番号C, 発注先コード;
    • good
    • 0

フォームの「開く時」のイベントプロシージャで


・作業用テーブルを空にする
・元のテーブルから重複を取り除いたクエリを元に、作業用テーブルにデータを追加する
・作業用テーブルをフォームのレコードソースに設定する
と言う処理をして下さい。

まず、
SELECT 元テーブル.見積番号B,元テーブル.見積番号C,元テーブル.発注先コード FROM 元テーブル GROUP BY 見積番号B,見積番号C,発注先コード;
と言うクエリーを「重複無しクエリー」と言う名前で保存します。

そして、フォームの「開く時」のイベントプロシージャに、以下のコードを書きます。

Private Sub Form_Open(Cancel As Integer)
DoCmd.RunSQL "DELETE * FROM 作業テーブル"
DoCmd.RunSQL "INSERT INTO 作業テーブル ( 印刷チェック,見積番号B,見積番号C,発注先コード ) SELECT FALSE AS 印刷チェック,重複無しクエリー.見積番号B,重複無しクエリー.見積番号C,重複無しクエリー.発注先コード FROM 重複無しクエリー;"
Me.RecordSource = "作業テーブル"
End Sub

あとは「元テーブルではなく、作業テーブルを使って」処理を続けて下さい。

この回答への補足

ご回答ありがとうございます。
仮テーブルを作成して操作する事ですよね。
わがままで、すみませんが、仮テーブルを使わずに
操作する事は、不可能なのでしょうか?

補足日時:2008/04/23 08:43
    • good
    • 0

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

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

関連するカテゴリからQ&Aを探す


このQ&Aを見た人がよく見るQ&A