No.2
- 回答日時:
今のところ答えが載りませんね。
今後良い答えが上がらない時は下記VBAを実行してみてください。
Option Compare Database
Sub test01()
Dim d(100)
Dim dbs As Database
Dim rst As Recordset
Set dbs = CurrentDb
Set rst = dbs.OpenRecordset("Data1")
rst.MoveFirst
'-----
Open "c:\My Documents\aa9.txt" For Input As #1
While Not EOF(1)
Line Input #1, a
'----項目切りだし->配列d(j)へセット
s = 1: j = 1
p01:
p = InStr(s, a, ",")
If p = 0 Then
d(j) = Mid(a, s, Len(a) - s + 1)
GoTo p02
Else
d(j) = Mid(a, s, p - s)
s = p + 1
j = j + 1
End If
GoTo p01
'------------mdb更新
p02:
rst.AddNew
rst![フィールド1] = d(1)
rst![フィールド2] = d(2)
rst![フィールド3] = d(3)
rst.Update
rst.MoveNext
'------------
Wend
'---終了
Close #1
rst.Close
End Sub
アクセスのモジュールへ貼りつけて、
インプットファイル名=テキストファイル
="c:\My Documents\aa9.txt"のところ
アウトプットファイル名=アクセスのテーブル名
=("Data1")のところ
アクセステーブルのフィールド名
rst![フィールド1] = d(1)
rst![フィールド2] = d(2)
rst![フィールド3] = d(3)
のところ。フィールドの名前と連ねる数(項目数)
を自分の場合に合わせて変更のこと。
その後実行する。
(元データ)私の場合のデータ
1, , 123
23, 234, 大阪
123 , 23, kyouto
(結果)OKWEBの表示は左へ詰まったりしますが、実際は正しくなると思います。
IDフィールド1フィールド2フィールド3
23 1 123
24 23 234 大阪
25123 23 kyouto
No.1
- 回答日時:
インポートの仕様ですかね、空白は省かれてしまうようでうす。
で、解決するにはテキストファイルをバイナリーで読み込んで1文字ずつ処理をするということになります。
以下にサンプルコードを入れておきましたので参考にしてみてください。
一部配列を使用していますが、2項目であれば配列でなくても問題ありません。
"取り込みデータ:項目1、項目2"というテーブルを作成しておいてください。
この関数をデバッグウィンドウなどから呼び出してやれば実行できます。
inText("c:\textdata.txt")
コード
Sub inText(FileName As String)
Dim Bdata As Byte, RecordText As String, RecordData(100) As String, i, j
'格納するテーブルを開きます
Dim cdb As Database
Dim rst As Recordset
Set cdb = CurrentDb
Set rst = cdb.OpenRecordset("取り込みデータ")
'読み込むファイルをバイナリーモードで開きます
Open FileName For Binary As #1
i = 1
j = 1
While (EOF(1) = False)
'バイナリーでの読み込み
Get #1, i, Bdata
'改行コードとカンマの検出
If Bdata = 13 Or Bdata = 44 Then
'データの分割
If Bdata = 44 Then
RecordData(1) = RecordText
RecordText = ""
Else
'テーブルへの書き込み
rst.AddNew
rst![項目1] = RecordData(1)
rst![項目2] = RecordText
rst.Update
RecordText = ""
End If
'バイナリーで読み込んだデータのテキスト化
ElseIf Bdata > 31 Then
RecordText = RecordText + Chr(Bdata)
End If
i = i + 1
Wend
Close #1
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
推しミネラルウォーターはありますか?
推しミネラルウォーターがあったら教えてください
-
フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
あなたが普段思っている「これまだ誰も言ってなかったけど共感されるだろうな」というあるあるを教えてください
-
映画のエンドロール観る派?観ない派?
映画が終わった後、すぐに席を立って帰る方もちらほら見かけます。皆さんはエンドロールの最後まで観ていきますか?
-
海外旅行から帰ってきたら、まず何を食べる?
帰国して1番食べたくなるもの、食べたくなるだろうなと思うもの、皆さんはありますか?
-
天使と悪魔選手権
悪魔がこんなささやきをしていたら、天使のあなたはなんと言って止めますか?
-
アクセスでのテキストデータ取り込みについて
その他(データベース)
-
空白をそのままインポートする方法について
その他(データベース)
-
ACCESSのデータに自動で半角スペースを入れたい
その他(データベース)
-
-
4
アクセスで入力したデータの順番が変わってしまいます
その他(ビジネス・キャリア)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルのデータをアクセスに...
-
Accessチェックボックス 一度で...
-
ACCESSのテーブルのデータで、...
-
差込印刷での全角表示について...
-
SQL文で パラメータが少なすぎ...
-
エクセルにおける「フィールド...
-
日付型のフィールドに空白を入...
-
テーブルに表示されているもの...
-
ACCESSでフィールド名の変更(...
-
クロス集計クエリの結果をテー...
-
2つのテーブルに共通するレコ...
-
Access複数のクエリをExcelの1...
-
Accessの最大レコード数
-
Accessのオートナンバーについて
-
Excleピボットでデータのない部...
-
ACCESS 「パラメータの入力」...
-
ACCESS クエリの抽出条件に他の...
-
ACCESSでテーブルの一部だけを...
-
デザインビューにてテーブルが...
-
Access で 特定の文字の個数を...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ACCESSのテーブルのデータで、...
-
EXCEL→ACCESSインポートでセル...
-
エクセルのデータをアクセスに...
-
ACCESSで改行コードを削除する方法
-
Accessチェックボックス 一度で...
-
アクセスのオートナンバーが飛...
-
ACCESS フォームに入力できる文...
-
郵便番号の-(ハイフン)等をま...
-
ACCESSで行数を増やすには?
-
ACCESSのカスタマーバーコード...
-
アクセス2000で固定長フィール...
-
Access2000 テキストデータの...
-
Access2003でフィールドのデー...
-
ACCESS 検索置換 にデ...
-
accessクエリで文字を結合とCSV...
-
エクセルの重複データについて...
-
ファイルメーカーからメールソ...
-
エクセルのデータをアクセスへ...
-
差込印刷での全角表示について...
-
日付型のフィールドに空白を入...
おすすめ情報