2012-04-13 10 views
0

私はMS Accessで単純なチェックボックスをプログラミングしています。これは、それがどのようになるです:MS Accessのプログラミングチェックボックス

  1. 私は、ユーザーが選択できる値のドロップダウンで設定コンボボックスを持っている(例えばB1、B2、C1、D1、D2、D3、E0、E2、など)。彼らはちょうど2文字の文字列です。
  2. ユーザーがドロップダウンの値を変更したいときに使用するチェックボックスがあります。 ds(b1)、ds(b2)のように "ds()"を追加するだけで、チェックボックスをオンにすると基本的にすべての値が 'ds(ドロップダウン値) 、DS(C1)、など)
  3. ユーザーがチェックボックスのチェックを外した場合は、その値は2文字のテキスト文字列としてとどまる。

これは、Accessプログラミングへの私の最初の進出である。次のように私の擬似コードがあります:

Private Sub distchk_Click() 
if distchk is checked then 
    Me.ECOSITE = "ds(" & Me.ECOSITE & ")" 
else: 
    Me.Ecosite 
End Sub 

は、私がテストした:

Private Sub distchk_Click() 
Me.ECOSITE = "ds(" & Me.ECOSITE & ")" 
End Sub 

しかし、チェックするといつでもds()を追加し続け、チェックを外すと削除しません。

どのような提案も素晴らしいでしょう。

マイク

+0

あなたの意図は何ですか?あなたが提案していることは確かにAccessで可能ですが、それはちょっと...正統派ではないと言えます。あなたの最終目標を教えてくれれば、そこに行く良い方法を提案できるかもしれません。 – mwolfe02

+0

これは私の最終結果です。ユーザはコンボボックスから何かを選択するが、これは単に植生の土地被覆タイプの分類である。領域が妨害された場合、分類は修飾子を得る(すなわち、b1ユニットが乱れた場合、ds()修飾子、つまりds(b1))を得る。ユーザーがチェックボックスをオンにして、修飾子を追加するだけです。チェックを外すと、モディファイアが削除されます。 – Mike

+0

データの早すぎる書式設定をしているようです。個別のデータは、入力段階(データ入力フォーム)で個別に保存する必要があります。これにより、UIをよりきれいに保ち、データを出力する際の柔軟性が向上します(レポート、エクスポートなど)。ありがとうmwolfe02。 – mwolfe02

答えて

3

あなた自身のために不要な作業とユーザーのためのより多くの混乱のインターフェースを作っています。あなたは2つののデータを集めています:LandCoverType(テキストフィールド)とIsDisturbed(はい/いいえフィールド、別名ブール値フィールドまたはビットフィールド)ですので、入力フォームでそれらを結合する理由はありません。 「ds()」の土地被覆タイプをラップして、追加情報をユーザーに提供しているわけではありません。私は2つの代替的なアプローチを示唆している:

2つの別々のフィールドを(好ましい方法)

  • がLandCoverTypeフィールド(テキスト)を作成します。コンボボックスをこのフィールドにバインドします(ComboBox ControlSourceにはLandCoverTypeを入力してください)。
  • IsDisturbedフィールドを作成します(Yes/No)。レポートのフィールド(例えば、=IIf([IsDisturbed], "ds(" & [LandCoverType] & ")", [LandCoverType]))のフォーマットの一部としてそれを行う、その後、報告書の「DSを()」を表示したい場合は
  • このフィールドにあなたのチェックボックスをバインドする(上記と同様)

    組み合わせて1つのフィールド

    • (テキスト)
    • 変更とないあなたのLandCoverType年代の全てを含むようにあなたのコンボボックスの値集合ソース単一LandCoverTypeフィールドを作成ds()(例えば、あなたの値集合ソースがある場合バルーグリスト:b1, b2, c1, ds(b1), ds(b2), ds(c1)
  • +0

    私はクライアントごとに設計されたデータベースを訴えるように制限されています。もっと望ましいものや実際に意味をなさないものに合うように変更するよりも柔軟性がありません。 :(私はチェックボックスを使ってこれを行うスクリプトを設定しました。提案に感謝します。私はアプローチが好きで、他のプロジェクトでもうまくいくかもしれません。 – Mike