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
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 可読性が低下する以外のデメリットは無いんでしょうかね?
個人的には出番のない変数は目障りなんですけどね。
個人的には出番のない変数は目障りなんですけどね。
887デフォルトの名無しさん
2018/05/17(木) 00:12:37.33ID:e2hshpiX 呼び出しネストの限界がFunctionのほうが浅いってデメリットがあるはず
呼び出しに必要なスタック領域が違うから
昔だれかが実測してたな。まあ再帰でよっぽどのことやらんと問題ないんじゃね
SubをFunctionにして可読性が落ちるとか、それ関数の命名に問題がある気がするがな
呼び出しに必要なスタック領域が違うから
昔だれかが実測してたな。まあ再帰でよっぽどのことやらんと問題ないんじゃね
SubをFunctionにして可読性が落ちるとか、それ関数の命名に問題がある気がするがな
888デフォルトの名無しさん
2018/05/17(木) 08:14:31.45ID:JDzFkPHQ 戻り値ある前提で組んでるんでしょ。
エラー処理等で単に関数が失敗か成功かを返すとか。
後で作ろうとしてたけどグダグダになって無しになっちゃうとか。
エラー処理等で単に関数が失敗か成功かを返すとか。
後で作ろうとしてたけどグダグダになって無しになっちゃうとか。
889デフォルトの名無しさん
2018/05/17(木) 11:23:10.83ID:eM4CBQj1 後でやろうとしてやめちゃうってのは非常に大変頻繁によくあることだからね。
890デフォルトの名無しさん
2018/05/17(木) 12:28:55.01ID:HY+Xmele >>881
呼び出し側でいちいち call 書くの面倒だから
呼び出し側でいちいち call 書くの面倒だから
891デフォルトの名無しさん
2018/05/17(木) 13:35:45.45ID:vSfZvvAw >>890
FunctionもSubもCallを書かなくても呼び出せすので、理由にならないと思います。
個人的には、Callが書いてないと唐突に見慣れない文が出現するので驚いちゃいます。馴れれば、労力の軽減になるのかな?
FunctionもSubもCallを書かなくても呼び出せすので、理由にならないと思います。
個人的には、Callが書いてないと唐突に見慣れない文が出現するので驚いちゃいます。馴れれば、労力の軽減になるのかな?
892デフォルトの名無しさん
2018/05/17(木) 13:53:44.02ID:HY+Xmele call 書かないと () 付かないだろ
() 付かないから知らない文が出て来たと思ってしまう
() 付ければ関数だと判るが call 書かないといけないって話
() 付かないから知らない文が出て来たと思ってしまう
() 付ければ関数だと判るが call 書かないといけないって話
893デフォルトの名無しさん
2018/05/17(木) 15:12:43.90ID:vSfZvvAw >>892
済みません。よくわかりませんのでかみ砕いておしてもらえますか?
Callと括弧がペアで必要なのは理解しています。
もちろん、CALLなし、括弧なしでFunctionもSubも呼び出せるのも知っています。
両者の呼び出しの記法が全く同じで、唯一の例外が
lngSum=AddNumbers(10,20)
等の場合ということも知っています。
済みません。よくわかりませんのでかみ砕いておしてもらえますか?
Callと括弧がペアで必要なのは理解しています。
もちろん、CALLなし、括弧なしでFunctionもSubも呼び出せるのも知っています。
両者の呼び出しの記法が全く同じで、唯一の例外が
lngSum=AddNumbers(10,20)
等の場合ということも知っています。
894デフォルトの名無しさん
2018/05/17(木) 15:32:30.96ID:vSfZvvAw >>884
こんな感じですかね?
SUBは使わないのが基本?
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=47673&forum=36
↑でも結局解決していませんね。
こんな感じですかね?
SUBは使わないのが基本?
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=47673&forum=36
↑でも結局解決していませんね。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【中国外務省】日中関係悪化は高市氏に責任と名指しで非難… [BFU★]
- 【中国外務省】日中関係悪化は高市氏に責任と名指しで非難… ★2 [BFU★]
- 外務省局長は無言で厳しい表情…日中の高官協議終了か 高市首相“台湾”発言で中国が強硬対応 発言撤回求めたか…★2 [BFU★]
- 小野田紀美・経済安保担当相「何か気に入らないことがあればすぐに経済的威圧をする国への依存はリスク」 [Hitzeschleier★]
- 政府、株式の配当など金融所得を高齢者の医療保険料や窓口負担に反映する方針を固めた [バイト歴50年★]
- 【維新】吉村知事「中国人観光客だけに頼るビジネスモデル変えていかないといけない」「高市総理の発言は撤回する必要はない」 [Hitzeschleier★]
- 中国高官と話す外務省局長の表情、やばい [175344491]
- 【悲報】安倍晋三と高市早苗、どっちがヤベーの🤔 [616817505]
- 中国外務省「日中関係の悪化は高市早苗首相が原因」と名指しで強く非難。キタ━(゚∀゚)━! [153490809]
- 日本政府「高市総理の発言は問題ないと伝え、中国総領事のSNS投稿は問題があると中国に伝えました😊」 [931948549]
- 【速報】中国が日中関係悪化は高市氏に責任と名指しで非難 [931948549]
- ネトウヨ論調決まる「寧ろ迷惑中国人観光客が減ることで日本人の旅行が活性化され経済的には影響ない」 <mark>[ひまわり学級]</mark> [511393199]
