こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

access フォーム1からレコードコピー

access2003 Win-XP

フォーム1
  データ1  コマンドボタン
  データ2  コマンドボタン

フォーム2
  テキスト

 フォーム1のデータを選択してコマンドボタンをクリックし、次のデータも選択クリックして
 フォーム2のテキストへ書き出す。ここへは追加され、複数のデータが書き込まれるように
 したいと考えています。

1つのデータを選択書き出しなら
 Private Sub コマンドボタン_Click()
forms![フォーム2]![データ項目] = Me.データ項目
 End Sub

 これでできますが、テキストにどんどん追加するにはどうすればいいでしょうか?
VBの未熟者です。宜しくお願いします。


 

投稿日時 - 2012-12-11 17:01:11

QNo.7840170

困ってます

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

> テキストにどんどん追加するにはどうすればいいでしょうか?

既存のデータと新規追加するデータを「&」演算子で連結してやればOkです。
ただ、『データの区切り』をどうするか、という点が、悩みどころになります(汗)
(それと、空白(Null/空文字)の扱いも)

a)とりあえず、何も考えずにつなげてしまってよいのなら、以下の通り:
 (データ1~データ4がそれぞれ「Test1」「テスト2」「空文字」「Null」なら、
  「Test1テスト2」になります:Nullも空文字も区別なし、総件数も不明)

Private Sub コマンドボタン_Click()

  Forms![フォーム2]![データ項目] = Forms![フォーム2]![データ項目] & Me![データ項目]

End Sub


b)「/」(スラッシュ)で区切る場合(但しデータ間にのみ入れる):
 (こちらの場合は「Test1/テスト2//(Null)」になります:「/」の前後に文字が
  なければ空文字の存在を、「/」の数から総件数を、それぞれ判別可能)

Private Sub コマンドボタン_Click()

  '追加値を記録するための変数を宣言
  Dim vVal As Variant

  '追加値を記録(Nullは「(Null)」という文字列に変換)
  vVal = Nz(Me![データ項目], "(Null)")

  '転記
  If IsNull(Forms![フォーム2]![データ項目]) Then
    '1件目なので「/」は不要
    Forms![フォーム2]![データ項目] = vVal
  Else
    '2件目以降は「/」で区切って追加
    Forms![フォーム2]![データ項目] = Forms![フォーム2]![データ項目] & "/" vVal
  End If

End Sub


・・・以上です。

なお、実際のデータに「/」が含まれる場合は、データに含まれない適当な記号を
使用してください。
(例えば「|」、「;」など。なお、転記データが数値のみだった場合に桁区切りと
 判断されるのを防ぐため、「,」は避けてください)

投稿日時 - 2012-12-11 22:48:34

お礼

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

投稿日時 - 2012-12-13 12:37:43

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問