No.4ベストアンサー
- 回答日時:
VB エクセル シート 読み込み の 4つのキーワードがあればサンプルはあります。
この多くは読み込みさせる例であって書式が崩れている対処まであるかどうか。崩れている対処は、
そもそも選ばれるファイルが違うならファイル名に規則性もたすか、ファイルは毎度同じインポート専用とするか、フォルダを決めるくらいの工夫をする。
エクセルを使っていながら書式が崩れるというのは列が10列が11列になっているとか想定されるが、そういう考えられるケースを洗い出し、具体的に観点1つずつチェック入れるのはけっこう大変。最初はできたかできなかったか程度にしておく。
チェック用と通常インポート用とボタン2つにする。
か、
ボタン1つでチェックと通常と一緒にやる。
イベントはどうするか。
自作でインポート記述して1レコードずつチェックするなら、
EOFになるまでのLOOPをチェック用と通常インポート用と2回行う、チェック用が正常かどうかで後続LOOPを決める。
か
LOOP1回でチェックとインポートを一緒にやる。エラーがあればインポートで書き出してしまった分のレコードは削除する。
ロジックもいろいろあります。
エラー、訂正、読込、またエラー、また訂正、読込、正常。
とするか、
エラー全部で2こ発見、訂正、読込、正常。
とするか。運用もいろいろあります。
3番目の策前提ですが、構想を整理して見て下さい。
うーむ、なるほど・・・。
色々なやり方があるのですね。
ひとまず教えていただいたLOOPを使う方法を調べてみようと思います。
エラーが起こらないというのはアクセスも結構やっかいですね・・・。
アドバイスありがとうございました!
No.3
- 回答日時:
書式が崩れている場合、と
入っている値が想定範囲外の場合、と少なくとも2通りあるはず。
前者はそもそも前提がくずれているので
入力される箇所を強化すべき。
後者は入力値そのままなのか、何か計算式で求まるものなのか、
その行(レコード)単位?で不正分をスキップして続行しても良いのか、
ファイル単位でしなければならないものなのか、
これらによっても、いろいろ対処が分かれてきます。
-----------------
「ACCESSクエリでのインポート時」というのが不明。
エクセルでインポートしているデータがテーブルにあって、
そのテーブルから他のテーブルへ書き出すクエリの実行時に
入力ガイドが現れる、原因はエクセルからのデータであることは確認済、
ということと解釈しましたが・・・。
この回答への補足
返信ありがとうございます。
説明不足で申し訳ありません・・・。
>書式が崩れている場合、と入っている値が想定範囲外の場合
書式が崩れている場合を想定しています。
あくまでフィールド名や中身が表ですらない場合にエラーメッセージを表示したいので・・・。
>「ACCESSクエリでのインポート時」というのが不明。
ボタンを押すとVBA中でクエリが呼び出され、そのクエリでエクセルファイルの表(最初のシートの内容のみ)をテーブルに取り込んでいます。
フィールド名はどちらも同じなので、レコードを追加しているようなイメージです。
現在はExcelファイルの書式が正しい場合は問題なく取り込めています。
DB接続先をExcelファイルのSheet1にしてSELECT文で取り出しています。
No.2
- 回答日時:
自分でACCESSのモジュールにプログラムを書いて、テーブルへの読み込みに、エクセルのデータを読む部分を加えてテーブルにデータをセットしたら。
WEB上にはACCESSVBAでエクセルシートデータを読むコードなどアクサン見つかる。
http://www.nurs.or.jp/~ppoy/access/access/acM002 …
などそういう処理だ。
ーーー
>アクセスの仕様だと思うのですが・
そもそもMSアクセスは、基本的に、画面操作の手順の体系だ。
操作で回避手段(設定など)が無ければ、そういう場合VBAでも使わないと、違ったことは出来ないと思う。
ーーー
>中身が想定と違う場合は
これは具体的には、どういう場合なのか、か例示するのが、質問の作法では。
この回答への補足
参考サイトの提示ありがとうございます。
説明が不足していたのですが、一応クエリ呼び出しにVBAを使用しているのでそのサイトを参考に少しコードをいじってみようと思います。
>中身が想定と違う場合
申し訳ありません、これも説明が不足していました。
本来の中身は一行目がフィールド名になっている普通の表です。
これがただの文章だったり、フィールド名が違っていた場合にエラーを出したいと思っています。
今後は具体例を挙げるよう気をつけます。
No.1
- 回答日時:
いずれもVBAを使う。
EXCEL側で保存するとき整合性チェックをかける
保存されたブック(かCSV)に対して整合性チェックをかける
ACCESSでインポートするときVBAで整合性チェックをかける
正常時実際のインポート、エラー時何もしない
大きくこの3点のどれかと思います。
今のところはACCESSのインポートで機能追加と
いったところでしょう。
エラーが検知しやすいところで考える手もあります。
この回答への補足
アドバイスありがとうございます・・・。
それと、説明不足ですみません。
説明を補足させて頂きますと、今自分が作成したのはVBA中でクエリを呼び出してExcelのシートに書かれている表を読み込み、同じフィールド名を持つACCESSテーブルの表にレコードを追加するという処理です。
おそらく3番目のVBA整合性チェックをすれば何とかなりそうな気がします。
詳しい方法か、時間が無ければ参考サイトだけでも教えて頂けるとありがたいです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) EXCELの外部データ取得ができない 1 2023/03/23 09:03
- その他(データベース) Accessフォームからパラメーターで表示したレコードを指定のExcelのセルへ転送する方法について 2 2022/08/22 18:04
- Excel(エクセル) [クイックアクセスツールバー]の設定ファイルの格納場所について、 5 2023/04/21 14:43
- Access(アクセス) access,vbaでフォルダ内のファイルをテーブルにインポート、ファイル名もフィールドに追加したい 1 2022/08/31 11:11
- Access(アクセス) Accessのスプレッドシートエクスポートで、シートが追加されてしまう 2 2022/07/16 21:45
- システム CSVファイルのマッピング処理の省力化 1 2022/11/24 00:01
- Access(アクセス) accessでexcelを読み込む時のデータ型 1 2022/03/28 19:45
- Visual Basic(VBA) エクセルVBA 4 2022/05/14 00:51
- CAD・DTP Autocad Scriptファイルからの入力とコマンドラインからの入力が違う 1 2023/08/01 09:13
- Visual Basic(VBA) Accessフォームで全レコードを指定のExcelのセルへ転送し印刷する方法について 2 2022/09/08 18:23
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
OUTLOOK VBA 指定フォルダ内の...
-
Returnに対するGoSubがありません
-
VBでファイルが開かれているか...
-
access テキストボックスの値取得
-
VBから参照できないCのDLLを使...
-
NAS上のファイルの使用中が解除...
-
batファイルでレジストリキーの...
-
gccを行ってもexeファイルが生...
-
郵便番号を表示させる関数のエ...
-
cube PDFについて
-
VBAのChangeFileOpenDirectory...
-
「パス名が無効です」の発生原因
-
FORTRANの実行エラーについて
-
PowerShellを使って関連付けら...
-
Excelのエラー
-
EXCELのVBAでWORDが開いてある...
-
アクセスのクエリでコンパイル...
-
Excel 2003 のエラーメッセージ
-
FTPの送信結果を検知したい
-
VB実行時エラー75:「パス名が...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
gccを行ってもexeファイルが生...
-
VBでファイルが開かれているか...
-
「パス名が無効です」の発生原因
-
batファイルでレジストリキーの...
-
VBから参照できないCのDLLを使...
-
FTPの送信結果を検知したい
-
access テキストボックスの値取得
-
PowerShellを使って関連付けら...
-
Returnに対するGoSubがありません
-
アクセスのクエリでコンパイル...
-
OUTLOOK VBA 指定フォルダ内の...
-
Adobeのプレミアプロの書き出し...
-
EXCELのVBAでWORDが開いてある...
-
NAS上のファイルの使用中が解除...
-
すでにファイルが開かれている...
-
VB6 Dir関数で52エラー発生
-
FORTRANの実行エラーについて
-
Excelvbaのマクロのファイル名...
-
Excelファイルのマクロによる排...
-
エクセルマクロでエラーの原因...
おすすめ情報