Microsoft Access Club Access超初心者対象Forum Access初級者対象Forum Access初・中級者対象Forum Access VBA Tips Forum DAO、ADO、SQL Forum

     

リストへもどる

投稿記事の一括表示

タイトルインポートではなくExcelを読み込みテーブルに書き込みたい。
記事No16556
投稿日: 2011/04/23(Sat) 06:36
投稿者りんりん
解決済: ON
OS:
Access Version:2007

いつもお世話になります。

Accessのインポート機能ではなくExcelを一行一行読み込ませている
既存ツールがあるのですが
Excelを読み込ませた後、テーブルに書き込みができません。
既存ツールは色んなチェックをした後書き込みをしてるようなのですが
今回はチェックはなしで読み込ませたExcelデータを
既存テーブルに書き込みたいのですが
ソースを見ても書き込みをしている部分が分かりません。。
AccessVBAはかなりの初心者ですが
宜しくご回答願います。

タイトルRe: インポートではなくExcelを読み込みテーブルに書き込みたい。
記事No16559
投稿日: 2011/04/23(Sat) 19:23
投稿者ふじ
解決済: ON
> ソースを見ても書き込みをしている部分が分かりません。。
ソースコードは?どんなんですか?さしつかえなければ、開示していただけると書き込みの部分がわかるのですが。。。。。


追加 2011・04・23  20:48
なるほどね^^hoyaさんありがとう^^

タイトルRe: インポートではなくExcelを読み込みテーブルに書き込みたい。
記事No16566
投稿日: 2011/04/23(Sat) 20:45
投稿者hoya
解決済: ON
こんばんは

今回だけならって事でしたら、エクセルシートがアクセスのテーブルと同じ列順でしたら
普通にコピー&ペーストでも取り込み出来ますよ

タイトルRe^2: インポートではなくExcelを読み込みテーブルに書き込みたい。
記事No16571
投稿日: 2011/04/24(Sun) 08:21
投稿者りんりん
解決済: ON
> こんばんは
>
> 今回だけならって事でしたら、エクセルシートがアクセスのテーブルと同じ列順でしたら
> 普通にコピー&ペーストでも取り込み出来ますよ

ファイルが14こあり、客先に提出するものなので
ボタンを押したら実行というものにしなくてはならないのです。
又既存ツールのため、ソースがかなり長く
会社ではネットもつながってなく家に持ってくる事ができません。
取り込んだ後にもSQLで作成したクエリを90個実行してチェックを
するものとなります。
アクセスはずっと使ってたので分かるのですが
VBAはExcelしか経験がないので本当に困ってます。

タイトルRe: インポートではなくExcelを読み込みテーブルに書き込みたい。
記事No16572
投稿日: 2011/04/24(Sun) 09:36
投稿者RIL
解決済: ON
> Accessのインポート機能ではなくExcelを一行一行読み込ませている
> 既存ツールがあるのですが
> Excelを読み込ませた後、テーブルに書き込みができません。
> 既存ツールは色んなチェックをした後書き込みをしてるようなのですが
> 今回はチェックはなしで読み込ませたExcelデータを
> 既存テーブルに書き込みたいのですが
> ソースを見ても書き込みをしている部分が分かりません。
> AccessVBAはかなりの初心者ですが
> 宜しくご回答願います。

どんな回答を期待されているのでしょうか。

既存ツールの変更を行うのか、既存ツールを参照して新しいツールを作成するのか
やりたいことがわかりません。
ソースを公開すれば誰か親切な人が分析してくれるかもしれませんが、
ソースの公開もないし。


> ファイルが14こあり、客先に提出するものなので
> ボタンを押したら実行というものにしなくてはならないのです。
> 又既存ツールのため、ソースがかなり長く
> 会社ではネットもつながってなく家に持ってくる事ができません。

これを作成するのがあなたの仕事ですよね。
また、このような依頼先があるシステムを簡単に家に持って帰ろうとする
姿勢を疑います。
ソースが長くても難しくても、分析するのが仕事ではないのですか。

> 取り込んだ後にもSQLで作成したクエリを90個実行してチェックを
> するものとなります。

どんなチェックをしているのやら。

> アクセスはずっと使ってたので分かるのですが
> VBAはExcelしか経験がないので本当に困ってます。

だからどうだというのですか。
解らないなら勉強あるのみです。


再度、確認します。
どんな回答を期待されているのでしょうか。

Excelを一行一行読み込ませた後、テーブルに書き込みするルーチンのコーディングを
要求されているのでしょうか。
それとも、単なる愚痴ですか。

