600万件のデータ(株価の日足)をオートナンバーのあるテーブルにインポートしようとしたんだが、
件数が増えるにつれだんだん遅くなって、最後はフリーズしたような状態になった。
それ以来、オートナンバーは使わないことにした。
941 :
935:2007/12/20(木) 00:29:30
>>937 レスありがとうございます。
色々調べてみると、レコードが無い場合は最適化するとよいとありましたが、
レコードがある場合は最適化するとデータが消えるなど不都合があるんでしょうか?
また、この最適化とはテーブル単位ではなくてデータベース単位で最適化されるようですが、
ひとつのデータベースに複数のテーブルがある場合、そのすべてが最適化されそのその中でレコードが存在する
テーブルに不具合がでたらと思うと怖いんですが、このあたりなどうなんでしょうか?
やはり、レコードが存在する場合は最適化すると駄目なんでしょうか?
レコードがある場合は最適化しない方が良いみたいな表現が気になりましたが、
どういう結果になるのかわからず、対処しかねています。
>>941 コピーしてやってみりゃ解るだろ、ボケ!
944 :
名無しさん@そうだ選挙にいこう:2007/12/20(木) 09:57:24
【 システム環境 . 】 WindowsXP SP2, Access2003 SP3
【 検索キーワード 】 Access 2003 MDB 壊れる 不具合 破損
ACCESS2003で新規MDBを作成し、
ツールボックスを挿入しようとするとACCESSが落ちるのですが
こういった経験された方いらっしゃいますか?
ちなみにウイルスセキュリティZEROをいれてから現象が起こるように
なった気もするけど、関係ないですよね
新規MDBの場合だけですし・・
945 :
名無しさん@そうだ選挙にいこう:2007/12/20(木) 21:14:24
アクセス2003を使ってます。
ネットワーク上でファイルを共有したいのですが、
開くと鍵がかかったmdbが表示され共有使用が出来ません。
共有モードにはなっています。
以前の職場なら可能だったのですが・・・。
なにか他に設定が必要でしょうか?
947 :
名無しさん@そうだ選挙にいこう:2007/12/21(金) 13:56:28
エクセルでデータ入力してるファイルがあるとする
それをアクセスに取り込んでいろいろ設定して1週間かかるとする
その間エクセル側にどんどん新しいデータなりマスターになるような新項目も増えたりする
さて、完成したアクセスに対して1週間分のデータやマスターをどうやって取り込む?
もちろん各テーブルのフォーマットは違う
インポートして同じようにリレーション作ってからそれぞれユニオン?
マスター・テーブル間の整合性崩れてわけわかめ
どうやってますか?
>>947 最初に取り込んだデータはあくまで開発用とすればいいだろ。
切り替え時に「既存XLSデータの取り込み」〜「初期設定」を行うようにする。
> その間エクセル側にどんどん新しいデータなりマスターになるような新項目も増えたりする
その期間、追加作業を凍結させればいいだろ。
1週間でどれだけのデータになるか分からんが、
新システムに移行してからデータ入力させてもいいんじゃないか?
そもそもマスタとなるような項目が
1週間やそこらで追加されるデータなんて俺には想像つかんよ。
思いつき&場当たりで運用してるとしか思えん。
>>948 商品名マスターが
1 いちご
2 りんご
3 バナナ
・・・なのが
1週間後
キウイ
みかんが追加されても不思議ではあるまい?
追加分だけインポートして商品マスター2を作ったら
1 キウイ
2 みかん が出来る
これを統合して
1 いちご
2 りんご
3 バナナ
4 キウイ
5 みかん にしたとしても 取り残された追加分TBの参照先が浮いてしまう
追加作業凍結しか方法はないのかい?
それ項目増えてない
わざわざ新規テーブル(商品マスター2)にインポートせずに
作ったテーブル(商品マスター)にインポートすりゃいいだろ
って話ではない?
>>951 元のエクセルのフォーマットはマスターもクソもない1枚の表なんですけど・・・
アクセス化した場合にそうなるであろうマスターテーブルやデータテーブルの更新をどうやるか?ということです
それともIDを勝手に認識して最適にインポート出来るのですか?
1 いちご 1 いちご
2 りんご → 2 りんご
3 バナナ 3 バナナ
4 キウイ
いちご ¥500 3個 1 ¥500 3個
りんご ¥300 2個 2 ¥300 2個
バナナ ¥200 5個 → 3 ¥200 5個
いちご ¥800 6個 1 ¥800 6個
キウイ ¥400 2個 4 ¥400 2個
2列以降だけインポートしても追加分のIDが未入力になって浮いてしまう
1 ¥500 3個
2 ¥300 2個
3 ¥200 5個
¥800 6個
¥400 2個
完成したアクセスの商品マスターからIDを検索してエクセルを置換してからインポートしかないのか
その表にリンクしてるだけのマスターならそれでいいがその先まで追跡は難しい
>>947 俺だったら一括でコンバートできるモジュールを作成しておき、切替時に実行するけどな
そのやり方が想像も出来ないのだったら、その案件は他の人に任すか、外注に出したほうが幸せになれるだろう
だよなあ
なんで追加分だけインポートなんだよっていう
958 :
名無しさん@そうだ選挙にいこう:2007/12/24(月) 05:35:48
Class 2ch
Property Let Url(adr)
my_url = adr
end Property
Public sub Method()
...
end sub
end Class
クラスについて調べたのですが、どこも書いていませんでした。
教えてくれませんか。
上記のようなクラスを作成することは、できるのでしょうか?
VBAでクラス作るなんて無駄。
クラスも使えん奴は上級者ではない。
962 :
名無しさん@そうだ選挙にいこう:2007/12/25(火) 18:29:37
>>960 正直、無理なんだろうと思ってました。
でも、できました。ありがとうございます。
そのリンク先、非常に助かりました。
アドバイスをお願いします。
以下の形式のタブ区切りのテキストデータがあります。
フィールドA[タブ]1[改行]
フィールドB[タブ]いいいい[改行]
フィールドC[タブ]999[改行]
フィールドE[タブ]100[改行]
フィールドA[タブ]2[改行]
フィールドB[タブ]わわわわ[改行]
フィールドD[タブ]ああああ[改行]
フィールドE[タブ]555[改行]
(以下略)
フィールド名とそのデータの区切りはタブ、フィールドの区切りとレコードの区
切りは改行です。
「フィールドA」には必ずユニークなレコードNoが振られています(必須フィール
ド)ので、「フィールドA」がレコードの区切りも兼ねています。
ただし、上の例のように、「フィールドA」以外のフィールドはレコードによって
存在する場合と存在しない場合があります。
フィールドの数は実際には50個程度、レコード数は10万件程度で、上記テキ
ストファイルは100万行程度あります....1レコードあたりのフィールド数は多い
ものもあれば少ないものもあって、平均10個程度ということです。
これをAccessに取り込んで、50個のフィールドからなるテーブル1つを作成し
たいのですが、どうやってやるのが効率的かアドバイスをお願いします。
ちなみに、このテキストデータは元々、何らかのデータベースソフトから出力
したものだと思いますが、作成元に別形式での出力を依頼することはでき
ないため、何とか上記形式のデータをそのまま利用したいという趣旨です。
名簿屋の個人情報データだったりして。
965 :
名無しさん@そうだ選挙にいこう:2007/12/27(木) 11:56:44
>>963 そういうのは桐でやったら?
試用版もあるしさぁ
966 :
963:2007/12/27(木) 12:41:49
964さん、965さん コメントありがとうございます。
確かに桐なら、そういった取り込みも割と簡単にできるのはわか
っていますが(最初からそう書いておけばよかったですが、スレ
違いのため、省きました)、データの中にヨーロッパ諸語の文字
が少なからず含まれている関係からUnicodeテキストになってい
るため、今回は桐が使えません。
>>966=963
エディタで
"[改行]" を ",[改行]" に置換
↓
"[改行]フィールドA" を "[改行][改行]フィールドA" に置換
↓
",[改行]" を "," に置換
↓
"フィールド*[タブ]" を "" に置換
何か漏れがありそうだけど、旨く出来てるかなぁ?
>>968 フィールドが存在しないレコードに対応できない
>>968 >>969 969さんご指摘の通り、元々のテキストデータにすべてのフィールドが
入っていれば、簡単なんですが、一部のフィールドしか入っていないの
で、968さんのやり方では対処できないんです。
Access2007の新機能、複数値型フィールドって
こういうDQN仕様に対応するためのものなのかもしんない
いや、全然違うだろ
>>963の説明がハッキリしないが、フィールド名はデータとして落ちてんじゃねーの?
975 :
963:2007/12/28(金) 09:53:44
>>974 > フィールド名はデータとして落ちてんじゃねーの?
はい、その通りです。
963で以下のように書いた通り、フィールド名自体もデータとして書き出されて
いて、その後に(タブをはさんで)そのフィールドのデータが書き出された形式
のテキストファイルです。
> フィールド名とそのデータの区切りはタブ、フィールドの区切りとレコードの区
> 切りは改行です。
ですので、そのフィールド名を読んでそれに続くデータをテーブルの各フィール
ドに書き込んでやる作業を繰り返せばよいのですが、Accessでこれを効率よ
くやる方法がないかというのが質問です。
965さんからアドバイスがあった通り、桐ならこれをコマンド一発でできるので
すが、Accessには同様のコマンドはないようです(たぶん)。
※桐でできない理由は966で説明済み。
なので、一発は無理にしても、数ステップでできれば....と希望しています。
やっぱVBA組むのが一番簡単だと思うけど・・
977 :
名無しさん@そうだ選挙にいこう:2007/12/28(金) 11:07:13
お話の間に失礼します。
今会社なのですが、社長のPCを新しくVISTAを購入したのですが、
ACCESS97がインストールできません。
私はあまりPCに詳しくないのですが、やり方がおかしいのか、それとも
ACCESS97はVISTAに対応していないのか。。
分る方がいらっしゃいましたら、教えていただきたいです。
お願いします。
979 :
名無しさん@そうだ選挙にいこう:2007/12/28(金) 12:10:16
>>978 ありがとうございます。
色々検索はしてみたのですが、
UPしてくれた画面までたどりつけませんでした。。
おかげさまで助かりました^^
>>978 この表によると Office 2000はVistaに対応していないということになるのか?
>>980 表見てわからなけりゃMSKKに電話して訊け。
当然です。OfficeXP(2002)すら未サポートです。
983 :
名無しさん@そうだ選挙にいこう:2007/12/28(金) 13:08:53
電話して聞いてみたところ、
VISTAが対応しているのは2007と、93(聞き間違えかも・・)と言われました。
Office2000は一応動作するように見えるが、もっと使い込まないとわからんか・・・
>>975 桐は知らんのでもちろん試しもせずに言うんだけど、
そのテキストをUTF-7に変換
桐でasciiテキストとして(シフトJISとかでもいい)読み込む
桐で普通のCSVとして出力する
AccessでUTF-7としてインポート
とかやればでできそうな気がするんだけど、どうかな?
988 :
975:2007/12/28(金) 23:52:20
>>986 アドバイスありがとう
だた、桐はまったくUnicodeに対応していないので、
そのやり方では文字化けしてしまって使い物にならない
もうVBA覚えなきゃにっちもさっちも逝かないところまで来てるのに
絶対に意地でも覚えようとしないやついるよねw