ありがとう。
Eメールから、インポートしたフィールド「内容」に
From: gosh
Sent: Tuesday, September 09, 2014 12:29 AM
To: Mits
ご職業:2人
都道府県:京都府
市区郡(町/村):宇治市
といった、改行のあるテキストデータコロン : と:が混在が入ってます。
これを、
同じレコードで、コロンの前をフィールド名(既定)でコロンのあとが値の
フィールド「To」に値 Mits
フィールド「From」に値 gosh
...
フィールド「市区郡(町/村)」に値 宇治市
という具合にするにはどのような方法があるでしょうか?
No.2ベストアンサー
- 回答日時:
No1です。
コードの途中で、
For j = 1 To rs.Fields.Count - 1
となっていますが、
For j = 0 To rs.Fields.Count - 1
としてください。
piroin654さん、完璧に思っていたことができました。質問してよかったです。拝見して、自分のできる範囲を大幅に超えていました。教えていただいたコードをまず勉強します。本当にありがとうございました。感謝。
No.1
- 回答日時:
テーブル名を「テーブル1」とします。
以下のコードを標準モジュールに貼り付け
イミディエイトウィンドウで実行するか、
あるいはtestの中身をフォームなどの
ボタンクリックのイベントで実行してみてください。
なお、DAOを使用しているのでコード表の参照設定
から、DAOにチェックが入っているか確認してください。
また、コードの中で
'先頭の余白を削除
If Left(strPart, 1) = " " Then
strPart = LTrim(strPart)
End If
がありますが、質問のデータを元にすると
テーブルに収めたときに先頭に余白が
できるので、削除するコードをいれました。
必要がなければこの部分を削除するか
コメントアウトしてください。
Sub test()
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim strVar As Variant
Dim strPart As String
Dim strField As String
Dim i As Long
Dim j As Long
Set db = CurrentDb
Set rs = db.OpenRecordset("テーブル1", dbOpenDynaset)
rs.MoveFirst
Do Until rs.EOF
strVar = Split(rs!内容, vbCrLf)
For i = 0 To UBound(strVar)
If InStr(strVar(i), ":") > 0 Then
'":"より右の文字列
strPart = Right(strVar(i), Len(strVar(i)) - InStr(strVar(i), ":"))
'先頭の余白を削除
If Left(strPart, 1) = " " Then
strPart = LTrim(strPart)
End If
'":"より左の文字列
strField = Left(strVar(i), InStr(strVar(i), ":") - 1)
'フィールドの名前と一致したら一致したフィールドに書き込み
For j = 1 To rs.Fields.Count - 1
If rs.Fields(j).Name = strField Then
rs.Edit
rs.Fields(j) = strPart
rs.Update
End If
Next j
End If
Next i
rs.MoveNext
Loop
rs.Close: Set rs = Nothing
db.Close: Set db = Nothing
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) アクセスの更新クエリでカレントレコードのみ更新したい 1 2022/06/02 23:32
- MySQL 下記の問合せを行うクエリを、PhpMyAdminで作成して実行せよ。 日本の全市区町村を人口密度が低 1 2023/06/18 19:51
- Access(アクセス) Accessテキストボックス内に2つのフィールドの値を比較して大きい方の値を表示させる方法 1 2022/09/09 10:50
- Access(アクセス) access,vbaでフォルダ内のファイルをテーブルにインポート、ファイル名もフィールドに追加したい 1 2022/08/31 11:11
- MySQL 下記の問合せを行うクエリを、PhpMyAdminで作成して実行せよ。 神奈川県の市区町村の一覧。ただ 3 2023/05/01 18:01
- その他(データベース) 更新クエリをリンクデータベーステーブルに実行し実行時エラー3362固有インデックスに重複する値が含ま 1 2022/09/21 11:44
- その他(Microsoft Office) ピボットテーブルへの集計フィールド挿入 1 2023/02/26 11:33
- PHP クエリObjectをforeachで回す時に、次のレコードへ移動せずに次のレコードを取得したい 2 2022/07/28 15:29
- Access(アクセス) Accessテーブルの結合で別々のテーブルのフィールドを組み合わせて値を出す方法について 2 2022/07/20 19:43
- MySQL うまくいきません教えてくださいお願いしますSQLです。クエリ構文です。 1 2023/07/07 12:39
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
DataTableに特定のフィールドが...
-
日付と文字列を条件としてDLook...
-
Accessのフィールド名に半角括...
-
Access 2010で実行時エラー3061
-
2つ目のレコードの値を取得す...
-
accessでフィールド追加のあと...
-
NULLを含む文字列の結合で...
-
テーブルのデータ型の変更がで...
-
Access Dcount関数で引数が指定...
-
ADOをし使用して、Accessのテー...
-
クリスタルレポートで0件時の表示
-
クリスタルレポートの式フィー...
-
クリスタルレポート(8.5)の書式...
-
ADOでNullフィールドの抽出
-
FTPサーバーから受信したファイ...
-
2次元のdictionary
-
ACCESSのエラー
-
ACCESSで日別集計をする場合
-
INT64対応のprintf系関数はあり...
-
AccessのDAOでフィールド名を配...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Accessのフィールド名に半角括...
-
DataTableに特定のフィールドが...
-
accessでフィールド追加のあと...
-
INT64対応のprintf系関数はあり...
-
2つ目のレコードの値を取得す...
-
Access 2010で実行時エラー3061
-
日付と文字列を条件としてDLook...
-
AccessのDAOでフィールド名を配...
-
SQLで複数のテーブルと結合した...
-
テーブルのデータ型の変更がで...
-
フィールド名をループの添え字...
-
クリスタルレポート(8.5)の書式...
-
AccessVBAで他テーブルのデータ...
-
アクセスでADO 並べ替えが適用...
-
Accessの画像挿入のVBAコード
-
NULLを含む文字列の結合で...
-
クリスタルレポートで文字列の...
-
ACCESSデータベースにV...
-
ノーツ:ユーザ名から別名を取...
-
Access クエリで変数を参照する...
おすすめ情報