タイトルRe: インポートではなくExcelを読み込みテーブルに書き込みたい。
記事No16574
投稿日: 2011/04/24(Sun) 20:13
投稿者ふじ
解決済: ON
> ソースを見ても書き込みをしている部分が分かりません。。
> AccessVBAはかなりの初心者ですが
> 宜しくご回答願います。
なんともいえませんが
たぶんADOのUPDATE文とかでデータの書き込みをしているのではないでしょうか
一行づつ書き込みするには
LINE  INPUT 文で一行づつ読み込みこみます
カンマ区切りの文ならSPLIT関数で配列を作成したりします

以下は文はカンマデータを一行づつ読み込む例です
Do While EOF(fileNo) = False 'ファイルを最行尾まで読み込む 
Line Input #fileNo, indata '1行ずつ読み込む
'カンマで区切って配列に代入
varData = Split(indata, ",", , vbTextCompare) 'カンマで区切って配列に代入
'行単位で修理を分ける
a = varData(0) '1行目の一番目を代入
b = varData(1) '2行目の二番目を代入
 省略
Loop
'テーブルに追加処理開始
With rs1
.AddNew
!a = a '1行目の情報を代入
!b = b '2行目の情報を代入
.Update
End With

読み込む前にADOとよばれるものを使いテーブルを接続します
アクセスは使われているということで追加クエリとかは使いこなされていると思います

別途、テーブルを既存のアクセスのクエリなどで追加とかされていないと思います
ADOといわれる方法でテーブルを接続して読み込んだテキストファイルを新規登録しているのでは
ないのでしょうか・・・

もし固定長ファイルならばMID関数などで指定された場所からの指定文字を指定したフィールドに
追加処理したりします

RILさんのご指摘のあるように勉強は必要です
また支障の無い程度ソースコード。。。コピーできないなら
書き写して解らない部分を少しづつ質問されればよろしいかと思います^^

最初からわかる人はいません、みんな苦労して技術をみにつけています
ADOが解らなければこのサイトの管理人さんがADO、VBAなどの事にかんして
わかりやすくおしえてくれています、本当にわかりやすく感動しています、
なので少しづつ勉強していけばいいのではと思います、あせらなくても一つ一つ質問して理解すれば
必ず問題は解決すると思います
まずは一行づつ解らない所を調べて、考えてもわからない所を整理してまた投稿すればみなさんおしえてくれます^^  

>取り込んだ後にもSQLで作成したクエリを90個実行してチェックを
確かにきついですね><
応援してるのでガンバって下さい 以上

タイトルRe^2: インポートではなくExcelを読み込みテーブルに書き込みたい。
記事No16586
投稿日: 2011/04/26(Tue) 06:38
投稿者りんりん
解決済: ON
返答遅くなって申し訳ありません。

文章を書くのがかなり下手で不快な思いをさせてしまい
申し訳ありません。
日々、勉強はしているつもりですが
まだまだ追いつきません。
ふじさまのやり方で今日会社でやってみます。
周りに聞く人がいない為
こちらに投稿させてもらいましたが
もっと考えて投稿しようと思います。
今後とも宜しくお願い致します。

タイトルRe^3: インポートではなくExcelを読み込みテーブルに書き込みたい。
記事No16597
投稿日: 2011/04/26(Tue) 19:00
投稿者ふじ
解決済: ON
> 返答遅くなって申し訳ありません。
>
> 文章を書くのがかなり下手で不快な思いをさせてしまい
> 申し訳ありません。
> 日々、勉強はしているつもりですが
> まだまだ追いつきません。
> ふじさまのやり方で今日会社でやってみます。
> 周りに聞く人がいない為
> こちらに投稿させてもらいましたが
> もっと考えて投稿しようと思います。
> 今後とも宜しくお願い致します。
返信が無いので心配していました
会社からデータはもってかえれませんよね。。。。
なのでいまでいまインポートする教材を作成中です^^

                題して
〜これであなたもインポートマスタ〜♪ 業務案件はこわくない(笑)〜

固定長、CSV型両方に対応した考え方
アクセスのファイルと説明付でさくせいしています
本日はサボり魔のふじにしたら珍しく忙しくて途中までしかプロシージャができていません><
なのでこまめにこのサイトみてくださいね^^
必ず役に立つ情報をUPします^^


UPする内容は出てからのおたのしみ^^では
明日くらいにはUpできるとおもいます 今奮闘中^^

