[過去ログ] Access VBA 質問スレ Part1 (1002レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
818
(1): 2017/11/28(火)05:38 ID:GeGdCCsE(1/4) AAS
業務用ソフトのテーブルを眺めていたら、テキスト型のフィールドがあって、256桁の数字が羅列してあった
様々な設定を指定された桁に格納しているようですが、このようなデーター保存方法は一般的なんでしょうか?
他の言語でもあるのでしょうか?
819: 2017/11/28(火)05:58 ID:Brt1t867(1) AAS
>>818
あるんじゃないの?としか。どんなテーブルとか、フィールドの名前とか、なんかヒントはないですか? 様々な設定も謎が深まるだけですね。
820: 2017/11/28(火)09:43 ID:GeGdCCsE(2/4) AAS
たとえばあるフォームAのオプションボタンの値を98桁に書き込む、フォームBのチェックボックスの値は例えばCstr(Abs(True)))でstringへ変換して105桁に書き込むとかそんな感じです。
合理的な気もするのですが、こういう方法は検索しても見つからないので一般的なのか、特殊なアイデアなのか知りたくなりまして。
821
(2): 2017/11/28(火)11:59 ID:vHFzkUKA(1) AAS
すくなくともRDBを使う上ではやるなって言われてるやり方

固定長ファイルにデータ保存してるようなシステムなら結構あったけどね
822: 2017/11/28(火)16:08 ID:GeGdCCsE(3/4) AAS
>>821
そうなんですか。面白そうな話しなので調べてみようと思います。その手法はどういう名称なんですか?もしくは検索ワードを御教示頂けましたら幸いです。
823: 2017/11/28(火)18:29 ID:i1R8M5pm(1) AAS
RPG区分列とかじゃないの?古い呼び方だけど。
酷すぎてだれも触りたくないやつ。
RDBに移すような事があったら、末期には照合順序をbinaryにするしか無くなったりすごく苦しむから辞めた方がいい。
メリットらしいメリット無い。LIKEで雑に'[A-C]__1_2'みたいにSELECTできることぐらい。
824: 2017/11/28(火)18:44 ID:GeGdCCsE(4/4) AAS
残念ながら、ググっても何もヒットしません。
なにかヒントをお願い出来ますか?
825: 2017/12/01(金)16:18 ID:xc+Vk5Dr(1) AAS
RPGとRDBで検索したら関係ありそうなのがいくつかヒットしたけど。

