ACCESSでデータベースを作成したのですが、
どうにも使いにくくて困っています。
一つの主なIDに対して必ず10品の決まった商品枠を作りたいのですが
主ID_商品ID_商品比率
のようにテーブルを作成すると、例えば主ID10に対して入力ミス等で、
10品の項目がなければならない所9品のIDしかテーブルにない状態が出来てしまいます。
主ID_商品ID_商品比率
10_1_50
10_2_50
10_3_0
10_4_0
10_5_0
10_6_0
10_7_0
10_8_0
10_10_0
(商品9が抜けている状態)
このようなことを防ぐために一つの主IDに対してかならず商品ID1~10を保持する形にしたいのですが、何か用意方法はないでしょうか?
※データベースはマーケティング用のもので通常の商品管理とは少し用途が違います。
No.3ベストアンサー
- 回答日時:
足らないレコードを追加するクエリーを流しましょう
たとえば書かれてるテーブルを
比率TBL(主ID,商品ID,商品比率)
商品が入っているテーブルを
商品TBL(商品ID)とします
INSERT INTO 比率TBL(主ID,商品ID,商品比率)
SELECT TBLA.主ID,TBLA.商品ID,0
FROM (SELECT DISTINCT 比率TBL.主ID,商品TBL.商品ID
FROM 比率TBL, 商品TBL
WHERE 商品TBL.商品ID BETWEEN 1 AND 10) AS TBLA
WHERE NOT EXISTS(SELECT * FROM 比率TBL AS TBLB
WHERE TBLA.主ID = TBLB.主ID
AND TBLA.商品ID = TBLB.商品ID)
No.2
- 回答日時:
strSQL = Replace(strSQL, 'ZZ', Trim(Str(I)))
は、ミスです。
コピペして修正するのを忘れていました。
ただ、どのようであるかは質問からは不明。
適当に適正化されてください。
No.1
- 回答日時:
1、自動発生させる。
2、中途削除があればリナンバー機能も必要。
Const conIDINSERTSQL="INSERT・・・・'XX_YY_ZZ'"
Private Sub XXXXXXXXXXXXX()
Dim isOK As Boolean
Dim I As integer
Dim strSQL AS String
For I=1 To 10
strSQL = Replace(conIDINSERTSQL,'XX', 主ID)
strSQL = Replace(strSQL, 'YY', Trim(Str(I)))
strSQL = Replace(strSQL, 'ZZ', Trim(Str(I)))
isOK=XXXExecute(strSQL)
If Not isOK Then
MsgBox "続行不能の致命的エラーが発生しましたので処理を中断します!"
Exit For
End If
Next I
End Sub
XXXExecute(SQL文)は、DoCmd.SQL でも良いとおもいますが関数化した方がスッキリすると思います。
自動発生するのは、こんな感じでよいと思います。
リナンバー機能は、順次に読み込んで更新・追加することになると思います。
3行目を削除したら、4行目が3行目になって5行目が4行目になって最後が追加されるという感じ。
伝票行などではこういう処理が必須ですので、それに準じたやり方でも良いと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 経営情報システム accessでの請求管理について 12 2022/06/11 16:20
- その他(データベース) accessについて 2 2022/05/31 16:58
- その他(データベース) accessでの請求管理について 2 2022/06/13 21:51
- その他(データベース) pythonでsqlight勉強中、クエリー結果の利用法教えて下さい 1 2022/04/28 20:38
- Visual Basic(VBA) 【ExcelVBA】Powerクエリーでいうピボット解除と同じ処理をVBAで 4 2022/07/06 17:09
- SQL Server SQLのクエリの書き方 1 2022/03/29 23:06
- Excel(エクセル) 【条件付き書式】countifsで複数条件を満たしたセルを赤くする方法 2 2023/02/09 23:53
- その他(データベース) c言語の問題です。これを踏まえてコーディングしたいのでおしえていただきたいです。 3 2023/08/03 09:27
- ヤフオク! ヤフオクの、商品IDとオークションIDはちかうのですか? 商品IDで何処にありますか? 1 2023/08/05 20:30
- Amazon AmazonでSSDを返品しました。返品しても購入履歴のところは返品完了にならないのですか?? 3 2023/01/05 17:38
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
"スレスレ" "ギリギリ" を丁寧...
-
「新商品」と「リニューアル商...
-
ACアダプターが売り切れていま...
-
シュガーレディーの無料試食会...
-
岩田のエアブラシCM-CP2とCM-CP...
-
エクセルを使って、商品管理を...
-
スーパーなどの商品について
-
簿記論 商品評価損 洗替法について
-
美容商品の情報はどこで入手し...
-
アディダスはなぜ、デサントと...
-
一物二価っていけないいんですか。
-
ステンレスの単価を教えてください
-
「リピーター」の逆は?
-
【LAWSON】ローソンがユニクロ...
-
マルチ商法のマージンって商品...
-
人形の市場調査、購買層、価格
-
金融機関の商圏
-
市場環境とは
-
裾野拡大ってどういう意味なん...
-
ルノアールはなぜ潰れない?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
"スレスレ" "ギリギリ" を丁寧...
-
「新商品」と「リニューアル商...
-
excel VBAで、置換した結果を別...
-
皆さんなら現品限り(展示品)の...
-
エクセルを使って、商品管理を...
-
Safariでビジターアンケート参...
-
セブンイレブン無料引換券の対...
-
シュガーレディーの無料試食会...
-
統計:アンケート結果の読み解...
-
キツネみたいなブランドの名前...
-
ACアダプターが売り切れていま...
-
USB4 Version 1.0の最大伝送距...
-
エクセルで交換予定時間、納品...
-
信用取引は3倍までできるらしい...
-
ベルマーク・クレラップ
-
「売れ筋」に対して???
-
カールアイロン安物じゃダメ?
-
DTIセキュリティサービスについ...
-
JANコードを知りたいのですが
-
持ち運びできるクーラー探して...
おすすめ情報