ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

Microsoft Office Accessコミュのint型フィールドを空にしたい

  • mixiチェック
  • このエントリーをはてなブックマークに追加
SQLServerと連携したAccess開発をしているAccess歴4か月の者です。
Accessは97環境です。

金融機関の顧客管理・人事管理システムを担当しているのですが、
以下のような問題に出くわしてしまいました。



顧客番号をプライマリキーとして、顧客名・担当支社コード・担当支店コードを1レコードとするテーブルがあります。

支社・支店の統廃合で統廃合対象の支社・支店が担当する顧客の支社・支店を一定期間の間、未設定にする必要があるとユーザーより要望されました。

そこで、画面のボタン操作によって、もともと紐付いている支社コードと支店コードを空にしたいのです。

しかし、ご承知の通り、int型にNullを入れようとすると、[Nullの使い方が不正です。]と怒られます。また、キャストをすれば、[型が一致しません。]とおこられます。

ただ、コード体系で「0」が存在しているので、「0」セットをすることが不可能なのです。

Accessに詳しい先輩社員が夏季休暇であり、その期間中にユーザー検証を迎えるため、解決策が思いつかず大変焦っています。

そこで、皆様のお知恵をお借りできないかと思っております。
お忙しい中恐縮ですが、よろしくお願いいたします。


【参考・テーブルレイアウト】
顧客番号はint型(SQLServerでもint型)、10桁、主キー。
支社・支店はint型(SQLServerではsmallint型)、3桁。

顧客番号   顧客名      支社コード   支店コード
1111111111  ○○ ××     10        22
2222222222  △△ □□     34       115

コメント(6)

支社コード「99」支店コード「999」を「未設定支社・未設定支店」として
未設定とみなすとどうでしょう?
個人的な見解ですが、数値しか入らないからといって計算を行わないフィールドに数値型を使っている時点で設計者がアレゲですね。

>.>2のtadaさんの案だと、実際にその店舗が発生したら破綻しますよね?
なので、値を-1にしてはいかがでしょうか?
それくらいしか思いつきません。

みなさま、さっそくのご解答ありがとうございます。当方、大変感激しております。ご意見をぜひ参考にさせていただきたいと思います。

>マシュタさん
説明が漏れていましたが、仰る通り、このテーブル自体はSQLに存在しており、Accessからはリンクをはり、テーブルを参照しています。

やはり方針転換が必要なのですね…もう少し検討してみようと思います。

ありがとうございます。
>tadaさん
実はそのコード、すでに使われているのです…説明が漏れていました。

でも、使用されていないコードで、未設定とするという手もありですね。新しい切り口が見えてきました。

ありがとうございます。
>えむえむ
厳しいご指摘、その通りだと思います。

今回のようなコード未設定は従来であれば絶対にありえなかったので、想定されていなかったようです。

今回のテーブルは新規作成ですが、その他のテーブルではコードが全てint型で定義されているため、メンテ性を考えると、単独でコードの型を変えるのは厳しい状況です。

値に-1をいれるというのは新しい切り口ですね。もともと未設定でホストから連携されるデータとの整合性があるので、もう少し検討してみようと思います。

ありがとうございます。

ログインすると、みんなのコメントがもっと見れるよ

mixiユーザー
ログインしてコメントしよう!

Microsoft Office Access 更新情報

Microsoft Office Accessのメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。

人気コミュニティランキング