• ベストアンサー

ACCESSのフォームで、あるテーブルのフィールドが特定の数字で始まる場合に”1”を入力したい。

一覧フォームのフィールドで、表示されていないテーブルのフィールドが、特定の数字から始まるレコードが入力されている場合に、その一覧のフィールドに”1”を入力させたいのですが、やりかたがわかりません。 その一覧フォームが開くときのマクロで、値の代入などやってみましたが全然できません。 考え方が全く思い浮かばずにいます。 ちょっと説明が分かりにくいかと思いますが、その際は補足説明しますのでお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • soaikats
  • ベストアンサー率58% (14/24)
回答No.1

> 特定の数字から始まるレコードが入力されている この部分は意味がよくわかりませんが、2通りの解釈で回答します。 ※特定の数字は仮に"3"としています。 1「テーブルtblAにフィールドFld1とFld2があって フォーム上でFld1が非表示、Fld2が表示される」ならば、 Form_LoadにてSQLを実行すればよいと思われます。 「Update tblA Set Fld2="1" Where Right(Fld1,1) Like "3"」 2「項目Fld1(非表示)の参照情報をテキストボックスtxtAに 表示する」ならば、 txtAのコントロールソースを以下のようにすればよいです。 「=Iif(Left(txtB.value,1) Like "3","1","")」

その他の回答 (1)

noname#22222
noname#22222
回答No.2

<Test> ID Field_1 1  110 2  220 3  330 SELECT Left(Field_1, 1) FROM Test WHERE ID=2 というSQL文を実行するDBLookup関数を仮定します。 その幾つかの実行結果の取得例を示しておきます。 [イミディエイト] ? DBLookup("Left(Field_1, 1)", "Test", "ID=2") 2 ? DBLookup("Left(Field_1, 1)", "Test", "ID=2")=2 True ? abs(DBLookup("Left(Field_1, 1)", "Test", "ID=2")=2) 1 ? mid(" 1",abs(DBLookup("Left(Field_1, 1)", "Test", "ID=2")=2)+1,1) 1 ・最初の例は、左の一桁を取得して表示。 ・次は、それが特定の値に合致しているか否かを表示。 ・次の次は、さらに0と1に置換。 ・最後は、0と1を1と2に置換した上で、mid関数でブランクと1に置換。 まあ、Field_1 全体を取得するより少しはネットワークの通行量が減ります。

関連するQ&A