Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


1510 / 2272 ツリー ←次へ | 前へ→

【6773】Excelファイルからの取り込み方法について NK 05/11/9(水) 3:38 質問[未読]
【6774】Re:Excelファイルからの取り込み方法について NK 05/11/9(水) 3:51 質問[未読]
【6775】Re:Excelファイルからの取り込み方法について NK 05/11/9(水) 3:52 質問[未読]
【6779】Re:Excelファイルからの取り込み方法につ... 小僧 05/11/9(水) 11:12 発言[未読]
【6798】Re:Excelファイルからの取り込み方法につ... NK 05/11/11(金) 11:50 お礼[未読]
【6785】Re: Range 引数 Gin_II 05/11/10(木) 9:13 回答[未読]
【6797】Re: Range 引数 NK 05/11/11(金) 11:47 お礼[未読]
【6799】Re: 横やり(≠回答) たん 05/11/11(金) 12:40 発言[未読]
【6811】Re: 横やり(≠回答) たん 05/11/15(火) 8:51 発言[未読]
【6814】Re: 他人のハンドル騙って楽しい? たん 05/11/15(火) 10:32 発言[未読]
【6816】Re: 横やり(≠回答) NK 05/11/15(火) 11:39 発言[未読]
【6817】Re: 横やり(≠回答) たん 05/11/15(火) 11:55 回答[未読]
【6818】Re: もうちょい言うね たん 05/11/15(火) 12:54 発言[未読]
【6819】Re: もうちょい言うね NK 05/11/15(火) 13:33 発言[未読]
【6821】Re: もうちょい言うね クロ 05/11/15(火) 13:48 発言[未読]
【6822】Re: もうちょい言うね NK 05/11/15(火) 14:07 発言[未読]
【6824】Re: 環境を整えるという事 たん 05/11/15(火) 17:11 回答[未読]

【6773】Excelファイルからの取り込み方法について
質問  NK  - 05/11/9(水) 3:38 -

引用なし
パスワード
   いつもお世話になっております。

現在Excelファイルからのテーブルの取り込みを考えています。
・Excelファイルは顧客から提示される物なので、形を変えたり
 Excel側にマクロを組む事は不可
・提示されるExcelのフィールドの形と、こちらの持っているテーブルの
 フィールドの形が違う
 (Excel側に不要なフィールドがあり、MDBのテーブルで
  複数の新しいフィールドを追加しています)
・MDBでテーブルの内容に変更をかけるのは、こちらで追加したフィールドのみ

という条件で、顧客から提示される情報が変わった場合に、
こちらのMDBで持っている情報も最新化する事が目的です。

【6774】Re:Excelファイルからの取り込み方法につ...
質問  NK  - 05/11/9(水) 3:51 -

引用なし
パスワード
   〜質問の続きです〜
※接続している社内LANの関係で送信できる文字数が限られるので分けました
現在考えている方法は以下のような流れです
 1.MDB側でのみ持っている情報を保管する為,必要な情報のみ一時テーブルへ退避
 2.メインテーブルの全レコードを削除クエリで削除
 3.Excelから取込用テーブルへインポート
 4.取込用テーブルからメインテーブルへ必要なフィールドのみ追加
 5.一時テーブルから該当テーブルへ必要な情報を復元
この考え方自体正しいかもわからない上、インポートで詰まっています。

【6775】Re:Excelファイルからの取り込み方法につ...
質問  NK  - 05/11/9(水) 3:52 -

引用なし
パスワード
   質問自体が分かれてて読みづらいと思いますが申し訳ありません

> 3.Excelから取込用テーブルへインポート
> 4.取込用テーブルからメインテーブルへ必要なフィールドのみ追加
> 5.一時テーブルから該当テーブルへ必要な情報を復元
>この考え方自体正しいかもわからない上、インポートで詰まっています。
実際には以下のようなコードを記述しています。
 DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, _
 "テーブル名", "ファイル名(パス含む)", True, "シート名"
現在ヘルプの無い環境でやっている為、自力では解決できません。
どなたかアドバイスお願いします。

【6779】Re:Excelファイルからの取り込み方法につ...
発言  小僧  - 05/11/9(水) 11:12 -

引用なし
パスワード
   ▼NK さん:
こんにちは。

>インポートで詰まっています。
>現在ヘルプの無い環境でやっている為、自力では解決できません。

http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/off2000/vbaac/html/acmthactTransferSpreadsheet.asp

オンラインヘルプも活用なさってみてはいかがでしょうか。

「うまくいかない」だけではなく、
どんなエラーメッセージが出ているのかも回答のヒントになりますよ。

恐らく hasfieldnames の引数の問題だと思われますが…。


