AccessのVBAに関する質問スレです
★1 質問テンプレ(雛形)は用意しませんが、OSとAccessのバージョンは必ず書きましょう。
★2 AccessのVBA以外の部分に関する質問はNGです。
但し、VBA無しでも出来ることだが、あえてVBAでやりたいって物に関してはOK。
★3 AccessのVBE(Visual Basic Editor)を使うとしても、VBAの分野以外に関してはスレ違いです。
VBAとは、『Visual Basic for Application』の略で
Application
├Workbooks
|└Workbook
| ├Worksheets
| |└Worksheet
というApplication以下のオブジェクトを、VB言語で操作するものを指します。
例えExcel付属のVBE(Visual Basic Editor)を利用しようとも、このApplication以下のブックやシート、
セルやオブジェクト等を操作するもの以外はVBA分野の話ではないので、ここでは聞かないでください。
★4 レベルはどうあれ、ここはプログラマ用の板スレです。プログラマとは、自分でプログラムを組み、
コードを書く人の事なので、自分でやるきは全く無く、丸投げしようって人はお断りです。
ヒントを貰えばあとは自力でなんとかしますって人のみどうぞ。
★5 わからなければとりあえず「マクロの記録」(Alt, T, M, R)
関連スレ
Excel VBA 質問スレ Part23
http://toro.2ch.net/test/read.cgi/tech/1327763113/l50
探検
Access VBA 質問スレ Part1
■ このスレッドは過去ログ倉庫に格納されています
2012/02/06(月) 22:53:46.88
787デフォルトの名無しさん
2017/08/01(火) 22:21:37.22ID:16hy4odR フォームのソースが名簿テーブルならフォーム読み込み時の名前とよみがなセットするコードは無くても先頭レコードが表示される。
フォームのソースを確認しましょう。
非連結フォームならボタン押した時に次のレコードを読み込んで名前とよみがなセットするコードが必要だけど、キーが不明なので何ともアドバイスできません。
長々と書いたがわかりにくいね、すまん。
フォームのソースを確認しましょう。
非連結フォームならボタン押した時に次のレコードを読み込んで名前とよみがなセットするコードが必要だけど、キーが不明なので何ともアドバイスできません。
長々と書いたがわかりにくいね、すまん。
788デフォルトの名無しさん
2017/08/02(水) 22:57:21.98ID:GleVclNw >>787
ありがと
ありがと
789デフォルトの名無しさん
2017/08/28(月) 11:23:53.36ID:XLKoN0Ik 神さま教えてください。
ADODB.Commandでのインサートが失敗しても
エラーが出ないのですが、エラーハンドリングの
方法を教えてください。
よろしくお願いします。
ADODB.Commandでのインサートが失敗しても
エラーが出ないのですが、エラーハンドリングの
方法を教えてください。
よろしくお願いします。
790デフォルトの名無しさん
2017/08/28(月) 21:14:51.01ID:6Oo2q0tu on error
791デフォルトの名無しさん
2017/08/29(火) 08:37:26.00ID:SOL0jppX むしろonerrorしかないと思うが、他にやり方あんの?
792デフォルトの名無しさん
2017/08/29(火) 09:14:08.50ID:WIE1SoZ9 レスありがとうございます。
ON ERROR は当然やってまして
その上での質問です。
ON ERROR は当然やってまして
その上での質問です。
793デフォルトの名無しさん
2017/08/29(火) 21:25:59.80ID:BqQa7G9t 失敗ってなんだ。
戻り値を取ればAffectedRowsになってるだろうから
それで判断するか追加されたはずの行数をあらためSELECTするとか
戻り値を取ればAffectedRowsになってるだろうから
それで判断するか追加されたはずの行数をあらためSELECTするとか
794デフォルトの名無しさん
2017/11/15(水) 11:14:08.03ID:PQCfnSyv >>786
そのコードはFormがLoadされた時に名簿テーブルを開いてRecordsetに格納し、名前とカナをテキストボックスに入れるというものと次へボタンを押した時にFormがLoadされた時の処理とは全く関係なく次のレコ−ドに移動するもの。
ところで次へボタンでの次のレコ−ドってのは何のデ−タなんだい?
改めて言うけどFormがLoadされた時の処理なんて知らないからとAccess君は言っている。
要は、DoCmd.GotoRecordってのはデータとオブジェクトが連結されていることが想定されていて、連結されているから既にオブジェクトにレコードが表示されているわけだが、それに対して次のレコ−ドと言ってる。
一方、FormのLoad時の処理は連結関係無くデ−タを自ら取ってくるもの。
こちらのやり方を取るならRecordsetをPublic変数にするかForm内でのPrivate変数として保持しておき、他のイベント(次へボタンクリックのような)で使いまわすというやり方になる。
そのコードはFormがLoadされた時に名簿テーブルを開いてRecordsetに格納し、名前とカナをテキストボックスに入れるというものと次へボタンを押した時にFormがLoadされた時の処理とは全く関係なく次のレコ−ドに移動するもの。
ところで次へボタンでの次のレコ−ドってのは何のデ−タなんだい?
改めて言うけどFormがLoadされた時の処理なんて知らないからとAccess君は言っている。
要は、DoCmd.GotoRecordってのはデータとオブジェクトが連結されていることが想定されていて、連結されているから既にオブジェクトにレコードが表示されているわけだが、それに対して次のレコ−ドと言ってる。
一方、FormのLoad時の処理は連結関係無くデ−タを自ら取ってくるもの。
こちらのやり方を取るならRecordsetをPublic変数にするかForm内でのPrivate変数として保持しておき、他のイベント(次へボタンクリックのような)で使いまわすというやり方になる。
795デフォルトの名無しさん
2017/11/22(水) 10:10:39.42ID:as8vu/t7 整数型、重複なしの列を書き換えるときはどうしてますか?たとえば、
2 1
3 → 2
1 3
にしたいときに2→1の時点でエラーが出ると思うので回避策を検討しています。
一時的に重複なしを解除して、終了時点で重複なしへ戻す方法や、一旦一時的に重複しない数字に書き換えて、それから再度書き換えるべきか悩んでいます。
なにか一般的な方法はございますか?
2 1
3 → 2
1 3
にしたいときに2→1の時点でエラーが出ると思うので回避策を検討しています。
一時的に重複なしを解除して、終了時点で重複なしへ戻す方法や、一旦一時的に重複しない数字に書き換えて、それから再度書き換えるべきか悩んでいます。
なにか一般的な方法はございますか?
796デフォルトの名無しさん
2017/11/22(水) 10:11:55.37ID:as8vu/t7 あれ、スペースがおかしくなっている。
列を書き直すときにたとえば
2→1
3→2
1→3
としたいのです。具体的にはidを振り直す作業です。
列を書き直すときにたとえば
2→1
3→2
1→3
としたいのです。具体的にはidを振り直す作業です。
797デフォルトの名無しさん
2017/11/22(水) 12:23:57.98ID:TDbCG25M レンジのソートでよくね?
もしくはフィルタ付けて並び替えてからフィルタ解除とか
もしくはフィルタ付けて並び替えてからフィルタ解除とか
798デフォルトの名無しさん
2017/11/22(水) 12:27:01.49ID:taN4cymO idには触らないで、整数型のフィールドを追加します。そのフィールドでやりたい放題やります。
799あ
2017/11/22(水) 12:46:48.77ID:MjBhGus4 どうしてもやりたけりゃ、swapしていきゃいいんじゃないの?
最初は2→1にしたいから、
1 3 2に。
次は3を2にして
1 2 3
に。
入れ替え自体は、UPDATE xxx SET unique = CASE WNEN unique=1 THEN 2 WHEN unique=2 THEN 1 ELSE unique END
でCASEで書いちゃえば入れ替えられる。
1クエリ内で完結したら、制約はかからない。
最初は2→1にしたいから、
1 3 2に。
次は3を2にして
1 2 3
に。
入れ替え自体は、UPDATE xxx SET unique = CASE WNEN unique=1 THEN 2 WHEN unique=2 THEN 1 ELSE unique END
でCASEで書いちゃえば入れ替えられる。
1クエリ内で完結したら、制約はかからない。
800デフォルトの名無しさん
2017/11/22(水) 13:21:54.54ID:as8vu/t7 >>797
済みません。AccessにもRangeというのがあるのですか?あと、フィルターの使い方も御教示をお願い致します。
>>798
それが、当該idを参照しているテーブルが20個以上あるので、別のコラムという訳にはいかないのです。
参照先を変更するとなるとクエリやらVBAのコードやらを書き換えないといけないので大変だと思います。
>>799
バブルソートみたいなものですね。レコード数が3万ありますので、何となく時間がかかりそうな気がしますが、試してみます。
今はソート後にDMax+iのループで重複しないidへ書き換えて、書き換えが終わってからDMaxを引くという2段階の作業をしています。
(参照元のidも2段階の書き換えをしています。))
我ながらドン臭いやり方だと思うので、もう少しスマートな方法があれば御教示をお願いいたします。
済みません。AccessにもRangeというのがあるのですか?あと、フィルターの使い方も御教示をお願い致します。
>>798
それが、当該idを参照しているテーブルが20個以上あるので、別のコラムという訳にはいかないのです。
参照先を変更するとなるとクエリやらVBAのコードやらを書き換えないといけないので大変だと思います。
>>799
バブルソートみたいなものですね。レコード数が3万ありますので、何となく時間がかかりそうな気がしますが、試してみます。
今はソート後にDMax+iのループで重複しないidへ書き換えて、書き換えが終わってからDMaxを引くという2段階の作業をしています。
(参照元のidも2段階の書き換えをしています。))
我ながらドン臭いやり方だと思うので、もう少しスマートな方法があれば御教示をお願いいたします。
801デフォルトの名無しさん
2017/11/22(水) 15:00:03.20ID:t4MJ2LxN その列自体を書き換えちゃうの?
じゃあ、今入ってる値は必要無いってこと?
だったら削除して連番振り直したら?
じゃあ、今入ってる値は必要無いってこと?
だったら削除して連番振り直したら?
802デフォルトの名無しさん
2017/11/22(水) 15:02:12.97ID:TZAtmSaI 今の時代なにが楽しくてAccessなんてやるんだ
803デフォルトの名無しさん
2017/11/22(水) 15:50:01.09ID:as8vu/t7 >>801
idだから主キーです。Nullは不可だと思います。
idだから主キーです。Nullは不可だと思います。
804あ
2017/11/22(水) 16:48:33.62ID:QspO8Ati >>800
もう組み合わせがわかってて、ほんとに単発で1回きりなら、
エクセルで対比表作って、CASEの列とWHENの列足してコピペでクエリ作っても良いけど、全く健全な保守ではない。
2 1
3 2
1 3
に列追加してオートフィルで
WHEN unique= 2 then 1
WHEN unique= 3 then 2
WHEN unique= 1 then 3
ってして、
unique= CASE
と
ELSE UNIQUE endで挟んで、コピペでテキストエディタに貼り付けて、テキストエディタからコピペでAccessに貼り付けるやつ。
しょっちゅうやるならテーブル見直そう。
もう組み合わせがわかってて、ほんとに単発で1回きりなら、
エクセルで対比表作って、CASEの列とWHENの列足してコピペでクエリ作っても良いけど、全く健全な保守ではない。
2 1
3 2
1 3
に列追加してオートフィルで
WHEN unique= 2 then 1
WHEN unique= 3 then 2
WHEN unique= 1 then 3
ってして、
unique= CASE
と
ELSE UNIQUE endで挟んで、コピペでテキストエディタに貼り付けて、テキストエディタからコピペでAccessに貼り付けるやつ。
しょっちゅうやるならテーブル見直そう。
805デフォルトの名無しさん
2017/11/22(水) 16:57:08.62ID:QHiNhW2y >>803
方法はいくらでもあると思うけど。
Field追加して連番を振って、追加したFieldを主キーに変更して元の主キーのFieldを削除するとか。
試してないからできるか分からんけど。
そんなことせずに振りなおすならOrderByでId順にして小さい値から振りなおしたら?
方法はいくらでもあると思うけど。
Field追加して連番を振って、追加したFieldを主キーに変更して元の主キーのFieldを削除するとか。
試してないからできるか分からんけど。
そんなことせずに振りなおすならOrderByでId順にして小さい値から振りなおしたら?
806デフォルトの名無しさん
2017/11/22(水) 16:59:54.83ID:QHiNhW2y ただ、主キーを振りなおす意味が分からない。
そういうもんじゃ無いと思うし、テーブルの連結によっては滅茶苦茶になるのは分かってるよね。
そういうもんじゃ無いと思うし、テーブルの連結によっては滅茶苦茶になるのは分かってるよね。
807あ
2017/11/22(水) 17:57:43.64ID:QspO8Ati 主キー振り直すのは、やむを得ずやるのはそのアプリのライフタイムに何発かあると思う。
業務系だと、「スキーマ変えるな」「デカいトランザクションはるな」「一時テーブルすら作るな」とか無茶苦茶言いよることもある。
でも、しょっちゅうやるならホントに設計考えたほうが良い。
業務系だと、「スキーマ変えるな」「デカいトランザクションはるな」「一時テーブルすら作るな」とか無茶苦茶言いよることもある。
でも、しょっちゅうやるならホントに設計考えたほうが良い。
808デフォルトの名無しさん
2017/11/22(水) 18:29:23.78ID:2YVJuPMl 別に列作ってそっち主キーにすれば?
809デフォルトの名無しさん
2017/11/22(水) 23:10:16.27ID:as8vu/t7810デフォルトの名無しさん
2017/11/22(水) 23:11:54.97ID:as8vu/t7811デフォルトの名無しさん
2017/11/23(木) 09:57:12.17ID:wkO+ZdSN 主キーの役割はレコードをユニークにすることだろ
並べ替えが必要ならそのための項目を別に用意するわ
作業量を問題にしてるけど
無茶な運用は後に響くよ
分かり易さを優先すべきだと思うわ
並べ替えが必要ならそのための項目を別に用意するわ
作業量を問題にしてるけど
無茶な運用は後に響くよ
分かり易さを優先すべきだと思うわ
812デフォルトの名無しさん
2017/11/24(金) 12:10:31.02ID:fRZqdK5G 主キーを解除して、重複可にして連番を書き込みました。その後に元に戻しました。変更前後の番号を配列に書き込んでおいて、その配列の値から関連するテーブル全部において置換作業を行うことにしました。
idが2万5000レコード、関連するテーブルのレコードが全部で100万近いのですが、2万5000の置換を100万レコードに対して行うので時間がかかりそうな気がしています。どのくらい時間がかかるのか計算する方法がありますかね?
idが2万5000レコード、関連するテーブルのレコードが全部で100万近いのですが、2万5000の置換を100万レコードに対して行うので時間がかかりそうな気がしています。どのくらい時間がかかるのか計算する方法がありますかね?
813デフォルトの名無しさん
2017/11/24(金) 12:21:50.25ID:Q2HEJk5l accessにSQLコストを計算する機能はないよ
814デフォルトの名無しさん
2017/11/24(金) 19:17:11.31ID:fRZqdK5G 主キーの削除をVBAでやろうとしているんだけど、メソッドが見つからない。SQLでやるしかないのかな?
下を読むとdeleteメソッドはダメみたいだし。
https://msdn.microsoft.com/ja-jp/library/office/ff197351.aspx
>>Deleteメソッドは、インデックスオブジェクトが新しいと、データベースに追加されていない場合にのみサポートします。
下を読むとdeleteメソッドはダメみたいだし。
https://msdn.microsoft.com/ja-jp/library/office/ff197351.aspx
>>Deleteメソッドは、インデックスオブジェクトが新しいと、データベースに追加されていない場合にのみサポートします。
815デフォルトの名無しさん
2017/11/25(土) 10:30:03.03ID:eU9hnSW+ 無理矢理面倒臭い事をしているようにしか思えない
まぁ人の話を聞く気が無いみたいだし
好きに調べてやればええよ
まぁ人の話を聞く気が無いみたいだし
好きに調べてやればええよ
816デフォルトの名無しさん
2017/11/27(月) 17:21:43.17ID:twASlFZz SQLであっさり出来たわ。後は置換をどうするかだな。関連するテーブル全部を置換できればすべて解決するけど、何を使うかだな。
SQLは遅いんだっけ?レコードセットでループ回す方が速いと読んだ気がする。
SQLは遅いんだっけ?レコードセットでループ回す方が速いと読んだ気がする。
817デフォルトの名無しさん
2017/11/27(月) 22:26:05.40ID:HF1f2kGW818デフォルトの名無しさん
2017/11/28(火) 05:38:20.27ID:GeGdCCsE 業務用ソフトのテーブルを眺めていたら、テキスト型のフィールドがあって、256桁の数字が羅列してあった
様々な設定を指定された桁に格納しているようですが、このようなデーター保存方法は一般的なんでしょうか?
他の言語でもあるのでしょうか?
様々な設定を指定された桁に格納しているようですが、このようなデーター保存方法は一般的なんでしょうか?
他の言語でもあるのでしょうか?
819デフォルトの名無しさん
2017/11/28(火) 05:58:01.76ID:Brt1t867 >>818
あるんじゃないの?としか。どんなテーブルとか、フィールドの名前とか、なんかヒントはないですか? 様々な設定も謎が深まるだけですね。
あるんじゃないの?としか。どんなテーブルとか、フィールドの名前とか、なんかヒントはないですか? 様々な設定も謎が深まるだけですね。
820デフォルトの名無しさん
2017/11/28(火) 09:43:49.19ID:GeGdCCsE たとえばあるフォームAのオプションボタンの値を98桁に書き込む、フォームBのチェックボックスの値は例えばCstr(Abs(True)))でstringへ変換して105桁に書き込むとかそんな感じです。
合理的な気もするのですが、こういう方法は検索しても見つからないので一般的なのか、特殊なアイデアなのか知りたくなりまして。
合理的な気もするのですが、こういう方法は検索しても見つからないので一般的なのか、特殊なアイデアなのか知りたくなりまして。
821デフォルトの名無しさん
2017/11/28(火) 11:59:57.14ID:vHFzkUKA すくなくともRDBを使う上ではやるなって言われてるやり方
固定長ファイルにデータ保存してるようなシステムなら結構あったけどね
固定長ファイルにデータ保存してるようなシステムなら結構あったけどね
822デフォルトの名無しさん
2017/11/28(火) 16:08:53.51ID:GeGdCCsE >>821
そうなんですか。面白そうな話しなので調べてみようと思います。その手法はどういう名称なんですか?もしくは検索ワードを御教示頂けましたら幸いです。
そうなんですか。面白そうな話しなので調べてみようと思います。その手法はどういう名称なんですか?もしくは検索ワードを御教示頂けましたら幸いです。
823あ
2017/11/28(火) 18:29:06.23ID:i1R8M5pm RPG区分列とかじゃないの?古い呼び方だけど。
酷すぎてだれも触りたくないやつ。
RDBに移すような事があったら、末期には照合順序をbinaryにするしか無くなったりすごく苦しむから辞めた方がいい。
メリットらしいメリット無い。LIKEで雑に'[A-C]__1_2'みたいにSELECTできることぐらい。
酷すぎてだれも触りたくないやつ。
RDBに移すような事があったら、末期には照合順序をbinaryにするしか無くなったりすごく苦しむから辞めた方がいい。
メリットらしいメリット無い。LIKEで雑に'[A-C]__1_2'みたいにSELECTできることぐらい。
824デフォルトの名無しさん
2017/11/28(火) 18:44:14.15ID:GeGdCCsE 残念ながら、ググっても何もヒットしません。
なにかヒントをお願い出来ますか?
なにかヒントをお願い出来ますか?
825デフォルトの名無しさん
2017/12/01(金) 16:18:17.01ID:xc+Vk5Dr RPGとRDBで検索したら関係ありそうなのがいくつかヒットしたけど。
検索能力は俺の方が上みたいだな。
検索能力は俺の方が上みたいだな。
826デフォルトの名無しさん
2017/12/02(土) 14:50:26.76ID:EvURnJTn 固定長ファイルでぐぐったら、先頭に固定長データファイルとはっていうサイトがでたけど
なにでどうググったんだか
なにでどうググったんだか
827デフォルトの名無しさん
2017/12/04(月) 10:19:55.17ID:eu/J6Nzp 皆様、御指導、御鞭撻ありがとうございます。
COBOLでよく使う手法だったんですね。
件のmdbはコボラーが設計したんですかね。
COBOLでよく使う手法だったんですね。
件のmdbはコボラーが設計したんですかね。
828デフォルトの名無しさん
2017/12/04(月) 23:04:21.85ID:HIES1UEg 言語の問題じゃ無いと思うが
829デフォルトの名無しさん
2017/12/05(火) 01:17:27.21ID:jk/z017d そうなんですか。accessの本には全く載っていないでのすが、RDBMSの世界ではごく一般的な手法なんですか
830デフォルトの名無しさん
2017/12/05(火) 13:50:48.83ID:JFWc1rHJ ISAM
831デフォルトの名無しさん
2017/12/05(火) 14:44:30.03ID:LtpZx+mu832デフォルトの名無しさん
2017/12/05(火) 16:01:26.32ID:jk/z017d 言語の問題ではない
しかしRDBMSではやってはいけない
よくわからないけど昔のデーターベースの本を読んでみますわ
暇つぶしにちょうどいいわ
しかしRDBMSではやってはいけない
よくわからないけど昔のデーターベースの本を読んでみますわ
暇つぶしにちょうどいいわ
833デフォルトの名無しさん
2017/12/05(火) 17:17:16.01ID:Jckjy/ZT 自分たちが使うデータをどういった構造で保持するかは各自で考えて構わない
ただRDBに入れるのであれば、やってはいけなくもないけど、おすすめはしない、という話では?
RDBならテーブル・フィールド分けてデータもコードも見やすくできるのに、そうしないのはもったいないというかなんというか
ただRDBに入れるのであれば、やってはいけなくもないけど、おすすめはしない、という話では?
RDBならテーブル・フィールド分けてデータもコードも見やすくできるのに、そうしないのはもったいないというかなんというか
834デフォルトの名無しさん
2017/12/05(火) 19:05:27.76ID:IwqbiEq4 結局何の解答にもなってないw
835名無し
2017/12/06(水) 08:23:07.59ID:qK37T0GP データベースの列が増やせない何かがあった。
開発者の気まぐれ。手抜き。
従来の固定長ファイルと1:1の情報を保持したかった。
とかね。。。
こっちの業界じゃ拡張DM形式なんて固定長ファイルが普通にやり取りされてて、桁数制限とかが厳しいけど、容量の割に情報量が多いし古いソフトの互換性があるとかで100年以上生きると思うわ。
でも固定長ファイルの文字列をmdbに格納するのは正気とは思えない。データベースのメリット全部殺してるじゃん
開発者の気まぐれ。手抜き。
従来の固定長ファイルと1:1の情報を保持したかった。
とかね。。。
こっちの業界じゃ拡張DM形式なんて固定長ファイルが普通にやり取りされてて、桁数制限とかが厳しいけど、容量の割に情報量が多いし古いソフトの互換性があるとかで100年以上生きると思うわ。
でも固定長ファイルの文字列をmdbに格納するのは正気とは思えない。データベースのメリット全部殺してるじゃん
836デフォルトの名無しさん
2017/12/06(水) 08:50:38.97ID:3RgxoH/J 固定長レコードw化石乙ww
837デフォルトの名無しさん
2017/12/06(水) 09:56:13.57ID:+yD4mhv+ 郵便とのやり取りは今でも固定長フィールド使てんじゃね
さすがに今はないか、フロッピーとか
さすがに今はないか、フロッピーとか
838デフォルトの名無しさん
2017/12/06(水) 11:12:29.56ID:dYt4FwS2 未だに固定長を扱う事はありますが、設計済みDBに展開して処理していますよ
839デフォルトの名無しさん
2017/12/07(木) 05:51:08.35ID:opi4zWAm 固定長のEDI、増えたりしないだろうけどいつまでも残るんだろなあ。csvやtsvをメール添付で良いのにって思う。
840デフォルトの名無しさん
2017/12/07(木) 12:12:58.82ID:NfkoL/Di 固定長の方がパースが軽いからなぁ
あといつまでもなくならないレガシな環境とかな
処理系そのものは変更されてもIO部分の仕様変更はなかなかやらない
あといつまでもなくならないレガシな環境とかな
処理系そのものは変更されてもIO部分の仕様変更はなかなかやらない
841デフォルトの名無しさん
2017/12/07(木) 12:15:15.31ID:YN66KLnO 今どき固定長レコードなんて使ってるのに前向きな理由なんて無いよ
843デフォルトの名無しさん
2018/02/05(月) 10:45:37.49ID:e967XxUr アクセス始めて触る初心者です。
テキストボックスが複数含まれたワードファイルが5000個ぐらいあります
各テキストボックスからいろんな項目を取得するとして、1ファイルあたり30項目ぐらい
つまり5000個のファイル*30項目=15,000項目
これをアクセスで処理していこうと思ってるんですが、アクセスはこの程度さくさく処理できるものでしょうか
目的は、ワードファイルが多すぎて邪魔なんで全部削除したい。必要に応じて元のファイルと同じものを再現できるようにするため、必要な情報をアクセスのデータベースに保存しておくことです
必要なファイルを再現できるように検索機能と再現機能をもったVBAマクロを組むつもりです
最初エクセルでやろうとも思ったのですが、さすがに万単位で今後も増える可能性が高いため
アクセスかな?と思ったのですが、どうでしょう
テキストボックスが複数含まれたワードファイルが5000個ぐらいあります
各テキストボックスからいろんな項目を取得するとして、1ファイルあたり30項目ぐらい
つまり5000個のファイル*30項目=15,000項目
これをアクセスで処理していこうと思ってるんですが、アクセスはこの程度さくさく処理できるものでしょうか
目的は、ワードファイルが多すぎて邪魔なんで全部削除したい。必要に応じて元のファイルと同じものを再現できるようにするため、必要な情報をアクセスのデータベースに保存しておくことです
必要なファイルを再現できるように検索機能と再現機能をもったVBAマクロを組むつもりです
最初エクセルでやろうとも思ったのですが、さすがに万単位で今後も増える可能性が高いため
アクセスかな?と思ったのですが、どうでしょう
844デフォルトの名無しさん
2018/02/05(月) 13:37:19.07ID:KJpDTktT >>843
初めて触る様な状態なら無理だから、諦めた方がいいですよ
初めて触る様な状態なら無理だから、諦めた方がいいですよ
845デフォルトの名無しさん
2018/02/05(月) 13:53:17.30ID:e967XxUr >>844
アクセスは初めてだけどエクセルVBAはそこそこ経験あります
エクセルVBAでなら自分で組める範疇ですね
すでにアクセスで途中までマクロは組んであります
同一フォルダ内にテスト用に作成してあるワードファイルを順次開いてすべてのテキストボックスの値、位置関連の数値を
Debug.Printで出力後、ワードファイルを閉じる
ここまでうまくいってるんであとはアクセスの基本機能理解すればそう困難ではないでしょう
ざっとみたところ、この用途で使う限りではそう複雑なものでもないようですし。
質問の内容はアクセスでやる利益があるかどうかという点ですね
まぁ組めばわかるんですけどね
アクセスは初めてだけどエクセルVBAはそこそこ経験あります
エクセルVBAでなら自分で組める範疇ですね
すでにアクセスで途中までマクロは組んであります
同一フォルダ内にテスト用に作成してあるワードファイルを順次開いてすべてのテキストボックスの値、位置関連の数値を
Debug.Printで出力後、ワードファイルを閉じる
ここまでうまくいってるんであとはアクセスの基本機能理解すればそう困難ではないでしょう
ざっとみたところ、この用途で使う限りではそう複雑なものでもないようですし。
質問の内容はアクセスでやる利益があるかどうかという点ですね
まぁ組めばわかるんですけどね
846デフォルトの名無しさん
2018/02/05(月) 20:59:27.31ID:+YlQ+DNK847デフォルトの名無しさん
2018/02/06(火) 08:18:15.16ID:YHjH5DQb848デフォルトの名無しさん
2018/02/06(火) 14:52:40.80ID:Y79w2nNG 貴乃花親方にしろ有賀さつきにしろ
やはり「語らない」ことが年末から今年にかけてのポイントだな
逆に語っている方が何かと物議を醸しているし
やはり「語らない」ことが年末から今年にかけてのポイントだな
逆に語っている方が何かと物議を醸しているし
849デフォルトの名無しさん
2018/02/06(火) 14:53:16.21ID:Y79w2nNG ミスった
すまん
すまん
850デフォルトの名無しさん
2018/02/07(水) 11:19:44.29ID:mhmm9auu 医療過誤?
851デフォルトの名無しさん
2018/04/14(土) 12:06:32.62ID:bV7+SAsd すみません質問させてください。
Private Sub Form_Load()
Me.TimerInterval = 1000
End Sub
Sub Form_Timer()
Static intShowPicture As Integer
If intShowPicture Then
Me.btnPicture.Picture = "C:\taiyo.jpg"
Else
Me!btnPicture.Picture = ""
End If
intShowPicture = Not intShowPicture
End Sub
このコードは何をしているのでしょうか?
ご回答よろしくお願いします。
Private Sub Form_Load()
Me.TimerInterval = 1000
End Sub
Sub Form_Timer()
Static intShowPicture As Integer
If intShowPicture Then
Me.btnPicture.Picture = "C:\taiyo.jpg"
Else
Me!btnPicture.Picture = ""
End If
intShowPicture = Not intShowPicture
End Sub
このコードは何をしているのでしょうか?
ご回答よろしくお願いします。
852デフォルトの名無しさん
2018/04/14(土) 12:24:03.37ID:2RkkR2xg 一秒毎に画像を出したり引っ込めたり
853853
2018/04/14(土) 12:53:27.07ID:bV7+SAsd ご回答ありがとう御座います。
イメージはなんとなく掴めたのですが、
この場合のintShowPictureには何が格納されているのでしょうか?
もしくはBoolean型なのでしょうか?
イメージはなんとなく掴めたのですが、
この場合のintShowPictureには何が格納されているのでしょうか?
もしくはBoolean型なのでしょうか?
854デフォルトの名無しさん
2018/04/14(土) 16:08:38.27ID:1T8oabCl Static intShowPicture As Boolean
にして試してみろよ
にして試してみろよ
855デフォルトの名無しさん
2018/04/14(土) 19:25:20.18ID:cGW/rI9o VBAには暗黙の変換ってのがあるから
IntegerをBooleanに暗黙的に変換して評価してる
まあ、あまり良いコードじゃないな
IntegerをBooleanに暗黙的に変換して評価してる
まあ、あまり良いコードじゃないな
856851,853
2018/04/14(土) 21:39:02.03ID:criYFAGW857デフォルトの名無しさん
2018/04/15(日) 10:38:49.74ID:E1b18XLI >Falseが0でTrueが-1なのですね!
そうだっけ?
そうだっけ?
858デフォルトの名無しさん
2018/04/15(日) 12:40:33.57ID:VXOW+WoG Access で画像を点滅する?
そんなの普通は、JavaScript, jQuery とかだろ
そんなの普通は、JavaScript, jQuery とかだろ
859デフォルトの名無しさん
2018/04/15(日) 22:05:01.30ID:4uH7KTiu ここは Access の質問スレですよ
860デフォルトの名無しさん
2018/04/21(土) 00:22:50.08ID:IpoNn3EX 10万件以上の大量レコードを追加するインサート処理をクエリを作成してDocmd.OpenQueryでやっているが時間が1分以上かかる
この処理をモジュールにADO、もしくはDAOでインサート処理を記述したら、Docmd.OpenQueryより早くなるかな?
この処理をモジュールにADO、もしくはDAOでインサート処理を記述したら、Docmd.OpenQueryより早くなるかな?
861デフォルトの名無しさん
2018/04/21(土) 12:05:09.74ID:M/Q9a6+d VBAで書くと数倍遅くなるんじゃね?
Cからなら速いかも知れん
Cからなら速いかも知れん
862デフォルトの名無しさん
2018/04/21(土) 14:39:22.47ID:JSWmVJf3 たぶんクエリのほうが遥かに速い
863デフォルトの名無しさん
2018/04/21(土) 16:21:47.73ID:Zke6MJB8 OpenQueryをCから実行
864デフォルトの名無しさん
2018/04/21(土) 17:48:56.41ID:e0mRRnZY BULK INSERT は?
そもそも、INSERT文は速くならない!
そもそも、INSERT文は速くならない!
865デフォルトの名無しさん
2018/04/22(日) 14:54:13.01ID:QBM3hGX3 10万が大量かどうかという問題も有るがRecordset + AddNewの方が速いと聞いたし、実際俺が組んだ場合も明らかに早いんだが。
状況にもよるかもしれんけど。
状況にもよるかもしれんけど。
866デフォルトの名無しさん
2018/04/23(月) 02:01:29.71ID:zWK+uIrS そもそもOpenQueryでどんなクエリ流してインサートしてるかわからんのに比較にならんわ
867デフォルトの名無しさん
2018/04/23(月) 02:08:10.01ID:zWK+uIrS >>865
例えば単純な追加クエリや、INSERT SELECTするSQL発行するより
1件ずつAddNewして(どこかから値持ってきて)1カラムずつ値セットするほうが早いっての?
どこで聞いた話だそれ?
例えば単純な追加クエリや、INSERT SELECTするSQL発行するより
1件ずつAddNewして(どこかから値持ってきて)1カラムずつ値セットするほうが早いっての?
どこで聞いた話だそれ?
868デフォルトの名無しさん
2018/04/23(月) 09:13:20.51ID:/uUuSWda やってみてから言ってくれ。
俺の場合は実際早かった。
俺の場合は1カラムずつじゃなくてフィ―ルド名の配列と値の配列でAddNewだけど、たぶん1カラムずつセットしてUpdateでも早いんじゃないかな。
俺の場合は実際早かった。
俺の場合は1カラムずつじゃなくてフィ―ルド名の配列と値の配列でAddNewだけど、たぶん1カラムずつセットしてUpdateでも早いんじゃないかな。
869デフォルトの名無しさん
2018/04/23(月) 09:41:02.27ID:Yo1LL5su そんなあほな
870デフォルトの名無しさん
2018/04/23(月) 15:45:02.07ID:YMq7Ch8w SQLでもINSERT一回じゃなくて1行のINSERTを何度も繰り返したら遅くなるからな
それと比べるなよ
それと比べるなよ
871デフォルトの名無しさん
2018/04/23(月) 17:22:09.14ID:zWK+uIrS >>868
やってみるから、フィールド数、フィールド長とレコード数教えれ
あと配列のデータどう用意するのかと、比較するクエリの元データどうすのかも
とうぜんACCESSと対象DBエンジンとADOかDAOのバージョンも明示してくれよ
で、ループまわして1レコードずつ.AddNewして.Updateするんだな
これでほんとにVBAが速いならちょっとACCESS使うの考えるわ
やってみるから、フィールド数、フィールド長とレコード数教えれ
あと配列のデータどう用意するのかと、比較するクエリの元データどうすのかも
とうぜんACCESSと対象DBエンジンとADOかDAOのバージョンも明示してくれよ
で、ループまわして1レコードずつ.AddNewして.Updateするんだな
これでほんとにVBAが速いならちょっとACCESS使うの考えるわ
872デフォルトの名無しさん
2018/04/25(水) 22:44:48.30ID:dGu0vJMQ873デフォルトの名無しさん
2018/04/26(木) 20:39:25.51ID:/vLmdzNr だからどこからどうやって元データ取ってきてるんだと
リンクテーブルやリモートDBでADOの方が早いとかなら別に驚くに値せんけどな
というかお前らOpenQueryってレコード数分実行する前提で話してたのか?
リンクテーブルやリモートDBでADOの方が早いとかなら別に驚くに値せんけどな
というかお前らOpenQueryってレコード数分実行する前提で話してたのか?
874デフォルトの名無しさん
2018/04/27(金) 17:07:36.05ID:ash3pEtl パススルーωとか使っちゃいけないTOP3じゃないか
素直にリンクテーブルにすれば良いのに
素直にリンクテーブルにすれば良いのに
875デフォルトの名無しさん
2018/04/27(金) 23:22:48.36ID:jiI6PjPI パススルーって駄目なの?
リンクテーブルは話にならないくらい遅くてパススルーのが全然早かったんだが。
リンクテーブルは話にならないくらい遅くてパススルーのが全然早かったんだが。
876デフォルトの名無しさん
2018/04/28(土) 15:07:07.82ID:6AYZ4JmZ ケースバイケース
たいていの場合、リンクテーブルに対する操作よりはSQL飛ばすほうが早いとは思うけどな
パススルーが使っちゃいけないTOP3とか初めて聞いたわ
たいていの場合、リンクテーブルに対する操作よりはSQL飛ばすほうが早いとは思うけどな
パススルーが使っちゃいけないTOP3とか初めて聞いたわ
877デフォルトの名無しさん
2018/05/09(水) 09:34:09.66ID:OAputzVD keydownイベントからのキー取得ではなくて、
OnKeyDownイベントからキーを取得する方法がわかりません。
Me("テキストボックス"& i).OnKeyDown = "=get_Key(" & this? & ")"
ご教授お願いします。
OnKeyDownイベントからキーを取得する方法がわかりません。
Me("テキストボックス"& i).OnKeyDown = "=get_Key(" & this? & ")"
ご教授お願いします。
878>>877
2018/05/09(水) 17:09:04.61ID:OAputzVD レスが付かないので別の掲示板に移動します。
879デフォルトの名無しさん
2018/05/11(金) 06:01:03.99ID:sj29e99C >>877
OnKeyDownイベントを知らなくてすまん。
OnKeyDownイベントを知らなくてすまん。
880デフォルトの名無しさん
2018/05/11(金) 09:03:43.55ID:hWQk+urq Excel で JavaScript も扱える様になるらしいね
881デフォルトの名無しさん
2018/05/16(水) 14:07:17.01ID:aP5Z4SKQ 業務用mdbのコードを見てて気づいたんだけど、戻り値を使わないのに、functionを作成しているのが非常に多い。
どんなメリット、デメリットがあるのですか?戻り値用の変数を用意するから速度が低下するのが問題なんですか?
英語の本には
>>Many programmers think that they must return something, even if they have to make some artificial return code or status. This practice can make your code harder for others to understand.
て書いてあってヤメレって書いてあるのになんでやりまくるのですかね?
どんなメリット、デメリットがあるのですか?戻り値用の変数を用意するから速度が低下するのが問題なんですか?
英語の本には
>>Many programmers think that they must return something, even if they have to make some artificial return code or status. This practice can make your code harder for others to understand.
て書いてあってヤメレって書いてあるのになんでやりまくるのですかね?
882デフォルトの名無しさん
2018/05/16(水) 14:57:23.49ID:Ml4MG34X subの代わりにしてんじゃないの
883デフォルトの名無しさん
2018/05/16(水) 18:06:12.59ID:xULU+qSI884デフォルトの名無しさん
2018/05/16(水) 19:24:53.85ID:DzLb+Dky 業務でプログラム組むような場合は、コーディングスタイルが指定されてる事が多いんだよ
正確には戻り値のないFunctiionじゃなくて、戻り値を無視してるだけだけどな
正確には戻り値のないFunctiionじゃなくて、戻り値を無視してるだけだけどな
885デフォルトの名無しさん
2018/05/16(水) 20:47:56.46ID:xULU+qSI functionとsubはcallが要るかどうかの違いだと思ってた。
886デフォルトの名無しさん
2018/05/16(水) 23:07:53.34ID:aP5Z4SKQ 可読性が低下する以外のデメリットは無いんでしょうかね?
個人的には出番のない変数は目障りなんですけどね。
個人的には出番のない変数は目障りなんですけどね。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 中国国営メディア「沖縄は日本ではない」… ★2 [BFU★]
- 中国国営メディア「沖縄は日本ではない」… ★3 [BFU★]
- 高市政権にパイプ役不在…日中高まる緊張 公明党の連立離脱影響、自民内にも懸念「自分でまいた種は自分で刈り取ってもらわないと」 [ぐれ★]
- 小野田氏、”中国経済への依存“に警戒感 高市首相の国会答弁巡り [煮卵★]
- 【こんなの初めて…】民泊には既にキャンセルも 中国の渡航自粛で [ぐれ★]
- 【サッカー】独占入手 最年長JリーガーにW不倫疑惑 『お風呂覗きたいんですが笑』LINE流出も… 慰謝料トラブルを本人に直撃 [冬月記者★]
- 三嶋由紀夫ってネトウヨだったの? [633473628]
- 【画像】セクシー女優・天沢りんさん「お休み頂いてた半年間でこんな体になりました🪽🤍」👉予想通りの展開に [242521385]
- 中国国営放送「日本は琉球をただちに中国に返還せよ」 キタ━━━━(゚∀゚)━━━━!!!!! [314039747]
- SNSで米が高いと投稿すると高市ソルジャーに攻撃される模様 [931948549]
- とうすこ🏡愛され絵文字♡🤥👊😅👊👶♡
- 【高市悲報】アメリカ戦争省「あのさ、何回シミュレートしてもわーくに中国に負けちゃうんだよね🤗」 [359965264]