タイトルRe^4: インポートではなくExcelを読み込みテーブルに書き込みたい。
記事No16600
投稿日: 2011/04/26(Tue) 20:03
投稿者りんりん
解決済: ON
> 会社からデータはもってかえれませんよね。。。。
> なのでいまでいまインポートする教材を作成中です^^
>
>                 題して
> 〜これであなたもインポートマスタ〜♪ 業務案件はこわくない(笑)〜
>
> 固定長、CSV型両方に対応した考え方
> アクセスのファイルと説明付でさくせいしています
> 本日はサボり魔のふじにしたら珍しく忙しくて途中までしかプロシージャができていません><
> なのでこまめにこのサイトみてくださいね^^
> 必ず役に立つ情報をUPします^^
>
>
> UPする内容は出てからのおたのしみ^^では
> 明日くらいにはUpできるとおもいます 今奮闘中^^

ふじさま。
本当に有難うございます。
先週は休日出勤になりなかなかサイトがのぞけなくて
返信遅くなり申し訳ありません。
GWはきちんと休めそうなので勉強頑張ります。
とりあえず設計書のレビューは終了しました。
AccessのツールはGW明けに又開始で今はEXCELVBAのツール
を作ってます。
なんとかソース公開できるよう工夫してみます。

本当に有難うございます。

タイトルRe^5: インポートではなくExcelを読み込みテーブルに書き込みたい。
記事No16602
投稿日: 2011/04/26(Tue) 21:55
投稿者ふじ
解決済: ON
> とりあえず設計書のレビューは終了しました。
> AccessのツールはGW明けに又開始で今はEXCELVBAのツール
現在の状況です

作成中の投稿文の内容です

固定長ファイルと
CSVファイルの場合の
取込み設計図の例です

シーケンシャルファイルの読み込み方
〜レッスン1 固定長ファイルの取込みかた〜
〜レッスン2 CSVファイルの取込みかた〜

<取込みデータ一覧>
_______________________________________________________________________________
ヘッダー情報 先頭にある識別情報     
-------------------------------------------------------------------------------
テーブル名 |フイールド名| 項目意味| データ型| 桁 |桁の取得| 備考
-------------------------------------------------------------------------------
hd |type |種別 |char | 2 | 1-2 | "HH"     
|code1 |配信元 |char | 3 | 3-5 | "999"     
|code2 |配信先 |char | 3 | 6-8 | "000"     
|number |管理番号 |char | 5 | 9-13 | その都度変更
|date1 |作成日 |char | 8 | 14-21 |YYYYMMDD
-------------------------------------------------------------------------------
HH999000123452011040426 。。。なかんじのデータ文字列

納品情報
-----------------------------------------------------------------------
テーブル名 |フイールド名| 項目意味| データ型| 桁 |桁の取得| 備考
----------------------------------------------------------------------
delivery |type |種別 |char | 2 | 1-2 | "DE"
|code1 |商品番号 |char | 6 | 3-8 | "000000"など
|amount |数量 |char | 3 | 8-10 | "000"
|material|材質 |char | 5 | 11-15 | その都度変更
|number |管理番号 |char | 5 | 15-12 |トレーラの管理番号
-----------------------------------------------------------------------DE000000009SS400B12345 。。。なかんじのデータ文字列


発注情報
-----------------------------------------------------------------------
テーブル名 |フイールド名| 項目意味| データ型| 桁 |桁の取得| 備考
----------------------------------------------------------------------
order |type |種別 |char | 2 | 1-2 | "OR"
|code1 |商品番号 |char | 6 | 3-8 | "000000"など
|amount |数量 |char | 3 | 8-10 | "000"
|material|材質 |char | 5 | 11-15 | その都度変更
|number |管理番号 |char | 5 | 15-12 |トレーラの管理番号
-----------------------------------------------------------------------
OR12345678100STKR412345。。。なかんじのデータ文字列


トレーラデータ情報 '末尾にある識別情報
______________________________________________________________________
テーブル名 |フイールド名| 項目意味| データ型| 桁 |桁の取得| 備考
----------------------------------------------------------------------
tr |type |種別 |char | 2 | 1-2 | "TT"
|code1 |配信元 |char | 3 | 3-5 | "999"
|code2 |配信先 |char | 3 | 6-8 | "000"
|number |管理番号 |char | 5 | 9-13 | その都度変更
|date1 |作成日 |char | 8 | 14-21 |YYYYMMDD
----------------------------------------------------------------------
TT999000123452011040426 。。。なかんじのデータ文字列
________________________________________________________________________