検索能力は俺の方が上みたいだな。
826: 2017/12/02(土)14:50 ID:EvURnJTn(1) AAS
固定長ファイルでぐぐったら、先頭に固定長データファイルとはっていうサイトがでたけど
なにでどうググったんだか
827: 2017/12/04(月)10:19 ID:eu/J6Nzp(1) AAS
皆様、御指導、御鞭撻ありがとうございます。
COBOLでよく使う手法だったんですね。
件のmdbはコボラーが設計したんですかね。
828: 2017/12/04(月)23:04 ID:HIES1UEg(1) AAS
言語の問題じゃ無いと思うが
829
(1): 2017/12/05(火)01:17 ID:jk/z017d(1/2) AAS
そうなんですか。accessの本には全く載っていないでのすが、RDBMSの世界ではごく一般的な手法なんですか
830: 2017/12/05(火)13:50 ID:JFWc1rHJ(1) AAS
ISAM
831: 2017/12/05(火)14:44 ID:LtpZx+mu(1) AAS
>>829
>>821
832: 2017/12/05(火)16:01 ID:jk/z017d(2/2) AAS
言語の問題ではない
しかしRDBMSではやってはいけない
よくわからないけど昔のデーターベースの本を読んでみますわ
暇つぶしにちょうどいいわ
833: 2017/12/05(火)17:17 ID:Jckjy/ZT(1) AAS
自分たちが使うデータをどういった構造で保持するかは各自で考えて構わない
ただRDBに入れるのであれば、やってはいけなくもないけど、おすすめはしない、という話では?
RDBならテーブル・フィールド分けてデータもコードも見やすくできるのに、そうしないのはもったいないというかなんというか
834: 2017/12/05(火)19:05 ID:IwqbiEq4(1) AAS
結局何の解答にもなってないw
835: 名無し 2017/12/06(水)08:23 ID:qK37T0GP(1) AAS
データベースの列が増やせない何かがあった。
開発者の気まぐれ。手抜き。
従来の固定長ファイルと1:1の情報を保持したかった。
とかね。。。
こっちの業界じゃ拡張DM形式なんて固定長ファイルが普通にやり取りされてて、桁数制限とかが厳しいけど、容量の割に情報量が多いし古いソフトの互換性があるとかで100年以上生きると思うわ。
でも固定長ファイルの文字列をmdbに格納するのは正気とは思えない。データベースのメリット全部殺してるじゃん
836: 2017/12/06(水)08:50 ID:3RgxoH/J(1) AAS
固定長レコードw化石乙ww
837: 2017/12/06(水)09:56 ID:+yD4mhv+(1) AAS
郵便とのやり取りは今でも固定長フィールド使てんじゃね
さすがに今はないか、フロッピーとか
838: 2017/12/06(水)11:12 ID:dYt4FwS2(1) AAS
未だに固定長を扱う事はありますが、設計済みDBに展開して処理していますよ
839
(1): 2017/12/07(木)05:51 ID:opi4zWAm(1) AAS
固定長のEDI、増えたりしないだろうけどいつまでも残るんだろなあ。csvやtsvをメール添付で良いのにって思う。
840: 2017/12/07(木)12:12 ID:NfkoL/Di(1) AAS
固定長の方がパースが軽いからなぁ
あといつまでもなくならないレガシな環境とかな
処理系そのものは変更されてもIO部分の仕様変更はなかなかやらない
841: 2017/12/07(木)12:15 ID:YN66KLnO(1) AAS
今どき固定長レコードなんて使ってるのに前向きな理由なんて無いよ
842: 名無し 2017/12/07(木)17:45 ID:d4TqII+f(1) AAS
>>839
同じ拡張子なのに何十種類もバリエーションのある欠陥フォーマットを使うのはやめてくれ
843
(1): 2018/02/05(月)10:45 ID:e967XxUr(1/2) AAS
アクセス始めて触る初心者です。
テキストボックスが複数含まれたワードファイルが5000個ぐらいあります
各テキストボックスからいろんな項目を取得するとして、1ファイルあたり30項目ぐらい
つまり5000個のファイル*30項目=15,000項目
これをアクセスで処理していこうと思ってるんですが、アクセスはこの程度さくさく処理できるものでしょうか
目的は、ワードファイルが多すぎて邪魔なんで全部削除したい。必要に応じて元のファイルと同じものを再現できるようにするため、必要な情報をアクセスのデータベースに保存しておくことです
必要なファイルを再現できるように検索機能と再現機能をもったVBAマクロを組むつもりです
省2
844
(1): 2018/02/05(月)13:37 ID:KJpDTktT(1) AAS
>>843
初めて触る様な状態なら無理だから、諦めた方がいいですよ
845
(1): 2018/02/05(月)13:53 ID:e967XxUr(2/2) AAS
>>844
アクセスは初めてだけどエクセルVBAはそこそこ経験あります
エクセルVBAでなら自分で組める範疇ですね

