- ベストアンサー
ACCESSのフォームで、あるテーブルのフィールドが特定の数字で始まる場合に”1”を入力したい。
一覧フォームのフィールドで、表示されていないテーブルのフィールドが、特定の数字から始まるレコードが入力されている場合に、その一覧のフィールドに”1”を入力させたいのですが、やりかたがわかりません。 その一覧フォームが開くときのマクロで、値の代入などやってみましたが全然できません。 考え方が全く思い浮かばずにいます。 ちょっと説明が分かりにくいかと思いますが、その際は補足説明しますのでお願いいたします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
> 特定の数字から始まるレコードが入力されている この部分は意味がよくわかりませんが、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)
<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 全体を取得するより少しはネットワークの通行量が減ります。