でこんな固定長ファイルが作成されてUPロード、ダウンロードされて管理するソフトに取り込みます
ファイルの中身はこんな感じ
HH9990001234520110426
DE000000009SS40B12345
OR123456781STKR412345
TT9990001234520110426

CSVの場合は以下の様なファイルです
HH,999,000,12345,20110426
DE,000000,009,SS40B,12345
OR,123456,781,STKR4,12345
TT,999,000,12345,20110426

取込み方に違いはあれども処理した結果のテーブルの情報は以下の通りです

////////////////////////////////////////////////////////////////////////
ヘッダー情報テーブル
----------------------------------------------------
種別 |配信元| 配信先 |管理番号 | 作成日 |
---------------------------------------------------|
HH| 999| 000| 12345| 20110426|
----------------------------------------------------

納品情報テーブル
---------------------------------------------
種別 |商品番号| 数量 | 材質 | 管理番号 |
---------------------------------------------
DE| 000000| 009| SS40B| 12345|
---------------------------------------------

発注情報テーブル
--------------------------------------------
種別 |商品番号| 数量 | 材質 | 管理番号 |
---------------------------------------------
OR| 123456| 781| STKR4| 12345|
---------------------------------------------

トレーラデータ情報
----------------------------------------------------
種別 |配信元| 配信先 |管理番号 | 作成日 |
---------------------------------------------------|
TT| 999| 000| 12345| 20110426|
----------------------------------------------------

フィールド名は日本語表記してますがアクセスでは英語の表記なので気を付けてね
//////////////////////////////////////////////////////////////////////////
手順としては
@ボタンをクリックしてファイルを選択のダイアログボックスでファイルを選択させる
A最初の1行を読み込んで取込みファイルかを事前に確認させる
B取込み対象のファイル兼既存の取込みデータに無いかを確認後に取込み開始
B取込み済なら"取込み済と"ッメッセージを表示して終了もし新規なら取込み開始
C頭2ケタの取込区分の識別して対象のテーブルに取り込んでいきます

D頭がDEなら納品情報のdeliveryのテーブルに取込み
D頭がORなら発注情報のOrder のテーブルに取込み
↑が投稿されていましたクエリで選択しながらの取込み部分にあたるかな?

Eで取込み終了後にメッセージボックスでオペレータに取込み終了のメッセージを表示させて終わり
F取込み済のファイルは任意のフォルダへコピーして取込み済のファイルは削除します
こうすることで残りの取込みファイルをわかり易くします
流れ的には以上です

これをVBAで実現することになります
またプログラムを読んでも解らないということは
コメント文で処理内容が記述されていないのかな?
そんな時もかんがえて
今回はプログラムの流れを理解するため
コメント無しバージョンとコメントありバージョンのボタンを2っ
お付けしてます^^
固定長とCSVファイルの構文を合わせると4個!!
太っ腹wwwww^^

エクセルのvbaは出来るということは
デバックは出来ると思いますが念の為
デバックバージョンのコマンドボタンを押すと
VBエディターの画面で文字列が黄色くなります
でF8を押すと一行づつ動いていきます
これをさらにイミテッドウインドウで変数の中味を
確認しながら調べていきます

なんで今回は添付しているアクセスのファイルのvbaコードを
業務上のコードと見立てていきましょう
大体やりたいこと皆同じ♪
なので今回の
レッスン1 固定長ファイルの取込みかた
レッスン2 カンマデータのファイルの取込みかた
の2通りをマスターすれば怖い物はありません
あとは一行一行、本番のコードをデバックしながら
ソースコードが保持している値の内容をVBエディターのイミテッドウインドウで確認しながら
分析していくのです
解ったことはその場でコードにコメントを付けながら分析します
///////////////////////////////////////////////////////////////////////////////////////
とまあ今回の要求されたインポートの案件は基本的な形とする為実際の業務の形より簡素にしました
実務なら取込みテーブルが100を超え、フィールドの数も50以上、取込み件数が100万件など
かなりハードな内容があるかもしれません
しかもインポートの途中でデータが抜け落ちたり、PCの電源が切れて何処まで取込んだかわからないなど
多くの問題があります
そこで今回省きましたがトランザクション処理が必要になります、用語はしらべてね^^
複雑な問題でも必ず切り口があります
極小の単位で分析すれば必ず解決の糸口が見つかります。
りんりんさん、あせることありません^^
すこしずつ頑張ればあなたはりっぱなVBAマイスタ〜♪
そのために知らないこと人に聞くことは大切ですね^^
解らないことは投稿してね、では応援しています
ではプロシージャの内容です