>1.MDB側でのみ持っている情報を保管する為,必要な情報のみ一時テーブルへ退避
>2.メインテーブルの全レコードを削除クエリで削除
>3.Excelから取込用テーブルへインポート
>4.取込用テーブルからメインテーブルへ必要なフィールドのみ追加
>5.一時テーブルから該当テーブルへ必要な情報を復元

MDB側でのみ持っている情報 と Excel から取り込んだデータを
同じテーブルに格納しなければいけない特別な理由はありますでしょうか。

特にないのでしたらクエリで結合させたものを
フォームやレポートの基にしていけばよさそうなのですが…。

【6785】Re: Range 引数
回答  Gin_II  - 05/11/10(木) 9:13 -

引用なし
パスワード
   > DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, _
> "テーブル名", "ファイル名(パス含む)", True, "シート名"

Range 引数にシート名を指定する場合、
"シート名!"
のように指定する必要があります。


> 自力では解決できません。

解決への努力を放棄しているように聞こえますけど ^^;

【6797】Re: Range 引数
お礼  NK  - 05/11/11(金) 11:47 -

引用なし
パスワード
   ▼Gin_II さん:
>> DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, _
>> "テーブル名", "ファイル名(パス含む)", True, "シート名"
>
>Range 引数にシート名を指定する場合、
>"シート名!"
>のように指定する必要があります。

ありがとうございました。
"!"をつけるだけで上手くいきました。


>> 自力では解決できません。
>
>解決への努力を放棄しているように聞こえますけど ^^;

ヘルプも本などもない状況で、ネットで色々と検索したり
一応2時間近く格闘した結果だったのですが・・・
そう捉えられてしまう言い方に問題がありますね。すみません^^;

【6798】Re:Excelファイルからの取り込み方法につ...
お礼  NK  - 05/11/11(金) 11:50 -

引用なし
パスワード
   ▼小僧 さん:
>
>http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/off2000/vbaac/html/acmthactTransferSpreadsheet.asp
>
>オンラインヘルプも活用なさってみてはいかがでしょうか。

参考にさせていただきます。ありがとうございます!

>「うまくいかない」だけではなく、
>どんなエラーメッセージが出ているのかも回答のヒントになりますよ。

そうですね。
エラーメッセージ等も記載するべきでした。
次回からは気を付けます。

>MDB側でのみ持っている情報 と Excel から取り込んだデータを
>同じテーブルに格納しなければいけない特別な理由はありますでしょうか。
>
>特にないのでしたらクエリで結合させたものを
>フォームやレポートの基にしていけばよさそうなのですが…。

ありがとうございました。とりあえず解決はしたのですが
今後の事を考えるとクエリで結合させた物を使う方法を検討してみます。

【6799】Re: 横やり(≠回答)
発言  たん  - 05/11/11(金) 12:40 -

引用なし
パスワード
   >ヘルプも本などもない状況で、ネットで色々と検索したり
>一応2時間近く格闘した結果だったのですが・・・

ええと、私の持論としてなので、聞き流しても結構ですが、

「開発を行なう立場の人間なら、少なくとも、ヘルプ及びマニュアルは
 手元に置いておくべき」

と思います。

今はネットで検索すれば、ある程度の情報は得られますが、ただ、その
情報には個人差があります。

また、そのソフトの正式な情報(構文等)を所有しているのは、何より
そのソフトのマニュアルであり、ヘルプです。

それを読まずに「開発しました」と言っても、エラーになって、万が一、
ネットに情報が無かったり、ネットに繋がらない環境に置かれたら
どーしますか?

「マニュアルが無いので、そのエラーは直せません。」
「ネットに情報が無いので、その内容はわかりません。」

悪いけど、マニュアルが無いのに開発させるのは、余程ひどい環境です。
「それでも、開発している」と叫ぶのは自由ですが、
はっきりいって、竹竿で戦争をするようなものです。

マニュアルの無い環境は、「開発環境」とは呼べません。
マニュアルを提供しない職場だったら、そんな所では、私は仕事をしたくは
ありません。(仕事をしている質問者には申し訳ないが)

【6811】Re: 横やり(≠回答)
発言  たん  - 05/11/15(火) 8:51 -

引用なし
パスワード
   ▼たん さん:
