Accessフォーム上でExcelインポート処理を作成しました。
自分ではなくユーザーが使うためのツールとして提供する予定です。
このインポート時にユーザーがExcelファイルを編集(列の追加)をしてしまうケースがあり、そのファイルをインポートしようとすると「実行時エラー2391」で止まってしまいます。
この挙動を回避するため「実行時エラー2391」の発生前にこれを防ぐ処理を考えています。
エラーの検知は経験がなく苦慮しています。
ご存知の方いらっしゃいましたらお知恵をお貸しください。
よろしくお願いいたします
No.4ベストアンサー
- 回答日時:
その認識で間違っていません。
処理の流れとしては
①エクセルブックを開く
②インポートするシートの存在チェックと取得(オブジェクトに格納)
③ヘッダーの確認
④明細行の開始位置の確認
⑤ブックを閉じる
⑥Accessにインポートする
といったところでしょうか。
ありがとうございます!
やはりその手順ですよね。
それは提案してみたのですが、
この作業の効率化が目的なので手順が増えるとの指摘で却下されてしまいました。
やはり「Excelファイルの編集はエラーの原因になるため絶対禁止!」
という運用でカバーするのがベストなのかもしれませんね。
いろいろとご丁寧な回答をいただきありがとうございました!!
No.6
- 回答日時:
こんにちは
よこからですが・・・
全体像が分かっていないので的外れかもしれませんが、
>ユーザーがExcelファイルを編集(列の追加)をしてしまうケースがあり
列の編集等が正規の使い方ではないということのようですので、まず、
・そのことの説明をきちんと行う
二つ目には、
・エクセルファイルの「保護」機能で、必要以外の操作を禁止しておく
の両方を行っておくことで、問題の発生をあらかじめ回避できるのではないかと推測します。
No.5
- 回答日時:
No.2です。
> やはり運用で解決しなくてはならない領域なんですね。
「運用」という言い方はちょっと違います。
「運用」というとシステムを提供する側からすると「逃げ」のニュアンスがあります。「本来はこうするのがよいのだが、それは難しいので人間にこう対応してもらおう」といった。。。
そうではなく作業者が我慢や面倒を感じることなくかつ、正しいデータがシステム中のソフトウェアに入力されうような「操作手順」を開発するというスタンスです。
No.2
- 回答日時:
> このインポート時にユーザーがExcelファイルを編集(列の追加)をしてしまうケースがあり、
まずはお客様がなぜそれを行うのか、どういう必要性があるのかを確認することが必要でしょう。
興味本位でいじっているのなら「こういう手順で行わないとこういうエラーにります」と説明し、操作説明書にも明記する必要があります。
全体像が全く見えないのでピンボケコメントかもしれませんが、「作業者はExcelを使っていて、そこで出来上がったExcelファイルの内容をAccessい食わせる」ということなのであれば、作業者がExcelで開いているExcelファイルのシート上には「データ保存」とか「データ出力」とか「終了」とかいったボタンが有って、Excelでの作業を終えたらそのボタンを押すという操作手順にする。
でそのボタンが押されたらExcelマクロで入力データを確認しOKならCSVファイル(TAB区切りではなくカンマ区切り)に書きだす。
このCSVファイルをAccessに食わせる。
CSVファイルではなく該当Excelファイルに特定の名前のシートを追加し、入力シートの所定の範囲を参照してそこにAccessに食わせるデータを作るという方法もありますね。
ということでAccessに食わせる直前(?)にエラーが起きないようにするのではなく、「作業者が勝手に触る可能性のあるデータをAccessに食わせない。必ず正しいデータを食わせる」と考えるのが人間系を含むシステムの機能をまとめる際の正しい思考だと思います。
参考まで。
とても丁寧なコメントをありがとうございます
状況はおっしゃる通りです。
「作業者が勝手に触る可能性のあるデータをAccessに食わせない。必ず正しいデータを食わせる」
これもご指摘の通りで間違いないことだと認識しています。
やはり運用で解決しなくてはならない領域なんですね。
勉強になります。
ありがとうございました!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) [クイックアクセスツールバー]の設定ファイルの格納場所について、 5 2023/04/21 14:43
- Access(アクセス) access,vbaでフォルダ内のファイルをテーブルにインポート、ファイル名もフィールドに追加したい 1 2022/08/31 11:11
- Excel(エクセル) Excelを開くとエラーが出る 2 2022/10/03 16:13
- Excel(エクセル) EXCELの外部データ取得ができない 1 2023/03/23 09:03
- Visual Basic(VBA) <excel vba>selenium basicのWebDriverの自動更新のエラーについて 1 2022/10/01 17:07
- Access(アクセス) Access2016のExcelインポートの機能のことで教えてください 1 2022/09/11 14:58
- Visual Basic(VBA) Vba 互換モードでのAppActiveについて教えてください 2 2022/06/27 18:47
- Excel(エクセル) マクロの付いたExcelが開けません 3 2023/02/01 10:54
- Outlook(アウトルック) 【 Windows 10 】アドレス帳に正しくインポートを完了させたい。 3 2023/04/23 13:41
- Excel(エクセル) 【マクロ】エラーが発生⇒実行時エラー58既に同名のファイルが存在 5 2022/08/31 10:03
このQ&Aを見た人はこんなQ&Aも見ています
-
見学に行くとしたら【天国】と【地獄】どっち?
みなさんは、一度だけ見学に行けるとしたら【天国】と【地獄】どちらに行きたいですか? 理由も聞きたいです。
-
人生最悪の忘れ物
今までの人生での「最悪の忘れ物」を教えてください。 私の「最悪の忘れ物」は「財布」です。
-
【お題】逆襲の桃太郎
【大喜利】桃太郎が1回鬼退治に失敗したところから始まる新作昔話「リベンジオブ桃太郎」にはこんなシーンがある
-
AIツールの活用方法を教えて
みなさんは普段どのような場面でAIツール(ChatGPTなど)を活用していますか?
-
【選手権お題その2】この漫画の2コマ目を考えてください
サッカーのワンシーンを切り取った1コマ目。果たして2コマ目にはどんな展開になるのか教えてください。
-
エクセルからアクセスにインポートすると、エラーが出てしまいます。原因を教えていただけませんか。
Access(アクセス)
-
Access VBAでCSVファイルをインポートする方法
Access(アクセス)
-
エクセルからアクセスにインポートする際のエラーについて
Access(アクセス)
-
-
4
アクセスVBAで既に開いているエクセルを閉じたい
Yahoo!ショッピング
-
5
AccessからExcelにエクスポートする時に常に上書きしたい
Excel(エクセル)
-
6
ACCESS VBAでのインポート
Access(アクセス)
-
7
ACCESSで空白のデーターをクエリで判定/識別する方法を教えてくださ
Access(アクセス)
-
8
Access インポート
Access(アクセス)
-
9
2つ目のレコードの値を取得するには?
Access(アクセス)
-
10
エラー3011
Visual Basic(VBA)
-
11
ACCESSでフィールド名の変更(VBA)
Access(アクセス)
-
12
Access から Excelのシートをインポート時エラー
Visual Basic(VBA)
-
13
Access 最後のレコードに到達するまでループ処理を行う方法
Access(アクセス)
-
14
実行時エラー 3020の対策
Access(アクセス)
-
15
SQL文で パラメータが少なすぎます エラー
Access(アクセス)
-
16
Access2010 「演算子がありません」エラー
その他(データベース)
-
17
実行時エラー '3464': 抽出条件でデータ型が
Access(アクセス)
-
18
Excel VBAからAccessマクロを実行したい
Visual Basic(VBA)
-
19
アクセスでテキストボックスの値が空白だったら
Access(アクセス)
-
20
Accessのマクロでモジュールを実行させたい。
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・「みんな教えて! 選手権!!」開催のお知らせ
- ・漫画をレンタルでお得に読める!
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・【選手権お題その3】この画像で一言【大喜利】
- ・【お題】逆襲の桃太郎
- ・自分独自の健康法はある?
- ・最強の防寒、あったか術を教えてください!
- ・【大喜利】【投稿~1/9】 忍者がやってるYouTubeが炎上してしまった理由
- ・歳とったな〜〜と思ったことは?
- ・ちょっと先の未来クイズ第6問
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・【選手権お題その2】この漫画の2コマ目を考えてください
- ・【選手権お題その1】これってもしかして自分だけかもしれないな…と思うあるあるを教えてください
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
excelインポート時の「実行時エ...
-
複数のCSVファイルを横に並べて...
-
複数のcsvファイルを1つのEXCEL...
-
「ほかのアプリケーションを無...
-
大量のCSVデータを1つのエ...
-
VBAでCSVの1行目だけを書き換え...
-
【VBA初心者】同じフォルダ内の...
-
複数個のascファイルを1つ...
-
エクセルの指数を無効にしたい
-
昨日まで動いていたエクセルの...
-
ExcelVBAで今開いているユーザ...
-
複数のデータ系列の線の太さを...
-
cellsで特定の離れた範囲を選択...
-
マクロを消すマクロは不可能?
-
VBA マクロ実行時エラー’1004Ra...
-
すでに開いているブックのマク...
-
エクセルVBA Workbook変数に変...
-
Excel VBAで、実行時にsheet上...
-
Excelが勝手にシート移動してし...
-
フォルダ内の全ブックのシート...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
複数のCSVファイルを横に並べて...
-
VBAでCSVの1行目だけを書き換え...
-
エクセルの指数を無効にしたい
-
excelインポート時の「実行時エ...
-
「ほかのアプリケーションを無...
-
CSVファイルの結合(重複データ...
-
二つのCSVファイルを照らし合わ...
-
EXCELにcsv形式の外部データを...
-
複数個のascファイルを1つ...
-
Excel VBAを使った複数のCSVフ...
-
VBAでユーザーフォーム上に参照...
-
複数のcsvファイルを1つのEXCEL...
-
エクセルでcsvデータを自動読み...
-
【VBA初心者】同じフォルダ内の...
-
datファイル→csvファイル→datフ...
-
エクセル マクロ で助け下さい...
-
オラクルSQLでつくったデータを...
-
大量のCSVデータを1つのエ...
-
【エクセル VBA】CSVファイルの...
-
ブックを閉じたエクセルファイ...
おすすめ情報