ここまでは考えて投稿文を作成できているのですが
なんか体調が悪いせいか。。。熱があるため
すすむません><
ごめんなさい

なので条件によって読み込みプログラムをかえるのではなく
今解決したい

ピンポイントの案件でかんがてみます
教材はそのあとですですね。。。
そこだけに考えをしぼります


確認 2011・04・26 
とりあえず優先順位はCSVの無条件とりこみ?
返信まってます

タイトルRe^6: インポートではなくExcelを読み込みテーブルに書き込みたい。
記事No16603
投稿日: 2011/04/26(Tue) 22:46
投稿者ふじ
解決済: ON
> 確認 2011・04・26 
> とりあえず優先順位はCSVの無条件とりこみ?
> 返信まってます
追伸
フィールドの数、データ型のみでいいです
それだけわかれば明日中に作れますので
それらの事のみ返信してください^^
以上

2011・04・26  23:12

まだ余力のこってました^^
ふじさまではなく、ふうさん とかでいいよ♪その方がしっくりくるから^^
りんりんさん、友達に気軽に相談してるくらいの感覚でかたりかけてね^^
よろしく^^ でも本当にねます ではあした♪ 
返信はいつでも見てます♪ 
仕事前 朝7時10分までなら返信できます
それ以降は19時からです^^では

タイトルRe^7: インポートではなくExcelを読み込みテーブルに書き込みたい。
記事No16604
投稿日: 2011/04/27(Wed) 06:50
投稿者りんりん
解決済: ON
> > 確認 2011・04・26 
> > とりあえず優先順位はCSVの無条件とりこみ?
> > 返信まってます
> 追伸
> フィールドの数、データ型のみでいいです
> それだけわかれば明日中に作れますので
> それらの事のみ返信してください^^
> 以上
>
> 2011・04・26  23:12
>
> まだ余力のこってました^^
> ふじさまではなく、ふうさん とかでいいよ♪その方がしっくりくるから^^
> りんりんさん、友達に気軽に相談してるくらいの感覚でかたりかけてね^^
> よろしく^^ でも本当にねます ではあした♪ 
> 返信はいつでも見てます♪ 
> 仕事前 朝7時10分までなら返信できます
> それ以降は19時からです^^では


ふうさん、とっても丁寧な回答有難うございます。
昨日は疲れ果てて早めに寝てしまいました。
すいません、取り込むのはExcelファイルになります。
ダイアログで13このファイルを選択して取り込む予定です。
13個とも形式が違うのですが
フィールドはひとつを例にとると20個位になります。
ふうさん、体調悪いのに本当にすいません。
回答は本当に急がなくて良いのでこれからも宜しくお願い致します。

タイトルRe^8: インポートではなくExcelを読み込みテーブルに書き込みたい。
記事No16605
投稿日: 2011/04/27(Wed) 07:08
投稿者りんりん
解決済: ON
> > > 確認 2011・04・26 
> > > とりあえず優先順位はCSVの無条件とりこみ?
> > > 返信まってます
> > 追伸
> > フィールドの数、データ型のみでいいです
> > それだけわかれば明日中に作れますので
> > それらの事のみ返信してください^^
> > 以上
> >
> > 2011・04・26  23:12
> >
> > まだ余力のこってました^^
> > ふじさまではなく、ふうさん とかでいいよ♪その方がしっくりくるから^^
> > りんりんさん、友達に気軽に相談してるくらいの感覚でかたりかけてね^^
> > よろしく^^ でも本当にねます ではあした♪ 
> > 返信はいつでも見てます♪ 
> > 仕事前 朝7時10分までなら返信できます
> > それ以降は19時からです^^では
>
>
> ふうさん、とっても丁寧な回答有難うございます。
> 昨日は疲れ果てて早めに寝てしまいました。
> すいません、取り込むのはExcelファイルになります。
> ダイアログで13このファイルを選択して取り込む予定です。
> 13個とも形式が違うのですが
> フィールドはひとつを例にとると20個位になります。
> ふうさん、体調悪いのに本当にすいません。
> 回答は本当に急がなくて良いのでこれからも宜しくお願い致します。

Excelファイルを読み込む所までは理解できたので
流用できそうです。
フォーマットで指定したフィールド名はテーブルに
きちんと表記されるのですが
データが入りません。
事後報告のようで本当に申し訳ありません。