>>ヘルプも本などもない状況で、ネットで色々と検索したり
>>一応2時間近く格闘した結果だったのですが・・・
>
>ええと、私の持論としてなので、聞き流しても結構ですが、
>
>「開発を行なう立場の人間なら、少なくとも、ヘルプ及びマニュアルは
> 手元に置いておくべき」
>
>と思います。
>
>今はネットで検索すれば、ある程度の情報は得られますが、ただ、その
>情報には個人差があります。
>
>また、そのソフトの正式な情報(構文等)を所有しているのは、何より
>そのソフトのマニュアルであり、ヘルプです。
>
>それを読まずに「開発しました」と言っても、エラーになって、万が一、
>ネットに情報が無かったり、ネットに繋がらない環境に置かれたら
>どーしますか?
>
>「マニュアルが無いので、そのエラーは直せません。」
>「ネットに情報が無いので、その内容はわかりません。」
>
>悪いけど、マニュアルが無いのに開発させるのは、余程ひどい環境です。
>「それでも、開発している」と叫ぶのは自由ですが、
>はっきりいって、竹竿で戦争をするようなものです。
>
>マニュアルの無い環境は、「開発環境」とは呼べません。
>マニュアルを提供しない職場だったら、そんな所では、私は仕事をしたくは
>ありません。(仕事をしている質問者には申し訳ないが)

あなたは、ご自身が「回答する側」の人間としてのみここを訪れ、
訳の分からないことばかり書いています。

もう少し冷静に。こころの狭い人間ですよ。

【6814】Re: 他人のハンドル騙って楽しい?
発言  たん  - 05/11/15(火) 10:32 -

引用なし
パスワード
   >あなたは、ご自身が「回答する側」の人間としてのみここを訪れ、
>訳の分からないことばかり書いています。
>
>もう少し冷静に。こころの狭い人間ですよ。

違うと思うね。
まず、開発するのに、マニュアルが無いというのは、食事をするのに、
箸や、スプーン、フォーク等が無いのと同じ事です。

また、車検の無い車を、「走る事が出来るので大丈夫」といって走らせて
いるのとも、なんら変わりがありません。

私は、開発をするのなら、開発をする環境を用意しなければならないと
いう、至極当然の事を言っています。

それ以前に、自分の意見を発言するのに、他人のハンドルを騙る方こそ
心がせまいと思うね。

自分の意見を「私がこの意見を言った」と自分の名前で言ってないのですから。

反論があるなら、石鹸箱で、自身のハンドル名で発言して下さい。
幾らでも受けつけます。

【6816】Re: 横やり(≠回答)
発言  NK  - 05/11/15(火) 11:39 -

引用なし
パスワード
   >▼たん さん:
おっしゃる事はもっともです。
おかげで質問そのものが曖昧になってしまい、回答してくださる
皆様にもご迷惑をかけてしまっているという事をまずお詫び申し上げます。

しかし「そんな状況で仕事したくない」と言われても仕事ですので。
それに自社であればそういった環境の整備も言えますが、
なにせお客様の会社ですからなかなか難しいところがあります。
(しかも当方は孫受けなので立場も弱い)

さらに。勘違いさせてしまっていますが、そもそも私の業務は
開発業務ではないのです。たまたま私がちょっとVBAとか触った事が
あるからって程度で業務に使うツールを作ってくれと
いつも頼まれるので仕方なくやってるという状況なのです。

色々と不愉快な思いをさせてしまい申し訳ありませんが
どうぞご理解のほどよろしくお願い致します。

【6817】Re: 横やり(≠回答)
回答  たん  - 05/11/15(火) 11:55 -

引用なし
パスワード
   >開発業務ではないのです。たまたま私がちょっとVBAとか触った事が
>あるからって程度で業務に使うツールを作ってくれと
>いつも頼まれるので仕方なくやってるという状況なのです。

例えそういう環境であっても、頼まれた事を開発するには、開発する為の
言語をどう使うのかを、知らなければなりません。

例え、本来の仕事がなんであろうと、例えその仕事を仕方なくやるにしろ、
その仕事をする為に必要な道具があるでしょう。

例えば、事務計算をするなら電卓が必要だし、物を書くには鉛筆が必要。
英文を翻訳するなら、英和辞書が必要だし、車を運転するなら車検が必要。

それらと、ソフトの開発や修正にマニュアルが必要なのは、同じなのです。

必要な道具が無いのに、作業をしようとしているから、ダメなのではないかと
私は言っているのです。
必要な道具がなくても、やれるからいいじゃんというのであれば、最初に
書いたように

「聞き流しても結構ですが」

という事です。

【6818】Re: もうちょい言うね
発言  たん  - 05/11/15(火) 12:54 -

引用なし
パスワード
   >>開発業務ではないのです。たまたま私がちょっとVBAとか触った事が
>>あるからって程度で業務に使うツールを作ってくれと
>>いつも頼まれるので仕方なくやってるという状況なのです。

例えば、家を建てている大工が、トンカチが無いので、スパナで釘を
打ったとする。

