• ベストアンサー

アクセス 入力した文字を自動で他のフィールドに返す

アクセス2000を使用しています。 フォームでテーブルにデータを入力しています。 フィールド1に【みかん A-1】と入力するとフィールド2に自動的に【みかん】と 空白の前の文字を返したいのですが可能でしょうか? 必ず半角のスペースが間に入りますのでその前の文字(文字数は決まってません)を 自動で入力されるようにしたいです。 テーブルのフィールドにも入力されるように反映もしたいです。 DLookupではやはりフィールド全体になりますよね? 分かりにくい説明ですがよろしくお願いします。 初心者ですので分かりやすく教えて頂けると助かります。

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

  • ベストアンサー
  • piroin654
  • ベストアンサー率75% (692/917)
回答No.3

フィールド1の更新後処理のイベントで、 Private Sub フィールド1_AfterUpdate()   Dim var As Variant   'split関数で変数varに文字列を半角スペースのところで分離して格納します。配列です。   var = Split(Me!フィールド1, " ")   '分解した文字列の最初を取り出しフィールド2にいれます   Me!フィールド2 = var(0) End Sub でいいのでは? 更新後処理ですから、フィールド1に入力後 フィールド2などをクリックしてフォーカス を移動するようにします。

IloveCECIL
質問者

お礼

出来ました!!ありがとうございました。

すると、全ての回答が全文表示されます。

その他の回答 (5)

回答No.6

CutStr()は関数として標準モジュールに登録します。

IloveCECIL
質問者

お礼

できました!丁寧にありがとうございました。 勉強になりました。

すると、全ての回答が全文表示されます。
回答No.5

>テーブルのフィールドにも反映したい。 失礼。ここは読んでいませんでした。連結列は Private Sub フィールド1_BeforeUpdate(Cancel As Integer)   Me.[フィールド2] = CutStr([フィールド1] & "", " ", 1) End Sub と、イベントを利用すべきでした。

IloveCECIL
質問者

補足

イベントでしてみたのですがコンパイルエラーがでます。 SubまたはFunctionが定義されていません。となるのですが イベントに書き込むだけではダメなのでしょうか?

すると、全ての回答が全文表示されます。
回答No.4

Q1、上のコードはどこにしたらいいのでしょうか? A1、標準モジュールに関数(Function)として登録します。 Q2、テキスト3とは? A2、フィールド2に相当します。 つまり、標準モジュールにDlookup()と同じ働きをする関数CutStr()を登録。 もって、[フィールド2]のコントロールソースを指定して目的を達成。 そういう回答です。

IloveCECIL
質問者

補足

フィールド2には文字はでますがやはりコントロールソースを変更してしまうと テーブルに反映されずに入力できていませんでした。 テーブルに反映されるようにしたいです。 やり方を勉強したいので、あれば教えて下さい。

すると、全ての回答が全文表示されます。
回答No.2

補足:iif関数を使わない例 =CutStr([テキスト1] & ""," ",1)

すると、全ての回答が全文表示されます。
回答No.1

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

IloveCECIL
質問者

補足

上のコードはどこにしたらいいのでしょうか? 画像ではテキスト3のコントロールソースがありますがテキスト3は 新たにどこかに作る感じですか? 全くの無知でお恥ずかしいです。。。

すると、全ての回答が全文表示されます。

関連するQ&A