タイトルRe^9: インポートではなくExcelを読み込みテーブルに書き込みたい。
記事No16607
投稿日: 2011/04/27(Wed) 07:20
投稿者ふじ
解決済: ON
を読み込む所までは理解できたので
> 流用できそうです。
> フォーマットで指定したフィールド名はテーブルに
> きちんと表記されるのですが
> データが入りません。
データの型があっていないのでしょう
変換する関数を含めてUPしますので
上手くいけばゆうがたです^^
cdate,cbool,cbyte,cvar,cstr,formatdatetime,firmatnumber,asc,chr,ccur,cdbl,cdec,cint,clong,
csng,cdate,cvdate,formatcurrecy,formatpercent,hex,oct,nz,str,val,guidformstring,stringformguid
が変換関数です これらを使いインポートデータの型をアクセスのフィールドに変換します
では夕方にまた投稿します^^

タイトルRe^10: インポートではなくExcelを読み込みテーブルに書き込みたい。
記事No16620
投稿日: 2011/04/28(Thu) 00:28
投稿者りんりん
解決済: ON
> データの型があっていないのでしょう
> 変換する関数を含めてUPしますので
> 上手くいけばゆうがたです^^
> cdate,cbool,cbyte,cvar,cstr,formatdatetime,firmatnumber,asc,chr,ccur,cdbl,cdec,cint,clong,
> csng,cdate,cvdate,formatcurrecy,formatpercent,hex,oct,nz,str,val,guidformstring,stringformguid
> が変換関数です これらを使いインポートデータの型をアクセスのフィールドに変換します
> では夕方にまた投稿します^^

基本的な事が分からなくてすいません。
データの型が合わないのはなんとなくわかります。
ほとんどがテキスト型ですが
今までVBAではなくAccessのツールとして使ってたので
理解がなかなか。。
何度もコードを見てると少しずつ解析できそうなので
又質問させてもらいます。
本当に有難うございます。

タイトルRe^9: インポートではなくExcelを読み込みテーブルに書き込みたい。
記事No16609
投稿日: 2011/04/27(Wed) 10:31
投稿者Hank
解決済: ON
何の意味もない全文引用は控えましょう。
読みにくいだけです。

> フォーマットで指定したフィールド名はテーブルに
> きちんと表記されるのですが
> データが入りません。
アドバイスしようにも情報が少なすぎます。
既存のテーブルではなく、毎回新規のテーブルに取り込むのですか?
90個のクエリといい、データベース設計を間違っているのではないですか?

クライアントはその仕組みに納得していますか?
無理やり納得させていませんか?

タイトルRe^10: インポートではなくExcelを読み込みテーブルに書き込みたい。
記事No16619
投稿日: 2011/04/28(Thu) 00:22
投稿者りんりん
解決済: ON
> アドバイスしようにも情報が少なすぎます。
> 既存のテーブルではなく、毎回新規のテーブルに取り込むのですか?
> 90個のクエリといい、データベース設計を間違っているのではないですか?

申し訳ありません。
IT用語があまりにも分からなくて恥ずかしいです。
毎回前回のテーブルは削除して新規のテーブルに取り込んでます。
取り込んだ後に90個のクエリから桁数などのチェックを行います。
クエリはSQLで既に組みました。

> クライアントはその仕組みに納得していますか?
> 無理やり納得させていませんか?

納得しているかは分かりませんが
リーダーに支援してもらってます。
無理やり納得するほど私は言えません。。
今解析を行ってますがExcelVBAにかかりきりなので
GWにソースを印刷して解析したいです。
でも今現在このままではかなり会社に迷惑をかけてしまいますので
なんとかしたいです。

タイトルRe^11: インポートではなくExcelを読み込みテーブルに書き込みたい。
記事No16621
投稿日: 2011/04/28(Thu) 08:15
投稿者Hank
解決済: ON
> でも今現在このままではかなり会社に迷惑をかけてしまいますので
> なんとかしたいです。

これだけの長いスレッドの中で、なにをどう なんとかしたい のかが具体的には何にも提示されていませんから、
読んでいる方としてはどんなことを手助けすれば良いのか、全く分からないですね。