すでにアクセスで途中までマクロは組んであります
同一フォルダ内にテスト用に作成してあるワードファイルを順次開いてすべてのテキストボックスの値、位置関連の数値を
Debug.Printで出力後、ワードファイルを閉じる
ここまでうまくいってるんであとはアクセスの基本機能理解すればそう困難ではないでしょう
省3
846
(1): 2018/02/05(月)20:59 ID:+YlQ+DNK(1) AAS
>>845
エクセルのテーブルに格納したらアクセスにインポートするのが良いんじゃない?
エクセルのままでも良いと思うけど、
847: 2018/02/06(火)08:18 ID:YHjH5DQb(1) AAS
>>846
それいいですね
やってみます
848: 2018/02/06(火)14:52 ID:Y79w2nNG(1/2) AAS
貴乃花親方にしろ有賀さつきにしろ
やはり「語らない」ことが年末から今年にかけてのポイントだな
逆に語っている方が何かと物議を醸しているし
849: 2018/02/06(火)14:53 ID:Y79w2nNG(2/2) AAS
ミスった
すまん
850: 2018/02/07(水)11:19 ID:mhmm9auu(1) AAS
医療過誤?
851: 2018/04/14(土)12:06 ID:bV7+SAsd(1/2) AAS
すみません質問させてください。

Private Sub Form_Load()
  Me.TimerInterval = 1000
End Sub

Sub Form_Timer()
  Static intShowPicture As Integer
  If intShowPicture Then
省8
852
(1): 2018/04/14(土)12:24 ID:2RkkR2xg(1) AAS
一秒毎に画像を出したり引っ込めたり
853
(1): 853 2018/04/14(土)12:53 ID:bV7+SAsd(2/2) AAS
ご回答ありがとう御座います。
イメージはなんとなく掴めたのですが、
この場合のintShowPictureには何が格納されているのでしょうか?
もしくはBoolean型なのでしょうか?
854
(1): 2018/04/14(土)16:08 ID:1T8oabCl(1) AAS
Static intShowPicture As Boolean
にして試してみろよ
855
(1): 2018/04/14(土)19:25 ID:cGW/rI9o(1) AAS
VBAには暗黙の変換ってのがあるから
IntegerをBooleanに暗黙的に変換して評価してる

まあ、あまり良いコードじゃないな
856: 851,853 2018/04/14(土)21:39 ID:criYFAGW(1) AAS
>>852さん
試しに、フォームと画像を用意して作ったら、点滅しました!
>>854さん
この文でも点滅しました!
>>855さん
Falseが0でTrueが-1なのですね!

ご回答ありがとうございました。
省1
857: 2018/04/15(日)10:38 ID:E1b18XLI(1) AAS
>Falseが0でTrueが-1なのですね!

そうだっけ?
858: 2018/04/15(日)12:40 ID:VXOW+WoG(1) AAS
Access で画像を点滅する?

そんなの普通は、JavaScript, jQuery とかだろ
859: 2018/04/15(日)22:05 ID:4uH7KTiu(1) AAS
ここは Access の質問スレですよ
860: 2018/04/21(土)00:22 ID:IpoNn3EX(1) AAS
10万件以上の大量レコードを追加するインサート処理をクエリを作成してDocmd.OpenQueryでやっているが時間が1分以上かかる
この処理をモジュールにADO、もしくはDAOでインサート処理を記述したら、Docmd.OpenQueryより早くなるかな?
861: 2018/04/21(土)12:05 ID:M/Q9a6+d(1) AAS
VBAで書くと数倍遅くなるんじゃね?
Cからなら速いかも知れん
862: 2018/04/21(土)14:39 ID:JSWmVJf3(1) AAS
たぶんクエリのほうが遥かに速い
863: 2018/04/21(土)16:21 ID:Zke6MJB8(1) AAS
OpenQueryをCから実行
864: 2018/04/21(土)17:48 ID:e0mRRnZY(1) AAS
BULK INSERT は?

そもそも、INSERT文は速くならない!
865
(1): 2018/04/22(日)14:54 ID:QBM3hGX3(1) AAS
10万が大量かどうかという問題も有るがRecordset + AddNewの方が速いと聞いたし、実際俺が組んだ場合も明らかに早いんだが。

