access 2010 バージョンを使用しております。
OSは11になります。
ACCESSは始めたばかりでコードが分りません(これから勉強していきたいと思います)
ご指導いただきたい内容は
「フォーム」上に"参照ボタン"(インポートするファイルを自由に選ぶため)と
"読込ボタン"で(自動インポートしたい)の2つのコマンドボタンを置いて
CSVファイルをインポートしたいと考えてます。
現状はインポートウィザードを使用してインポートはできます。
以下の手順で行っております。
●「外部データ」→「テキストファイル」を選択
●参照ボタンから<ファイル名を選んで>→<レコードのコピーを次のテーブルに追加する>にチェックしインポートしたいテーブルを選択
●<区切り記号付きーカンマやタグなどでフィールドが区切られている>を選択
●<先頭行をフィールド名として使う>
で行うことができます。
宜しくお願い致します。
ダイアログの表示方法は分かりました。
ダイアログから選択したファイルを「テキストボックス」に
表示させインポートする方法を教えてください。
ダイアログ表示は下記のようにしました
Private Sub コマンド6_Click()
On Error Resume Next
'変数定義
Dim intRet As Integer 'ダイアログ用変数
Dim GetFileName As String 'フルパスの値
With Application.FileDialog(msoFileDialogOpen)
'ダイアログのタイトルを設定
.Title = "ファイルを開くダイアログ"
'ファイルの種類を設定
.Filters.Clear
.Filters.Add "Microsoft Office Excelファイル", ".xls,.csv"
.FilterIndex = 1
'複数ファイル選択を許可しない
.AllowMultiSelect = False
'初期パスを設定
.InitialFileName = CurrentProject.Path
'ダイアログを表示
intRet = .Show
If intRet <> 0 Then
'ファイルが選択されたとき
'そのフルパスを返り値に設定
GetFileName = Trim(.SelectedItems.Item(1))
Else
'ファイルが選択されなければブランク
GetFileName = ""
End If
End With
'選択されたフルパスをテキストボックスへ表示
Form_F_Form.テキストn.Value = GetFileName
End Sub
CSVファイルのインポートは DoCmd.TransferTextメソッドでできます。
詳細は下記で確認してください。
DoCmd.TransferText メソッド (Access) | Microsoft Learn
フォーム上にコマンドボタン「コマンド0」、テキストボックス「テキスト1」か配置してあり、
「テーブル1」にインポートするとすると下記のコードになります。
hatena様
ありがとうございます。
ダイアログからCSVファイルを選択しますと
テキストボックスにフルパスが入りますが
以下のエラーが表示されました。
何度か試しましたが同じ状態です。
hatena 様
説明が不足してました。申し訳ありません。
あらかじめ用意したインポート用のテーブルがあり
そのテーブルにインポートするとエラーになります。(先投稿の)
(ウィザードで手動ではインポートできます。)
hatena 様
前投稿の
説明が不足してました。申し訳ありません。
あらかじめ用意したインポート用のテーブルがあり
そのテーブルにインポートするとエラーになります。(先投稿の)
(ウィザードで手動ではインポートできます。)
勘違いでした。
インポートできてましたが文字化けと
インポートエラーのテーブルができます。
また、望んでいる状態のデータインポートに
なっておりませんでした。
画像の順番は
インポートエラーの画像
テーブル1の状態
手動での状態です(理想状態)
手動手順
※インポートしたいCSVファイルのアップロードはできないのでしょうか?
宜しくお願いします。
hatena 様
インポート定義を追加したらできました。
DoCmd.TransferText acImportDelim, "インポート定義", "テキスト1", GetFileName, True
※ダイアログ開いてから「キャンセル」を選ぶとエラーになります。
解決策はありますでしょうか?
なんども申し訳ありません。
下記でどうでしょう。
hatena 様
ありがとうございました。
プログラムを停止させれば良かったのですね!
勉強になりました。