ACCESS2000でExcelから特定のフィールドをインポートしたいのですが、
うまくいきません。
Excelはフィールド数が254フィールドもあり、
テーブルにインポートしたいフィールド数は30フィールドです。
Excelでは特定フィールドをインポートすることができないようなので、
一時テーブルに全てのフィールドをインポート後
必要なフィールドだけ取り出そうとやってみたのですが、
以下のコードを実行すると、13のフィールドが「解析不能なフィールド」と
インポートエラーが出てしまいます。
DoCmd.TransferSpreadsheet acImport, 8, "TEMPテーブル", "c:\data.xls"
また、Excelファイルをcsv形式に変換して、インポート定義を作る方法も
やってみたのですが、インポート定義作成時に
「フィールド'ID'はインポートまたはエクスポートしようとしている
テーブルまたクエリに存在しません」
というエラーが出てしまいます。
どうしたらインポートできるでしょうか。よろしくお願いします。
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
CSVファイルの項目(フィールド)の1部をCSVファイルにするコーディングを作りました。
あとMDBに読みこませるのは略しましたが、お望みなら別途。DOS・BASIC的ステートメントを使っていますが
よろしく。
(1)エクセルファイルが開いているとして
「ファイル」「名前を付けて保存」をクリック。
「ファイルの種類」はCSV
「ファイル名」は「13年家計簿.csv」
「保存」をクリック
c:\My Documents\13年家計簿.csvが出来る。
(2)新規Book1を開きツール-マクロ-VBE
そして挿入-標準モジュール
下記を貼り付ける。
(3)Sub test01()
Open "c:\My Documents\13年家計簿.csv" For Input As #1
Open "c:\My Documents\13年家計簿p.csv" For Output As #2
a = Array(0, 1, 2, 3, 4, 6, 999, 0, 0, 0, 0, 0, 0, 0)
While Not EOF(1) = -1
Line Input #1, r
' MsgBox r
s = 1
k = 0
m = 1
t = ""
p1:
p = InStr(s, r, ",")
If p = 0 Then p = Len(r) + 1
rp = Mid(r, s, p - s)
' MsgBox rp
s = p + 1
pm = s
k = k + 1
If a(m) = k Then
t = t & rp & ","
m = m + 1
End If
If p = Len(r) + 1 Then GoTo p2
GoTo p1
p2:
' MsgBox t
Print #2, Mid(t, 1, Len(t) - 1)
Wend
Close #1
Close #2
End Sub
(4)実行する。
c:\My Documents\13年家計簿p.csvが出来る。
上例ではaのarrayに指定した、第1, 2, 3, 4, 6フィールドのみ拾い、他は捨てたCSVファイルが出来る。
aのarrayの中の数字で、残したいフィールドが左より
第何番目かをテーブル化してください。昇順のこと。
(5)解説
s---レコード内での毎回「,」を探し始める位置。第何文字目から文字検索をはじめるか。Instrの説明を本で見てください。
p---レコード内で「,」の見つかった位置。先頭から何文字目に見つかったか。
m---a配列の第何要素を見ているかのポインタ数字。
k---第何番めのフィールドかを表す数字。
r---読みこんだ1レコード(1行)をいれる文字列変数。
・1フィールドづつきりだしa配列にある、番目のフィールドは拾い、無ければ捨てて、フィールド集合を文字列として再構成し、#2に書き出している。
10列100行程度のデータでテスト済み。
No.2
- 回答日時:
フィールド名に「ID」はまずいような気がします。
別の名前に変えても同じでしょうか?特にAccessの予約語が含まれるようなフィールド名もやめた方が良いと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) access,vbaでフォルダ内のファイルをテーブルにインポート、ファイル名もフィールドに追加したい 1 2022/08/31 11:11
- Outlook(アウトルック) 【 Windows 10 】アドレス帳に正しくインポートを完了させたい。 3 2023/04/23 13:41
- その他(データベース) 更新クエリをリンクデータベーステーブルに実行し実行時エラー3362固有インデックスに重複する値が含ま 1 2022/09/21 11:44
- Access(アクセス) アクセスの更新クエリでカレントレコードのみ更新したい 1 2022/06/02 23:32
- Access(アクセス) Accessのスプレッドシートエクスポートで、シートが追加されてしまう 2 2022/07/16 21:45
- Access(アクセス) accessでexcelを読み込む時のデータ型 1 2022/03/28 19:45
- その他(データベース) Accessフォームからパラメーターで表示したレコードを指定のExcelのセルへ転送する方法について 2 2022/08/22 18:04
- Access(アクセス) Accessテーブルの結合で別々のテーブルのフィールドを組み合わせて値を出す方法について 2 2022/07/20 19:43
- Access(アクセス) Access2016のExcelインポートの機能のことで教えてください 1 2022/09/11 14:58
- その他(データベース) Accessのクエリで1フィールドの抽出条件設定をNullでなく全角半角含む空白のみの文字列でない文 1 2023/04/24 15:20
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教える店舗&オフィスのセキュリティ対策術
中・小規模の店舗やオフィスのセキュリティセキュリティ対策について、プロにどう対策すべきか 何を注意すべきかを教えていただきました!
-
アクセスにtxtファイルの指定行のみインポートしたい
PowerPoint(パワーポイント)
-
Access インポート
Access(アクセス)
-
エクセルからアクセスにインポートすると、エラーが出てしまいます。原因を教えていただけませんか。
Access(アクセス)
-
-
4
Accessでテーブルの値をテキストボックスに代入するには?
Access(アクセス)
-
5
ACCESSで空白のデーターをクエリで判定/識別する方法を教えてくださ
Access(アクセス)
-
6
SQL文で パラメータが少なすぎます エラー
Access(アクセス)
-
7
accessでexcelデータを一部変換してインポートするVBAコードを教えてください。
Access(アクセス)
-
8
2つのテーブルに共通するレコードを削除したい
Access(アクセス)
-
9
ACCESS で 項目名を出力せずにエクスポートしたい
その他(データベース)
-
10
Access2003 クエリで、空の列は作れますか?
Access(アクセス)
-
11
Accessのマクロでモジュールを実行させたい。
Access(アクセス)
-
12
新規レコード行を非表示にしたい
Access(アクセス)
-
13
ACCESSのVBで、エクセルファイルの最終行を取得
Excel(エクセル)
-
14
ACCESS VBAでインポート定義の場所
Access(アクセス)
-
15
AccessVBAで作成したExcelファイルを削除する方法は?
Visual Basic(VBA)
-
16
ACCESSのテーブルのデータで、先頭に「000」を付与するほう右方
Access(アクセス)
-
17
サブフォームが見えなくなる。
Access(アクセス)
-
18
Access テキスト型に対する指定桁での0埋め方法
その他(データベース)
-
19
Accessでレコードを別テーブルへコピーするには
Access(アクセス)
-
20
アクセス VBAについて FROM句の構文エラー
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
差込印刷での全角表示について...
-
エクセルにおける「フィールド...
-
Wordの差込印刷時間の表示について
-
csvファイルのインポート
-
ACCESS 重複データを1...
-
ワードファイルの文字数制限ロ...
-
CSVファイル読み込みでズレがお...
-
アクセス:Yes/No型→チェックい...
-
Accessのハイパーリンクをクリ...
-
クエリで割り算する方法を教え...
-
ACCESSのデータに自動で半角ス...
-
varchar型の入力できる最大文字...
-
VBAよりCSVファイルの任意の行...
-
datetime型のUpdate文
-
ACCESSで条件によってフォーム...
-
レコードの内容にハイフンをつ...
-
「Access2007」でレポートが作...
-
実行時エラー '3464': 抽出条件...
-
列を移動させるvbaコードを教え...
-
ToV、サブイベント・犬マップの...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
差込印刷での全角表示について...
-
エクセルにおける「フィールド...
-
エクセルデータをワードで差し...
-
ACCESS 重複データを1...
-
フィールドの更新がない
-
クエリで割り算する方法を教え...
-
ACCESSのデータに自動で半角ス...
-
Word差し込み印刷のハイフン(...
-
Accessのハイパーリンクをクリ...
-
Acsess アクセス のクエリで...
-
アクセスのクエリでパラメータ...
-
ACCESSでフィールド名の変更(...
-
ACCESSで条件によってフォーム...
-
実行時エラー '3464': 抽出条件...
-
列を移動させるvbaコードを教え...
-
クエリーで、全角混じりデータ...
-
レコードの内容にハイフンをつ...
-
sqlserverにはグループ集計のfi...
-
Accessフィールド分割
-
ACCESSでフィールドに-(ハイフ...
おすすめ情報