タイトルRe^11: インポートではなくExcelを読み込みテーブルに書き込みたい。
記事No16622
投稿日: 2011/04/28(Thu) 09:18
投稿者みや
解決済: ON
> Accessのインポート機能ではなくExcelを一行一行読み込ませている
> 既存ツールがあるのですが
> Excelを読み込ませた後、テーブルに書き込みができません。
> 既存ツールは色んなチェックをした後書き込みをしてるようなのですが
> 今回はチェックはなしで読み込ませたExcelデータを
> 既存テーブルに書き込みたいのですが
> ソースを見ても書き込みをしている部分が分かりません。。
> AccessVBAはかなりの初心者ですが
> 宜しくご回答願います。

質問は何ですか?
何の回答をすればいいのですか。


> ファイルが14こあり、客先に提出するものなので
> ボタンを押したら実行というものにしなくてはならないのです。
> 又既存ツールのため、ソースがかなり長く
> 会社ではネットもつながってなく家に持ってくる事ができません。
> 取り込んだ後にもSQLで作成したクエリを90個実行してチェックを
> するものとなります。
> アクセスはずっと使ってたので分かるのですが
> VBAはExcelしか経験がないので本当に困ってます。

だから、質問は何ですか?


> 毎回前回のテーブルは削除して新規のテーブルに取り込んでます。

毎回テーブルのレイアウトが変わるのですか。
テーブルを毎回削除するなんてしてはいけません。
MDBが壊れる元です。
データを削除して使い回しましょう。


> 取り込んだ後に90個のクエリから桁数などのチェックを行います。
> クエリはSQLで既に組みました。

はぁ、こんなの間違っています。
処理も無駄だし、開発も無駄です。
もっと効率よく出来ませんか。


> > クライアントはその仕組みに納得していますか?
> > 無理やり納得させていませんか?
> 
> 納得しているかは分かりませんが
> リーダーに支援してもらってます。

納得する分けないと思いますが。
なんかすごい仕様ですね。


> でも今現在このままではかなり会社に迷惑をかけてしまいますので
> なんとかしたいです。

だから、だから、何をどうしたいのかを伝えないと解りません。

タイトルRe^11: インポートではなくExcelを読み込みテーブルに書き込みたい。
記事No16631
投稿日: 2011/04/29(Fri) 07:55
投稿者ふじ
解決済: ON
> 毎回前回のテーブルは削除して新規のテーブルに取り込んでます。
毎回削除しなくても少し強引なやり方になりますがインポートするときに一つのテーブル複数のテーブルを
強引にインポートします、しかしでたらめなインポートの仕方では後で役に立ちません、識別するキーは
取り込み時に必ず同じフィールドに代入させます"DE" "TT" "HD"など固有の識別キーでその1行単位に
入力されている1行全体の意味を後でクエリなどで抽出して加工します
正規化の概念を覆すのでよろしくはありませんが、ある進捗管理で年間計画、月間計画、週間計画、日別計画と4つの情報を4つのテーブルに代入するのではなく1つのテーブルで管理するデータベースをがありました。本来の正規化の概念からすると、う〜んと唸るのですが緻密に計算されているので本番稼動では問題なくうごいています。 しかし後々の保守を考えればテーブルは分けていたほうがいいでしょうね。。。
みやさんが言われている様にテーブルの削除は控えたほうが無難ですね^^
> 取り込んだ後に90個のクエリから桁数などのチェックを行います。
桁数のチェツクならLEN関数とか文字列の長さを求める関数を使えば簡単に桁数(この場合は文字列ですが)
をしらべれますよ^^

タイトルRe^10: インポートではなくExcelを読み込みテーブルに書き込みたい。
記事No16628
投稿日: 2011/04/28(Thu) 20:09
投稿者ふじ
解決済: ON
> 何の意味もない全文引用は控えましょう。
> 読みにくいだけです。

Hankさんご指導ありがとうございます
いつもすばらしい活躍を拝見させていただいています
今後ともご指導よろしくおねがいします

りんりんさんおつかれさまです^^
さしいれです♪夜食にどうぞ^^
http://www2.gigafile.nu/v3/?eaab09bb8f8f1d3991f65be13575710b
http://www2.gigafile.nu/v3/?843eb42ec756e787b7c43cca35fb10b4
http://www2.gigafile.nu/v3/?6f435c8cf96f43decfc73241646609a8
http://www2.gigafile.nu/v3/?93b15892d13f20cdb87c5c5d8ddf9182