確かにそれで家は立つが、本当にそれで責任ある仕事を果たしたと
いえるのか?と思うのです。

少なくとも、頼まれた時点で、その開発の責任は全て、その開発を請け負った
当人にあります。

当人がきちんと道具を揃えずに、「分からない所はネットで聞けばいいや」と
いう事で、聞いた内容が構文として間違っているかどうかを確認せず、鵜呑みに
し、それを適用したとしましょう。
その聞いた結果が間違っていて、「ユーザからエラーでダメじゃん」と言われ、
ネットで再度聞いて、答えが得られなかったらどうします?

「ネットで聞いたので、自分はこの内容について分かりません」といえる?

そういう部分を心配しているのです。
誰も好き好んでこういう事を言っている訳ではありません。
(無論、ハンドル騙る誰かさんのように、揚げ足取って楽しんでいるわけでもない。)

少なくとも、マニュアルがあれば、構文を確認できるし、回答が無い場合でも
マニュアルを調べるという、解決への道が残っています。

# 掲示板主へ。掲示板汚して申し訳ない。

【6819】Re: もうちょい言うね
発言  NK  - 05/11/15(火) 13:33 -

引用なし
パスワード
   >▼たん さん:

こんにちは。色々とご指摘頂き、ありがとうございます。
この職場が立ち上がってこれまで2年ほどの間、ほぼ自力で
何とか形になるものを作ってきました。
(もちろん、今では見ると恥ずかしくなるような出来ですが^^;)

まぁ本職ではありませんから、依頼といっても
『もし出来るんだったら作ってみて』程度の依頼なので
自分としてもその程度の感覚でやっていました。

しかし、回を追うごとに依頼内容も複雑になってきており、
最近になってこのサイトの存在を知り、利用させて頂いておりました。

たんさんのおっしゃるように環境の不足は否めない状況です。
顧客より提供される環境についてはどうしようもないところもあるので
自分で作れる環境の1つとして、先日Access・VBA関連の書籍を数冊購入し、
職場に常備しておくようにしました。

今迄やってきた事やこちらで皆様に教えて頂いた事を踏まえて読みましたが
まだまだそのマニュアルだけでは補えない事も多いと感じました。

今後もまた自分の知識・マニュアルで補えない点がありましたら
皆様の力を拝借したいと思っております。
その際は何卒よろしくお願い致します。

【6821】Re: もうちょい言うね
発言  クロ  - 05/11/15(火) 13:48 -

引用なし
パスワード
   ガンバレ!
#ってこんなレスでいいのか?自分…

ネットはマニュアルに劣らないぐらい凡例がゴロゴロしてます。
これを利用するのも1つの手です。
ただ、そのコードを解読する参考書(ヘルプ)は必要かもです。

いずれにしても、お互いに前向きに頑張りましょう!

【6822】Re: もうちょい言うね
発言  NK  - 05/11/15(火) 14:07 -

引用なし
パスワード
   ▼クロ さん:
>ガンバレ!
>#ってこんなレスでいいのか?自分…
>
>ネットはマニュアルに劣らないぐらい凡例がゴロゴロしてます。
>これを利用するのも1つの手です。
>ただ、そのコードを解読する参考書(ヘルプ)は必要かもです。
>
>いずれにしても、お互いに前向きに頑張りましょう!

ありがとうございます^^
今スレにレスを頂くまでオンラインヘルプの存在すら知らなかった私です。
こういった掲示板だけでなく、汎用例を記したサイトもたくさん
ありますので色々と活用し、精進したいと思います。

【6824】Re: 環境を整えるという事
回答  たん  - 05/11/15(火) 17:11 -

引用なし
パスワード
   >たんさんのおっしゃるように環境の不足は否めない状況です。
>顧客より提供される環境についてはどうしようもないところもあるので
>自分で作れる環境の1つとして、先日Access・VBA関連の書籍を数冊購入し、
>職場に常備しておくようにしました。

うん。自分で環境を整えようとする姿勢は素晴らしいです。
ただ、社内の業務として行なっているのであれば、例えば、購入した書籍は
個人出費ではなく、社内で使うものなので業務出費にする等の形にすべきと
思います。

また、依頼自体の難易度も上がっているのであれば、上司等に相談し、
自身のマシンだけでも良いので、ヘルプを入れる事が出来ないかというのを
検討すべきです。

いまのままでは、社内のプログラムを作成する為に、質問者自身が身銭を
切っているのと変わらないと思います。
そういう部分も変えるのが、良い環境を作るという事だと私は思います。

1510 / 2272 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
1078229
(SS)C-BOARD v3.8 is Free