状況にもよるかもしれんけど。
866: 2018/04/23(月)02:01 ID:zWK+uIrS(1/3) AAS
そもそもOpenQueryでどんなクエリ流してインサートしてるかわからんのに比較にならんわ
867: 2018/04/23(月)02:08 ID:zWK+uIrS(2/3) AAS
>>865
例えば単純な追加クエリや、INSERT SELECTするSQL発行するより
1件ずつAddNewして(どこかから値持ってきて)1カラムずつ値セットするほうが早いっての?
どこで聞いた話だそれ?
868
(1): 2018/04/23(月)09:13 ID:/uUuSWda(1) AAS
やってみてから言ってくれ。
俺の場合は実際早かった。

俺の場合は1カラムずつじゃなくてフィ―ルド名の配列と値の配列でAddNewだけど、たぶん1カラムずつセットしてUpdateでも早いんじゃないかな。
869: 2018/04/23(月)09:41 ID:Yo1LL5su(1) AAS
そんなあほな
870
(1): 2018/04/23(月)15:45 ID:YMq7Ch8w(1) AAS
SQLでもINSERT一回じゃなくて1行のINSERTを何度も繰り返したら遅くなるからな
それと比べるなよ
871
(1): 2018/04/23(月)17:22 ID:zWK+uIrS(3/3) AAS
>>868
やってみるから、フィールド数、フィールド長とレコード数教えれ
あと配列のデータどう用意するのかと、比較するクエリの元データどうすのかも

とうぜんACCESSと対象DBエンジンとADOかDAOのバージョンも明示してくれよ

で、ループまわして1レコードずつ.AddNewして.Updateするんだな

これでほんとにVBAが速いならちょっとACCESS使うの考えるわ
872: 2018/04/25(水)22:44 ID:dGu0vJMQ(1) AAS
>>870
そんな低レベルの話はしとらん。

>>871
たぶんフィールドは40~50ぐらいじゃね?
レコードは200万ぐらい。
リモートでOracleに接続してる。
JOINで20個位のテーブル繋げてるな。
省3
873: 2018/04/26(木)20:39 ID:/vLmdzNr(1) AAS
だからどこからどうやって元データ取ってきてるんだと
リンクテーブルやリモートDBでADOの方が早いとかなら別に驚くに値せんけどな

というかお前らOpenQueryってレコード数分実行する前提で話してたのか?
874: 2018/04/27(金)17:07 ID:ash3pEtl(1) AAS
パススルーωとか使っちゃいけないTOP3じゃないか
素直にリンクテーブルにすれば良いのに
875: 2018/04/27(金)23:22 ID:jiI6PjPI(1) AAS
パススルーって駄目なの?
リンクテーブルは話にならないくらい遅くてパススルーのが全然早かったんだが。
876: 2018/04/28(土)15:07 ID:6AYZ4JmZ(1) AAS
ケースバイケース
たいていの場合、リンクテーブルに対する操作よりはSQL飛ばすほうが早いとは思うけどな
パススルーが使っちゃいけないTOP3とか初めて聞いたわ
877
(2): 2018/05/09(水)09:34 ID:OAputzVD(1/2) AAS
keydownイベントからのキー取得ではなくて、
OnKeyDownイベントからキーを取得する方法がわかりません。
Me("テキストボックス"& i).OnKeyDown = "=get_Key(" & this? & ")"
ご教授お願いします。
878: >>877 2018/05/09(水)17:09 ID:OAputzVD(2/2) AAS
レスが付かないので別の掲示板に移動します。
879: 2018/05/11(金)06:01 ID:sj29e99C(1) AAS
>>877
OnKeyDownイベントを知らなくてすまん。
880: 2018/05/11(金)09:03 ID:hWQk+urq(1) AAS
Excel で JavaScript も扱える様になるらしいね
881
(2): 2018/05/16(水)14:07 ID:aP5Z4SKQ(1/2) AAS
業務用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.
て書いてあってヤメレって書いてあるのになんでやりまくるのですかね?
882: 2018/05/16(水)14:57 ID:Ml4MG34X(1) AAS
subの代わりにしてんじゃないの
883: 2018/05/16(水)18:06 ID:xULU+qSI(1/2) AAS
>>881
しまった戻り値無いfunction俺も作ってた
動くから別にいいやって感じだった
884
(1): 2018/05/16(水)19:24 ID:DzLb+Dky(1) AAS
業務でプログラム組むような場合は、コーディングスタイルが指定されてる事が多いんだよ

