
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
質問に明確に書くこと。
テキストデータからか
エクセルデータからか
ーー
エクセルでデータができている場合の話をします。
第1ブック inp1.xls
ABCDE
12345
1122334455
とあるとします。
第1行目は、項目見出しにすること。
インポートすると
IDABCDE
112345
21122334455
となりました。
ーー
第2ブック inp2.xls
ABCDEFG
678910
空いているデータの無い列も項目見出しは、inp1.xlsの第1行目にそろえること。
IDABCDEFG
1678910
とインポートされました。
ーー
これでアクセスのテーブルはできました。後は必要あれば、テーブルデータの合体を行ってください。
判らないときは再質問か補足。
この回答への補足
書き込みをいただいてありがとうございます。
説明不足で申し訳ありませんでした。
下のご回答にも書いたのですが、メールをテキストで保存して
エクセルにインポート、不要なヘッダーを削除して加工後
アクセスにインポートしようとしていました。
imogasiさんのご回答によれば、
fly moonさんと同じように各ファイルごとに異なるテーブルを作って、それを合体するということですよね?
やはりそれしか出来ないですよね?
仕事が終わりましたら試してみてまた報告させていただきます。
ありがとうございました。
No.2
- 回答日時:
<D:\Temp\question001.txt>
A,B,C,D,E
1,2,3,4,5
<D:\Temp\question002.txt>
A,C,D,E
2,4,5,6
<questionnare>
A___B____C____D____E
1___2____3_____4_____5
2___0____4_____5_____6
さて、上記の2つのファイルをメモ帳で編集して用意。
フォームからインポートしてみました。
<questionnare>が、作成されたテーブルです。
以下は、インポートのために書いたコードです。
INSERT INTO questionnaire (A,B,C,D,E) VALUES (1,2,3,4,5);
INSERT INTO questionnaire (A,C,D,E) VALUES (2,,4,5,6);
このような SQL文を作成して実行しているだけです。
まあ、簡単と言えば簡単なコードです。
まあ、初心者の方には難しいと言えば難しいコードです。
Private Sub コマンド0_Click()
Dim StopNow As Boolean
Dim H As Integer
Dim I As Integer
Dim J As Integer
Dim K As Integer
Dim N As Integer
Dim M As Integer
Dim strFiles() As String
Dim strDatas() As String
Dim strFName() As String
Dim strField() As String
Dim strFLists As String
Dim strSQL As String
' ------------------
' ファイル一覧取得
' ------------------
strFiles() = GetFileList("D:\Temp", "question*.txt")
N = UBound(strFiles())
For I = 0 To N
' ------------------------
' ファイルデータ読み込み
' ------------------------
strDatas() = FileReadArray("D:\Temp\" & strFiles(I))
' -----------------
' Field list 作成
' -----------------
strFName() = Split(strDatas(0), ",")
K = UBound(strFName)
strFLists = strFName(0)
For H = 1 To K
strFLists = strFLists & "," & strFName(H)
Next H
' -------------
' Insert 実行
' -------------
M = UBound(strDatas())
For J = 1 To M
If Len(strDatas(J)) > 2 Then
strField() = Split(strDatas(J), ",")
strSQL = "INSERT INTO questionnaire (" & strFLists & ") VALUES (" & strField(0)
For H = 1 To K
strSQL = strSQL & "," & strField(H)
Next H
strSQL = strSQL & ")"
StopNow = Not CnnExecute(strSQL)
If StopNow Then
Exit For
End If
End If
Next J
Next I
End Sub
GetFileList()、FileReadArray()、 CnnExecute()は、自作の関数です。
このような VBA に挑戦されるのであれば、3つの関数は公開します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
エクセルからアクセスにインポートすると、エラーが出てしまいます。原因を教えていただけませんか。
Access(アクセス)
-
SQL文で パラメータが少なすぎます エラー
Access(アクセス)
-
アクセスVBAで既に開いているエクセルを閉じたい
Yahoo!ショッピング
-
-
4
accessのレポートであとから他のテーブルのフィールドを追加する方法
Access(アクセス)
-
5
Accessのマクロでモジュールを実行させたい。
Access(アクセス)
-
6
エクセルVBAで、条件に一致するセルへ移動
Excel(エクセル)
-
7
テキストボックスにクエリ結果を表示させたい
その他(データベース)
-
8
accessの SQL文 INSERT命令
Access(アクセス)
-
9
ラベルとテキストボックスのグループ化を解除したい
Access(アクセス)
-
10
ACCESS 複数テーブル・複数フィールドを参照する不一致クエリ
Access(アクセス)
-
11
Accessのクエリの結果を、既存のエクセルに追加したい
Access(アクセス)
-
12
Access VBAから使用したExcelプロセスを閉じる方法について
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Access テーブルをデータシー...
-
ACCESSにEXCELからインポートし...
-
アクセス2010にエクセルデータ...
-
Access(アクセス)でのインポー...
-
アクセス2003 複数の列に...
-
Access フォームからの入力結...
-
差込印刷での全角表示について...
-
SQL文で パラメータが少なすぎ...
-
ACCESS2010 フィルタ後のエク...
-
アクセスのエラー「クエリには...
-
VBA 別シートの同じ日付の欄に...
-
Accessで、テーブルに入力した...
-
アクセスのクエリー作成
-
クロス集計クエリの結果をテー...
-
年度ごとの最大値
-
Excleピボットでデータのない部...
-
ACCESSでテーブルにあるチェッ...
-
ファイルメーカーのCase関数で
-
ACCESSの時間帯の抽出について
-
ACCESS 「パラメータの入力」...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ACCESSにEXCELからインポートし...
-
アクセス2010にエクセルデータ...
-
アクセス2003 複数の列に...
-
Access(アクセス)でのインポー...
-
Access フォームからの入力結...
-
ACCESS、フィールドが異なるデ...
-
アクセスの容量がなぜか増加します
-
テキストでは0が表示。アクセ...
-
アクセスでの、固定長でのテキ...
-
ACCESS ユニオンクエリ...
-
Access テーブルをデータシー...
-
アクセス 日付を項目追加して取込
-
アクセス教えてください。 ある...
-
accessのデータを検索するツー...
-
access 2003 1万件以上がカット...
-
Excel 文字列データ から Acce...
-
アクセス2000 65536行を超える...
-
Access2010でVBAでのインポート
-
MsAccessからOracleDBへの操作...
-
リンクされたテーブルのレコー...
おすすめ情報