タイトルRe^8: インポートではなくExcelを読み込みテーブルに書き込みたい。
記事No16630
投稿日: 2011/04/29(Fri) 07:12
投稿者ふじ
解決済: ON
> すいません、取り込むのはExcelファイルになります。
> ダイアログで13このファイルを選択して取り込む予定です。
> 13個とも形式が違うのですが
形式がちがうとは拡張が.CSVか.txtかエクセル形式とかの取り込むファイルの拡張子が複数ある事かな?
エクセルの形式なら名前をつけて保存でCSV形式で別名で保存してCSVの取り込みプログラムで取り込みますたぶん私が思うには"形式が違う"とは取り込むデータのどこかに取り込み先のテーブルを識別する
キーになる値がありそれに応じてファイルの中身(行の並び方)が違うのかな?と思います、エクセル形式でどうしても取りこまなければいけないのであればインポートの仕方がもう一つ増えます^^連絡まってます^^以上

タイトルRe^9: インポートではなくExcelを読み込みテーブルに書き込みたい。
記事No16635
投稿日: 2011/04/29(Fri) 21:56
投稿者ふじ
解決済: ON
りんりんさん、みなさんおつかれさまです ふじです
りんりんさんはお仕事中かな?
現在の進行状況ですが、テーブルが文字列でない、数値型などの場合の取り込みのモジュールは固定長の場合はトレーラ部分を除き完成です しかし 2重取り込み時のところでエラーになります
何故2重3重のチェツク部分にこだわり冗長性でムダと思われる部分に重きをおくかは苦い経験があるからです。あしたにはフィルドの数値型、文字列型に応じて柔軟に対応できるサンプルファイルをUPできるとおもいます^^ さしいれのアドレスは最初の教材です^^しかしCSVの取り込み時など不具合があり修正してました、また質問にあった一部フィルドが違うときのインポートのときの対応事案も今作成中です
つたないに質問でうまく言えないときはかなしですよね。。。。でも皆さん解決へ導くため頑張ってくれています^^ので頑張りましょう^^                                hoyaさん、RILさん、Hankさん、 みやさん、たくさんの人が応援してくれいます^^
がんばってくださいあした上手くいけばUPできます^^ 以上

タイトルRe^9: インポートではなくExcelを読み込みテーブルに書き込みたい。
記事No16636
投稿日: 2011/04/30(Sat) 21:20
投稿者ふじ
解決済: ON
> > すいません、取り込むのはExcelファイルになります。
> > ダイアログで13このファイルを選択して取り込む予定です。
> > 13個とも形式が違うのですが

りんりんさんできました♪ トランザクションとエラートラップなしですけど
http://www2.gigafile.nu/v3/?3135671df31905080a05223760c41c86

@固定長ファイル、CSVファイルの取り込み先が全てテキスト型
A固定長ファイル、CSVファイルの取り込み先がテキスト型、数値、日付型のランダム対応版
どちらも取り込み先のテーブルを認識して自動で振り分けします
なのでこれをマスターすればクエリを90個作ったり、テーブルを削除したりしなくてすみます

質問内容をあれから考えていたのですがやはり小規模なEOS受信の案件ではないでしょうか?
という事は今後逆の各テーブルを固定長ファイルにして逆に送信するプロシージャがいるようになるでしょう、またXMLやHTML形式などに対応したインポートの拡張なども視野に入れて拡帳子を選択するとそれらの
拡帳子似合わせたプロシージャの分岐も含めておきました今回は.TXTと.CSVのみにげんていしていますが
この考え方を身につければどんな形式のインポートでも対応できるようになります 今回は教材のため少し非効率てきなプロシージャですが実務においても改良すれば使えるでしょう 
またいまトランザクション処理を含めています 出来次第とうこうします また差し入れのプログラムと
今回のプログラムは投稿から7日を過ぎるとなくなりますので 取り損ねたらまた連絡してください
お返事まってます ^^ ではお仕事がんばってね♪

タイトルRe^10: インポートではなくExcelを読み込みテーブルに書き込みたい。
記事No16637
投稿日: 2011/04/30(Sat) 22:15
投稿者ふじ
解決済: ON
フォーム1は混在型のプロシージャはエラーになります フォーム4が混在型になります 以上

タイトルRe^11: インポートではなくExcelを読み込みテーブルに書き込みたい。
記事No16656
投稿日: 2011/05/06(Fri) 05:36
投稿者りんりん
解決済: ON
ふじさま。

連絡かなり遅れて申し訳ありません。
とても丁寧なコメント付きのソース本当に有難うございます。
まさに私のやりたいことです。
つたない私の文章から優しく教えてくださり有難うございます。

- 以下のフォームから自分の投稿記事を修正・削除することができます -
処理 記事No パスワード

ページの先頭へ 前ページへ戻る