正確には戻り値のないFunctiionじゃなくて、戻り値を無視してるだけだけどな
885: 2018/05/16(水)20:47 ID:xULU+qSI(2/2) AAS
functionとsubはcallが要るかどうかの違いだと思ってた。
886: 2018/05/16(水)23:07 ID:aP5Z4SKQ(2/2) AAS
可読性が低下する以外のデメリットは無いんでしょうかね?
個人的には出番のない変数は目障りなんですけどね。
887: 2018/05/17(木)00:12 ID:e2hshpiX(1) AAS
呼び出しネストの限界がFunctionのほうが浅いってデメリットがあるはず
呼び出しに必要なスタック領域が違うから
昔だれかが実測してたな。まあ再帰でよっぽどのことやらんと問題ないんじゃね

SubをFunctionにして可読性が落ちるとか、それ関数の命名に問題がある気がするがな
888: 2018/05/17(木)08:14 ID:JDzFkPHQ(1) AAS
戻り値ある前提で組んでるんでしょ。
エラー処理等で単に関数が失敗か成功かを返すとか。
後で作ろうとしてたけどグダグダになって無しになっちゃうとか。
889: 2018/05/17(木)11:23 ID:eM4CBQj1(1/2) AAS
後でやろうとしてやめちゃうってのは非常に大変頻繁によくあることだからね。
890
(1): 2018/05/17(木)12:28 ID:HY+Xmele(1/2) AAS
>>881
呼び出し側でいちいち call 書くの面倒だから
891: 2018/05/17(木)13:35 ID:vSfZvvAw(1/3) AAS
>>890
FunctionもSubもCallを書かなくても呼び出せすので、理由にならないと思います。
個人的には、Callが書いてないと唐突に見慣れない文が出現するので驚いちゃいます。馴れれば、労力の軽減になるのかな?
892
(1): 2018/05/17(木)13:53 ID:HY+Xmele(2/2) AAS
call 書かないと () 付かないだろ
() 付かないから知らない文が出て来たと思ってしまう
() 付ければ関数だと判るが call 書かないといけないって話
893
(1): 2018/05/17(木)15:12 ID:vSfZvvAw(2/3) AAS
>>892
済みません。よくわかりませんのでかみ砕いておしてもらえますか?
Callと括弧がペアで必要なのは理解しています。
もちろん、CALLなし、括弧なしでFunctionもSubも呼び出せるのも知っています。
両者の呼び出しの記法が全く同じで、唯一の例外が
lngSum=AddNumbers(10,20)
等の場合ということも知っています。
894: 2018/05/17(木)15:32 ID:vSfZvvAw(3/3) AAS
>>884
こんな感じですかね?
SUBは使わないのが基本?
外部リンク[php]:www.atmarkit.co.jp
↑でも結局解決していませんね。
895: 2018/05/17(木)17:22 ID:eM4CBQj1(2/2) AAS
つい全文読んじゃったよ
いろんな考えの人がいるんだね
896
(1): 2018/05/19(土)13:29 ID:CLRFNNLm(1) AAS
>>893
えっcallなしで呼び出せるの?知らない事がたくさんあるなあ
897: 2018/05/19(土)13:36 ID:hVWJ7ayQ(1) AAS
>>896
英語の本にはちゃんと書いてあるんですよね。私はVBSの本で知りました。
898: 2018/05/23(水)19:16 ID:Au5e7VGg(1) AAS
僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』

BHZ67
1-
あと 104 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.022s