- ベストアンサー
アクセス 入力した文字を自動で他のフィールドに返す
アクセス2000を使用しています。 フォームでテーブルにデータを入力しています。 フィールド1に【みかん A-1】と入力するとフィールド2に自動的に【みかん】と 空白の前の文字を返したいのですが可能でしょうか? 必ず半角のスペースが間に入りますのでその前の文字(文字数は決まってません)を 自動で入力されるようにしたいです。 テーブルのフィールドにも入力されるように反映もしたいです。 DLookupではやはりフィールド全体になりますよね? 分かりにくい説明ですがよろしくお願いします。 初心者ですので分かりやすく教えて頂けると助かります。
- IloveCECIL
- お礼率38% (26/67)
- オフィス系ソフト
- 回答数6
- ありがとう数2
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
フィールド1の更新後処理のイベントで、 Private Sub フィールド1_AfterUpdate() Dim var As Variant 'split関数で変数varに文字列を半角スペースのところで分離して格納します。配列です。 var = Split(Me!フィールド1, " ") '分解した文字列の最初を取り出しフィールド2にいれます Me!フィールド2 = var(0) End Sub でいいのでは? 更新後処理ですから、フィールド1に入力後 フィールド2などをクリックしてフォーカス を移動するようにします。
その他の回答 (5)
- 山田 太郎(@f_a_007)
- ベストアンサー率20% (955/4574)
CutStr()は関数として標準モジュールに登録します。
お礼
できました!丁寧にありがとうございました。 勉強になりました。
- 山田 太郎(@f_a_007)
- ベストアンサー率20% (955/4574)
>テーブルのフィールドにも反映したい。 失礼。ここは読んでいませんでした。連結列は Private Sub フィールド1_BeforeUpdate(Cancel As Integer) Me.[フィールド2] = CutStr([フィールド1] & "", " ", 1) End Sub と、イベントを利用すべきでした。
補足
イベントでしてみたのですがコンパイルエラーがでます。 SubまたはFunctionが定義されていません。となるのですが イベントに書き込むだけではダメなのでしょうか?
- 山田 太郎(@f_a_007)
- ベストアンサー率20% (955/4574)
Q1、上のコードはどこにしたらいいのでしょうか? A1、標準モジュールに関数(Function)として登録します。 Q2、テキスト3とは? A2、フィールド2に相当します。 つまり、標準モジュールにDlookup()と同じ働きをする関数CutStr()を登録。 もって、[フィールド2]のコントロールソースを指定して目的を達成。 そういう回答です。
補足
フィールド2には文字はでますがやはりコントロールソースを変更してしまうと テーブルに反映されずに入力できていませんでした。 テーブルに反映されるようにしたいです。 やり方を勉強したいので、あれば教えて下さい。
- 山田 太郎(@f_a_007)
- ベストアンサー率20% (955/4574)
補足:iif関数を使わない例 =CutStr([テキスト1] & ""," ",1)
- 山田 太郎(@f_a_007)
- ベストアンサー率20% (955/4574)
Option Compare Database Public Function CutStr(ByVal Text As String, ByVal Separator As String, ByVal N As Integer) As String Dim strDatas() As String strDatas = Split("" & Separator & Text, Separator, , 0) CutStr = strDatas(N * Abs(N <= UBound(strDatas))) End Function 上の CutStr関数を使うと簡単に実現できます。 ? CutStr("AAA BBB", " ", 1) AAA ? CutStr("AAA BBB", " ", 2) BBB
補足
上のコードはどこにしたらいいのでしょうか? 画像ではテキスト3のコントロールソースがありますがテキスト3は 新たにどこかに作る感じですか? 全くの無知でお恥ずかしいです。。。
関連するQ&A
- 自動で入力した文字をテーブルに反映させたい
画像のようなテーブルがあるとします。 このテーブルは基準値などを入れておくテーブルでテーブル1とします。 このテーブルを基にしたフォームがあり、そこで入力できるようになっています。 フォームで品番を入力したら色種類と詳細が自動でて、テーブルにも反映されるようにしたいです。 品名は教えて頂き品番を入力したら空白前の文字が返るように設定しています。 色々考えてるうちに何をどうしていいか訳が分からなくなってしまいました。。。 品名、色種類、詳細だけのテーブルをもう一つ作ってそれを参照にしたらいいのか?? 初心者ですので分かりやすくお願いします。 アクセスは2002を使っています。
- ベストアンサー
- オフィス系ソフト
- ACCESSのデータに自動で半角スペースを入れたい
ACCESSのデータに自動で半角スペースを入れたい 例えば フィールドサイズ:15(テキスト型) のフィールドに10桁の数字を入力 した場合、残りの5桁に自動的に半角スペース(もしくは「0」)を入力する方法はないでしょうか? 例) 1234567890 → 000001234567890 → @@@@@1234567890(@は半角スペース) テーブル・クエリどちらでもかまいませんので教えてください。 よろしくお願いします。
- ベストアンサー
- その他(データベース)
- Accessのふりがな自動入力
お世話になります。 Accessの振り仮名自動入力機能について質問致します。 ウィザードで振り仮名自動入力を設定したのですが、 テーブルから入力すれば設定が反映されるのに、作成 した入力フォームでは自動入力機能が反映されません。 これは何故なのでしょうか? 以前試したときは、ちゃんと入力フォームでも自動入力されたのですが・・・・。
- ベストアンサー
- その他(データベース)
- Accessで、他の二つのフィールドの値を結合し自動的に入力する
Accessについて質問です テーブル フィールド1(テキスト) フィールド2(テキスト) フィールド3(テキスト) フィールド3の値はフィールド1と2の値を結合させた値を自動で入力し フィールド1や2を更新すると、自動的にフィールド3の値も更新される というのはできますでしょうか?
- 締切済み
- その他(データベース)
- Accessのフィールドサイズ
Access2000を使用していますが、テーブル作成時に 「テキスト型」でフィールドサイズを「10」に設定して データを入力すると、半角でも全角でも「10桁」までの入力に なりますが、フィールドサイズは半角も全角も関係ないのでしょうか? 「テキスト型」の最大フィールドサイズは「半角255文字」と 思っていたのですが、全角でも255文字入力できました。
- ベストアンサー
- オフィス系ソフト
- Access フィールドに入力した値を、同じテーブルの別のフィールドにコピーしたい。
Accessについて質問させていただきます。 フィールドに入力した値が、同じテーブルの別のフィールドに自動的に入力され、あとでその別フィールドを書き換えても最初に入力したフィールドに反映しないような仕組みを作りたいのですが、やり方が判りません。 初歩的な質問で申し訳ないのですが、ご存知の方がおられましたら、お教えください。
- 締切済み
- オフィス系ソフト
- Access2003 入力規則?
テーブルで、氏名を入力するフィールドがあります。 氏名入力はいろんな人が行っているため、氏と名の間のスペースが半角だったり全角だったり混在しています。 今後テーブルへ入力した時に、全角スペースになっているものは自動的に半角スペースに変換される方法とかはないでしょうか? できるだけ簡単な方法をよろしくお願いしますm(_ _)m
- 締切済み
- オフィス系ソフト
- アクセスでの、フォームとテーブルの連動の方法を教えてください
初歩の初歩だと思うのですが、教えてください。 アクセスで、テーブルのフィールドと全く同じ内容でフォームを作りました。(受講生情報の管理) その中で「性別番号」と「性別」があり、(「性別番号」と「性別」は、別にテーブルを作っています)フォーム上では「性別番号」に番号(男なら1、女なら2)を入力すると「性別」に自動で値が入るように設定できたのですが、テーブルに反映されません。(フォームの「性別」のプロパティのコントロールソースに”DLOOKUP~”を入力しました) テーブル上にも同じように反映させるには、どうすればよいのでしょうか。 同様の質問と思われるものを参考にいろいろとやってみたのですが、どうもうまくいかなくって・・・ よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- Accessでフィールドを追加したい
Accessであるシステムを作成しているのですが、いくつか不明な点があるのでアドバイスをお願いします。 「社員情報」をいうテーブルがあり、初期の状態で「社員番号」「氏名」「入社年月日」「年齢」とフィールドがあります。 このテーブルを基にフォーム「社員情報入力」も作ってあります。 ここで新たに、社員情報テーブルに「生年月日」「連絡先」など、フィールドを追加したいのですが・・・以下のような条件があるので、どうしていいのかわからず困っています。 【条件】 ・フィールド追加用のフォーム(新規フィールド名を入力させる)を作り、そこからフィールドを追加させる。(直接テーブルはいじらせないため) ・追加したフィールドを社員情報入力フォームに反映(表示)させたい ・追加したフィールドをレポートにも反映(表示)させたい このような条件でフィールドの追加は無理なのでしょうか? アドバイスや参考になるページを教えてください。 よろしくお願いします。
- ベストアンサー
- その他(データベース)
- Access97で自動入力と反映が違うテーブルの場合
こんにちは、前の質問などでフォームへの自動入力は何とかできるようになったのですが、今度はその入力したデータを他のテーブルBに反映させたいのですが、どうしたら良いのでしょうか? テーブルA 店舗コード 店舗名 ※テーブルAの管理者は私ではなく、ネットワークで私のPCと「テーブルのリンク」でつながっています。 テーブルB 店舗コード 店舗名 商品番号 他に店の情報フィールドをいくつか作成 フォームC 店舗コード 店舗名 商品番号 他に店の情報テキストボックスをいくつか作成 フォームCで、店舗コードを入力したら店舗名が自動的に入力される方法は、フォームCのレコードソースをテーブルAにして、店舗コードの更新後処理をイベントプロシージャにして、下記イベントコードを設定しました。 Private Sub 店舗コード_AfterUpdate() Me![店舗名]=DLookup("店舗名","テーブルA","店舗コード=" & Me![店舗コード] & " ") End Sub そして、フォームの残りのテキストボックスに、店と商品に関するデータを入力し、入力した全てのデータをテーブルBに反映させたいのですが、どうしたら良いのでしょうか? 自動入力の方法でDLookupを使用したのがいけなかったのでしょうか? また、できればテーブルBは商品番号順に並びかえられているのですが、入力したら商品番号のリストの一番下に挿入されるという形にしたいのです。 どうかよろしくお願いします。
- ベストアンサー
- オフィス系ソフト
お礼
出来ました!!ありがとうございました。