[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 02/26 17:50 / Filesize : 273 KB / Number-of Response : 1044
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Access VBA 質問スレ Part1



1 名前:デフォルトの名無しさん mailto:sage [2012/02/06(月) 22:53:46.88 .net]
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
toro.2ch.net/test/read.cgi/tech/1327763113/l50


892 名前:851,853 mailto:sage [2018/04/14(土) 21:39:02.03 ID:criYFAGW.net]
>>853さん
試しに、フォームと画像を用意して作ったら、点滅しました!
>>855さん
この文でも点滅しました!
>>856さん
Falseが0でTrueが-1なのですね!

ご回答ありがとうございました。
解決しました!

893 名前:デフォルトの名無しさん [2018/04/15(日) 10:38:49.74 ID:E1b18XLI.net]
>Falseが0でTrueが-1なのですね!

そうだっけ?

894 名前:デフォルトの名無しさん mailto:sage [2018/04/15(日) 12:40:33.57 ID:VXOW+WoG.net]
Access で画像を点滅する?

そんなの普通は、JavaScript, jQuery とかだろ

895 名前:デフォルトの名無しさん mailto:sage [2018/04/15(日) 22:05:01.30 ID:4uH7KTiu.net]
ここは Access の質問スレですよ

896 名前:デフォルトの名無しさん [2018/04/21(土) 00:22:50.08 ID:IpoNn3EX.net]
10万件以上の大量レコードを追加するインサート処理をクエリを作成してDocmd.OpenQueryでやっているが時間が1分以上かかる
この処理をモジュールにADO、もしくはDAOでインサート処理を記述したら、Docmd.OpenQueryより早くなるかな?

897 名前:デフォルトの名無しさん [2018/04/21(土) 12:05:09.74 ID:M/Q9a6+d.net]
VBAで書くと数倍遅くなるんじゃね?
Cからなら速いかも知れん

898 名前:デフォルトの名無しさん mailto:sage [2018/04/21(土) 14:39:22.47 ID:JSWmVJf3.net]
たぶんクエリのほうが遥かに速い

899 名前:デフォルトの名無しさん [2018/04/21(土) 16:21:47.73 ID:Zke6MJB8.net]
OpenQueryをCから実行

900 名前:デフォルトの名無しさん mailto:sage [2018/04/21(土) 17:48:56.41 ID:e0mRRnZY.net]
BULK INSERT は?

そもそも、INSERT文は速くならない!



901 名前:デフォルトの名無しさん mailto:sage [2018/04/22(日) 14:54:13.01 ID:QBM3hGX3.net]
10万が大量かどうかという問題も有るがRecordset + AddNewの方が速いと聞いたし、実際俺が組んだ場合も明らかに早いんだが。

状況にもよるかもしれんけど。

902 名前:デフォルトの名無しさん mailto:sage [2018/04/23(月) 02:01:29.71 ID:zWK+uIrS.net]
そもそもOpenQueryでどんなクエリ流してインサートしてるかわからんのに比較にならんわ

903 名前:デフォルトの名無しさん mailto:sage [2018/04/23(月) 02:08:10.01 ID:zWK+uIrS.net]
>>866
例えば単純な追加クエリや、INSERT SELECTするSQL発行するより
1件ずつAddNewして(どこかから値持ってきて)1カラムずつ値セットするほうが早いっての?
どこで聞いた話だそれ?

904 名前:デフォルトの名無しさん mailto:sage [2018/04/23(月) 09:13:20.51 ID:/uUuSWda.net]
やってみてから言ってくれ。
俺の場合は実際早かった。

俺の場合は1カラムずつじゃなくてフィ―ルド名の配列と値の配列でAddNewだけど、たぶん1カラムずつセットしてUpdateでも早いんじゃないかな。

905 名前:デフォルトの名無しさん mailto:sage [2018/04/23(月) 09:41:02.27 ID:Yo1LL5su.net]
そんなあほな

906 名前:デフォルトの名無しさん [2018/04/23(月) 15:45:02.07 ID:YMq7Ch8w.net]
SQLでもINSERT一回じゃなくて1行のINSERTを何度も繰り返したら遅くなるからな
それと比べるなよ

907 名前:デフォルトの名無しさん mailto:sage [2018/04/23(月) 17:22:09.14 ID:zWK+uIrS.net]
>>869
やってみるから、フィールド数、フィールド長とレコード数教えれ
あと配列のデータどう用意するのかと、比較するクエリの元データどうすのかも

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

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


これでほんとにVBAが速いならちょっとACCESS使うの考えるわ

908 名前:デフォルトの名無しさん mailto:sage [2018/04/25(水) 22:44:48.30 ID:dGu0vJMQ.net]
>>871
そんな低レベルの話はしとらん。

>>872
たぶんフィールドは40~50ぐらいじゃね?
レコードは200万ぐらい。
リモートでOracleに接続してる。
JOINで20個位のテーブル繋げてるな。
ADO使ってる。

パススルーのSELECTクエリ+INSERTじゃ永遠に

909 名前:終わらない感じが20分程度で取得出来るようになった。

「access insert addnew 速度」でクグってみればけっこうAddNewの方が早い話が見つかるぞ。
[]
[ここ壊れてます]

910 名前:デフォルトの名無しさん mailto:sage [2018/04/26(木) 20:39:25.51 ID:/vLmdzNr.net]
だからどこからどうやって元データ取ってきてるんだと
リンクテーブルやリモートDBでADOの方が早いとかなら別に驚くに値せんけどな

というかお前らOpenQueryってレコード数分実行する前提で話してたのか?



911 名前:デフォルトの名無しさん [2018/04/27(金) 17:07:36.05 ID:ash3pEtl.net]
パススルーωとか使っちゃいけないTOP3じゃないか
素直にリンクテーブルにすれば良いのに

912 名前:デフォルトの名無しさん mailto:sage [2018/04/27(金) 23:22:48.36 ID:jiI6PjPI.net]
パススルーって駄目なの?
リンクテーブルは話にならないくらい遅くてパススルーのが全然早かったんだが。

913 名前:デフォルトの名無しさん mailto:sage [2018/04/28(土) 15:07:07.82 ID:6AYZ4JmZ.net]
ケースバイケース
たいていの場合、リンクテーブルに対する操作よりはSQL飛ばすほうが早いとは思うけどな
パススルーが使っちゃいけないTOP3とか初めて聞いたわ

914 名前:デフォルトの名無しさん [2018/05/09(水) 09:34:09.66 ID:OAputzVD.net]
keydownイベントからのキー取得ではなくて、
OnKeyDownイベントからキーを取得する方法がわかりません。
Me("テキストボックス"& i).OnKeyDown = "=get_Key(" & this? & ")"
ご教授お願いします。

915 名前:>>877 mailto:sage [2018/05/09(水) 17:09:04.61 ID:OAputzVD.net]
レスが付かないので別の掲示板に移動します。

916 名前:デフォルトの名無しさん mailto:sage [2018/05/11(金) 06:01:03.99 ID:sj29e99C.net]
>>878
OnKeyDownイベントを知らなくてすまん。

917 名前:デフォルトの名無しさん mailto:sage [2018/05/11(金) 09:03:43.55 ID:hWQk+urq.net]
Excel で JavaScript も扱える様になるらしいね

918 名前:デフォルトの名無しさん mailto:sage [2018/05/16(水) 14:07:17.01 ID:aP5Z4SKQ.net]
業務用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.
て書いてあってヤメレって書いてあるのになんでやりまくるのですかね?

919 名前:デフォルトの名無しさん mailto:sage [2018/05/16(水) 14:57:23.49 ID:Ml4MG34X.net]
subの代わりにしてんじゃないの

920 名前:デフォルトの名無しさん mailto:sage [2018/05/16(水) 18:06:12.59 ID:xULU+qSI.net]
>>882
しまった戻り値無いfunction俺も作ってた
動くから別にいいやって感じだった



921 名前:デフォルトの名無しさん mailto:sage [2018/05/16(水) 19:24:53.85 ID:DzLb+Dky.net]
業務でプログラム組むような場合は、コーディングスタイルが指定されてる事が多いんだよ

正確には戻り値のないFunctiionじゃなくて、戻り値を無視してるだけだけどな

922 名前:デフォルトの名無しさん mailto:sage [2018/05/16(水) 20:47:56.46 ID:xULU+qSI.net]
functionとsubはcallが要るかどうかの違いだと思ってた。

923 名前:デフォルトの名無しさん mailto:sage [2018/05/16(水) 23:07:53.34 ID:aP5Z4SKQ.net]
可読性が低下する以外のデメリットは無いんでしょうかね?
個人的には出番のない変数は目障りなんですけどね。

924 名前:デフォルトの名無しさん mailto:sage [2018/05/17(木) 00:12:37.33 ID:e2hshpiX.net]
呼び出しネストの限界がFunctionのほうが浅いってデメリットがあるはず
呼び出しに必要なスタック領域が違うから
昔だれかが実測してたな。まあ再帰でよっぽどのことやらんと問題ないんじゃね

SubをFunctionにして可読性が落ちるとか、それ関数の命名に問題がある気がするがな

925 名前:デフォルトの名無しさん mailto:sage [2018/05/17(木) 08:14:31.45 ID:JDzFkPHQ.net]
戻り値ある前提で組んでるんでしょ。
エラー処理等で単に関数が失敗か成功かを返すとか。
後で作ろうとしてたけどグダグダになって無しになっちゃうとか。

926 名前:デフォルトの名無しさん mailto:sage [2018/05/17(木) 11:23:10.83 ID:eM4CBQj1.net]
後でやろうとしてやめちゃうってのは非常に大変頻繁によくあることだからね。

927 名前:デフォルトの名無しさん [2018/05/17(木) 12:28:55.01 ID:HY+Xmele.net]
>>882
呼び出し側でいちいち call 書くの面倒だから

928 名前:デフォルトの名無しさん mailto:sage [2018/05/17(木) 13:35:45.45 ID:vSfZvvAw.net]
>>891
FunctionもSubもCallを書かなくても呼び出せすので、理由にならないと思います。
個人的には、Callが書いてないと唐突に見慣れない文が出現するので驚いちゃいます。馴れれば、労力の軽減になるのかな?

929 名前:デフォルトの名無しさん [2018/05/17(木) 13:53:44.02 ID:HY+Xmele.net]
call 書かないと () 付かないだろ
() 付かないから知らない文が出て来たと思ってしまう
() 付ければ関数だと判るが call 書かないといけないって話

930 名前:デフォルトの名無しさん mailto:sage [2018/05/17(木) 15:12:43.90 ID:vSfZvvAw.net]
>>893
済みません。よくわかりませんのでかみ砕いておしてもらえますか?
Callと括弧がペアで必要なのは理解しています。
もちろん、CALLなし、括弧なしでFunctionもSubも呼び出せるのも知っています。
両者の呼び出しの記法が全く同じで、唯一の例外が
lngSum=AddNumbers(10,20)
等の場合ということも知っています。



931 名前:デフォルトの名無しさん mailto:sage [2018/05/17(木) 15:32:30.96 ID:vSfZvvAw.net]
>>885
こんな感じですかね?
SUBは使わないのが基本?
www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=47673&forum=36
↑でも結局解決していませんね。

932 名前:デフォルトの名無しさん mailto:sage [2018/05/17(木) 17:22:26.67 ID:eM4CBQj1.net]
つい全文読んじゃったよ
いろんな考えの人がいるんだね

933 名前:デフォルトの名無しさん mailto:sage [2018/05/19(土) 13:29:25.00 ID:CLRFNNLm.net]
>>894
えっcallなしで呼び出せるの?知らない事がたくさんあるなあ

934 名前:デフォルトの名無しさん mailto:sage [2018/05/19(土) 13:36:56.85 ID:hVWJ7ayQ.net]
>>897
英語の本にはちゃんと書いてあるんですよね。私はVBSの本で知りました。

935 名前:デフォルトの名無しさん [2018/05/23(水) 19:16:19.68 ID:Au5e7VGg.net]
僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』

BHZ67

936 名前:デフォルトの名無しさん mailto:sage [2018/05/24(木) 10:37:30.53 ID:cPlRxlDn.net]
BHZ67

937 名前:デフォルトの名無しさん mailto:sage [2018/05/24(木) 21:31:25.23 ID:fKzQ9ZgX.net]
ありがとう、僕も幸せになります

938 名前:デフォルトの名無しさん mailto:sage [2018/06/13(水) 13:33:14.15 ID:jDAL4HLn.net]
全モジュールをExportするコードがネットにあったので試したら、0TESTModuleという名前のモジュールでエラーになった。0TESTに書き換えたら通った。
予約語かと思ったけど、そんなリスト見つからない。モジュールに名前にModuleが含まれていると失敗するものなの?
ちなみに使ったコードは↓
https://stackoverflow.com/questions/16948215/exporting-ms-access-forms-and-class-modules-recursively-to-text-files

939 名前:デフォルトの名無しさん mailto:sage [2018/06/29(金) 23:41:22.03 ID:Ur5E76UH.net]
学生はaccessの勉強してないよね。既存の社内システムメンテナンスできる人を募集してるけど応募が無い。
accessなんて社会人になってから仕事の合間に覚える人がまれにいる、程度のものなのかな。

940 名前:デフォルトの名無しさん mailto:sage [2018/06/30(土) 00:22:45.41 ID:2tzAZf7R.net]
そもそもOfficeのPro版がほとんどの市販PCに載ってないから触れたことすらなかった



941 名前:デフォルトの名無しさん [2018/06/30(土) 12:32:46.83 ID:QJJEkoJ9.net]
大学はFileMakerすすめるからな

942 名前:デフォルトの名無しさん [2018/06/30(土) ]
[ここ壊れてます]

943 名前:22:27:35.34 ID:XUZKNvMV.net mailto: >>903
給料が安いから応募がないんじゃないの?

いくらで募集なのか知らないが、派遣の求人だと
社内システム作れる人だと時給2100円前後という印象だなAccessは
(高くても2300円くらいか)

だから社内システムメンテ出来る人は普通の会社には行かないのでは
そこまで出来るなら専門業者で働いた方がずっと稼げるだろう
[]
[ここ壊れてます]

944 名前:デフォルトの名無しさん mailto:sage [2018/06/30(土) 23:30:30.56 ID:D2LAG+Ct.net]
人にもよるだろ。
俺の印象では3000円弱ぐらいまではいく。

945 名前:デフォルトの名無しさん mailto:sage [2018/07/01(日) 22:59:11.58 ID:zfW8OWzE.net]
>>904
今は単品で15,000円位だから、コスパ良い開発環境だと思うのだが。

946 名前:デフォルトの名無しさん mailto:sage [2018/07/02(月) 11:07:23.80 ID:kZ0RH16R.net]
VBAで自動メンバー表示できるVBE以外のエディタってあるのかな?

947 名前:デフォルトの名無しさん mailto:sage [2018/07/04(水) 06:14:38.14 ID:0ZnatSkO.net]
VBS のエディタが使えないかな。

948 名前:デフォルトの名無しさん [2018/07/04(水) 22:00:33.68 ID:gFgZc5FG.net]
OH1

949 名前:デフォルトの名無しさん mailto:sage [2018/07/04(水) 22:52:05.24 ID:SBPTcvBw.net]
>>910
vbseditで試したけどダメだった
emacsで成功した人がいたのでWIN用emacsインスコしてみた
この後は面倒くさいからあしたやるemacsはいろいろ出来てすごいと言うことが少し分かったわ

950 名前:デフォルトの名無しさん mailto:sage [2018/07/04(水) 23:17:14.61 ID:uOrTSuCX.net]
VS CodeにVBA用の拡張があったはず
ふつうのVSにも探せばあるかもな



951 名前:デフォルトの名無しさん mailto:sage [2018/07/05(木) 04:54:44.26 ID:/W/cgvJ/.net]
VBE ではないエディタが欲しい場面とは?良かったら教えて。

952 名前:デフォルトの名無しさん mailto:sage [2018/07/05(木) 10:21:34.29 ID:6LeJvB+6.net]
>>913
VSCの奴は2つ入れたけど,オートコンプリートはできるけど,自動メンバー表示は出来ないですね.

>>914
一般的なエディタと比べると余りにもVBEが低機能だからですね.
たとえばコードフォールディングをしたいし,行番号も見たいけど,出来ないですからね.ズームが出来ないのも案外不便.

953 名前:デフォルトの名無しさん mailto:sage [2018/07/05(木) 23:08:09.61 ID:pNcP8vSm.net]
フォームでマウスホイールをコロコロしてレコードを移動させるプログラムを教えていただけませんか?

954 名前:デフォルトの名無しさん mailto:sage [2018/07/10(火) 21:58:48.67 ID:U+UpIg0Q.net]
ソース連結の単票フォームなら、何にもしなくてもホイールコロコロでページパタパタ出来るけど
そういうのとは違うのか  或いは、制作者が敢えて無効にしてるのを有効化したいのか
或いは、帳票フォームの上下・・ これもホイール効くか、、 シーンを限定してもわらないと

955 名前:デフォルトの名無しさん mailto:sage [2018/07/11(水) 04:54:43.98 ID:UzCikUyf.net]
>>915
913です。VBE良くできてるな便利だなと思って使ってました。もっと捗るエディタも有るんですね。

956 名前:デフォルトの名無しさん mailto:sage [2018/07/11(水) 06:04:47.59 ID:ejJItOxX.net]
>>918
ネット上にはVBEを賞賛する声は余り見ませんね。悪口は沢山見ます。
emacsをインスコしてみましたが、Windows7 64bitではダメでした。
emacsならやりたいことが全部出来るはずですが、lisp書けないから悲しいです。

957 名前:デフォルトの名無しさん mailto:sage [2018/07/22(日) 19:25:52.08 ID:fTZbDOvh.net]
質問です
UPDATEでテーブルを一斉更新する際に、
「Aさん」「Bさん」「Cさん」のようなデータを
繰り返しで連番のように入力させる手段は無いのでしょうか?
連番のような数値型は出来るようなのですが、
文字列で実現する方法が分からないです

目的は出勤している人間(5名程度)に
難易度にムラがある案件(200件程度)を均等・公平に
割り付けるためです

お手数をおかけしますが、どうかご教授ください
よろしくお願いします

958 名前:デフォルトの名無しさん mailto:sage [2018/07/23(月) 00:04:34.46 ID:2H/uT7qC.net]
一度連番を振ってその後に「連番 mod 3 = 0」をAさん、
「連番 mod 3 = 1」をBさん、連番 mod = 2」をCさん
っていうようにすれば出来なくもないか…
でもスマートじゃないですし、処理に時間がかかりそうですね

959 名前:デフォルトの名無しさん mailto:sage [2018/07/23(月) 06:42:41.53 ID:Aoeea3bS.net]
>>920
解答ではありません。
私ならexcelにエクスポートして手作業でautofill してインポート。またはvbaで一件ずつ読み書き。
Sqlでどうするかわかったら教えてください。

960 名前:デフォルトの名無しさん mailto:sage [2018/07/23(月) 10:05:37.58 ID:86GO4HnW.net]
連番(数値型)を繰り返し入力させる方法が分かるのなら、
1=Aさん、2=Bさん、…っていうテーブル用意しておいて、
連番振ったあと更新クエリで文字列を更新させるのは駄目ですか?



961 名前:デフォルトの名無しさん [2018/07/23(月) 10:21:18.69 ID:eU1p7hr8.net]
autoincrement

962 名前:デフォルトの名無しさん mailto:sage [2018/07/27(金) 08:00:42.36 ID:G5saNUly.net]
20人程度が1つのテーブルにそれぞれ10分間隔くらいでUPDATE INSERTをしているんですが、突然テーブルが開けなくなりました
「他者が開いています」というメッセージが出て開くことやコピーすら出来なくなりました

対策やこの症状が出た時の対処方法はないのでしょうか?

フロントエンドとしてユーザーの数だけUI用のAccessファイルを準備して、
バックエンドはテーブル1つだけのAccessファイルを置いています

963 名前:デフォルトの名無しさん mailto:sage [2018/07/27(金) 12:49:22.89 ID:ASV/JfNN.net]
そうなる前に、誰かがなんかのエラーを発してるはず
或いはエラーを殺しちゃってるかどうか
大概マズイことには口を噤むのが社畜の習い性

エラーにならないよう対策するか、エラー時に対策するか

コピーすらできないなら、サーバー側での対策として
バックアップ時に戻すか
そのファイルさえ救出出来たら修復できるんだろうけど

964 名前:デフォルトの名無しさん mailto:sage [2018/07/27(金) 13:38:08.89 ID:rdFKIS0q.net]
共有数の制限の気がするけど
そのバックエンドのアクセスファイルはどこでどうやって共有してるんだよ

965 名前:デフォルトの名無しさん mailto:sage [2018/07/27(金) 17:29:47.26 ID:hf+c8Fmp.net]
919です
返答が遅くなってしまい申し訳ありません

>>922
解決しました
元々テーブルに連番が振ってあったので、それを利用して
sqlのswitch文とmodを使ってます
リストボックスで選択した担当者を配列に格納して
ubound関数やらを使ってvbaでsqlを生成しました

switch id mod i
0:Aさん
1:Bさん
2:Cさん
3:Dさん

って感じのイメージです

>>923
週休者には割り当てたくなかったので上記方法で解決しました

966 名前:デフォルトの名無しさん mailto:sage [2018/07/27(金) 17:35:57.88 ID:hf+c8Fmp.net]
>>926
先日は事前に取っておいたバックアップまでロールバックして対処しました
未だにエラーの原因が分からないので
不具合が起きた時の対策とバックアップ頻度を上げるような
業務フロー(タイマー関数含む)を追加しようと思います

開けなくなったファイルは日を跨いだら開けるようになりました
恐らく誰かが気づかずにバックグラウンド掴んでる状態だったんだと思います

>>927
特にオプションをいじっていないaccdbを共有サーバに
そのまま置いてる状態です
データを取得するのはサーバのバックエンドテーブルを
ローカルファイル(フロントエンド)にコピーして
ローカルで完結して参照しています
更新や追加する時だけバックエンドのテーブルに
UPDATEとINSERTをしています

967 名前:デフォルトの名無しさん mailto:sage [2018/08/11(土) 16:51:32.08 ID:/3QviRkj.net]
質問です。
分割フォームの
分割フォームデータシートプロパティを
VBAから操作できる方法がありますでしょうか?
ご教授お願い致します。

968 名前:デフォルトの名無しさん mailto:sage [2018/08/11(土) 18:04:27.51 ID:MwiIaP9n.net]
具体的なプロパティもわからんしお休みなのでパソコンも手元にないけど検索したらsplitformsize のvba コードがあるから何らかの操作は出来るんでないの?お盆モードの適当コメントですまぬ。

969 名前:929 mailto:sage [2018/08/11(土) 18:45:39.43 ID:/3QviRkj.net]
>>931さん

ありがとうございます!
splitform vbaで調べていたら見つかりました!!
うれしいです!

Private Sub コマンド11_Click()

If Forms("test").SplitFormDatasheet = acDatasheetReadOnly Then
Forms("test").SplitFormDatasheet = acDatasheetAllowEdits
Forms("test").コマンド11.Caption = "過去のデータを編集不可にします。"
Else
Forms("test").SplitFormDatasheet = acDatasheetReadOnly
Forms("test").コマンド11.Caption = "過去のデータを編集可能にします。"
End If

End Sub

ありがとうございます!!

970 名前:デフォルトの名無しさん mailto:sage [2018/08/23(木) 22:05:56.98 ID:VOAIsull.net]
サイズの限界まで巨大化しているフォームを改造して、様々なコントロール類をタブコントロール上に配置しようと考えています。
元のフォーム上のコントロール類をコピーしてタブコントロール上にペーストしたまでは良かったのですが、イベントプロシジャーがごっそり抜け落ちています。コマンドボタンを押してもなにも始まらない状態です。
イベントプロシジャーを保持したままコントロールをコピペする方法はありますか?



971 名前:デフォルトの名無しさん mailto:sage [2018/08/23(木) 22:21:39.28 ID:VOAIsull.net]
解決しました。
https://bytes.com/topic/access/answers/688028-controls-cut-paste

972 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 06:25:14.72 ID:zBeCnEZ1.net]
>>934
良かったね。
俺はVBA コードを頑張ってコピーしてるのでよかったら解説下さい。えーごわからないので。翻訳機能?あの人たちとは話が合わん!

973 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 09:58:42.20 ID:IIPiSmN7.net]
Accessの本はいろいろ買ったけど、良書だなあと感心したのはほとんどが未翻訳の洋書でした。
谷尻、緒方、葛西も和書としては悪くないのですが、洋書と比較すれば月とスッポンです。
技術書の英語は辞書とgoogle翻訳でだいたいなんとかなりますよ。
たまに文学的表現があってイラッとしますけど、だいたいが簡単明瞭です。

974 名前:デフォルトの名無しさん [2018/08/24(金) 10:46:31.53 ID:jVqNqoKW.net]
すいません質問です。オフィス365です。
手動で空のサブレポートをレポートに配置しました。これをVbaコード でコピーする方法を教えてくださいませ。

975 名前:デフォルトの名無しさん mailto:sage [2018/08/30(木) 13:16:49.85 ID:onaqxfsR.net]
すみません、質問させてください。
ExcelからAccessの特定のフォーム
を閉じるとき、
DoCmd.Close acForm, "フォーム名"
で入れると、おそらくacFormがAccessVBAの引数のためか、
エラーが出てしまいます。
何か解決方法があればご教授よろしくお願いします。

976 名前:デフォルトの名無しさん [2018/08/30(木) 13:20:53.05 ID:S/vwwZyF.net]
アプリが違うからOLEとかActiveXObject使うんでは

977 名前:デフォルトの名無しさん mailto:sage [2018/08/30(木) 14:29:11.04 ID:4drhoSMA.net]
>>938
acForm=2なので、acFormじゃなく直接2を指定してみると上手く行くかも

DoCmd.Close 2, "フォーム名"
↑でやってみて

978 名前:デフォルトの名無しさん mailto:sage [2018/08/30(木) 16:02:05.01 ID:onaqxfsR.net]
>>939さん、939さん
ありがとうございます。
939さんの方法でいけました。
ありがとうございますm(_ _)m
番号で指定する方法があったのですね。
感謝です。

979 名前:デフォルトの名無しさん mailto:sage [2018/08/30(木) 23:00:19.83 ID:NGm4WU4A.net]
Access.AcObjectType.acForm が 2

980 名前:デフォルトの名無しさん mailto:sage [2018/09/13(木) 01:52:34.58 ID:iAlG4Fvk.net]
アホな質問ですまん。
クエリの中でクエリを複数使うクエリを作成したんだけど、これをSQLに書き直すときにエイリアスを使いたいんだけど、クエリに対するエイリアスは使えるのかな?テーブルだけかな?
実験した感じではダメそうなんだけど、どうですか?



981 名前:デフォルトの名無しさん [2018/09/13(木) 03:14:29.75 ID:liq2Qruq.net]
>>943
普通に使えるはずだが
AS付けてないとか

982 名前:デフォルトの名無しさん [2018/09/13(木) 03:15:45.30 ID:liq2Qruq.net]
DAO経由じゃないとだめだったかも

983 名前:デフォルトの名無しさん mailto:sage [2018/09/13(木) 12:56:01.88 ID:C2gZ+hmS.net]
>>943
普通に出来るはずだぞ
どういう状況でダメになってるんだ?

984 名前:デフォルトの名無しさん mailto:sage [2018/09/13(木) 13:07:05.55 ID:C2gZ+hmS.net]
>>943
サブクエリの話だよな?
自作ツールで確認したがASで普通にできてたぞ

985 名前:デフォルトの名無しさん mailto:sage [2018/09/14(金) 08:17:56.50 ID:JMy0VfN7.net]
たぶん、サブクエリじゃなくて作成済みのクエリをSQL内部のFROM句やJOIN句にテーブルのように使う時にエイリアスを使いたいという話だと思うんだが、それでも普通に使えると思う。

986 名前:942 mailto:sage [2018/09/14(金) 11:04:12.59 ID:cjIZJ/+q.net]
みんな、ごめん。使えました。
おいらがSQLビューで書くときに、どっか間違えたみたい。
クエリのエイリアスも使えるし、サブクエリでネストも出来るし、accessって凄いね。糞長いSQLを書きたくなるね。
問題は余計な括弧がいっぱいくっつくところだよね。

987 名前:デフォルトの名無しさん mailto:sage [2018/09/14(金) 12:54:33.03 ID:cjIZJ/+q.net]
またまたくだらない質問です.
UPDATEで苦労していますが,https://www.ipentec.com/document/sql-multi-record-update に書いてある
update working set value=price from products where working.name = products.name
だとエラーが出ます.試行錯誤して成功したのは
UPDATE working, products SET working.[value] = [products].[price]
WHERE (((working.name)=[products].[name]));
でした.UPDATEの述語に参照するだけのproductテーブルが書いてあるのが不可解ですね.
なんで,こんな変な書き方をするのか分かる人いますか?

988 名前:デフォルトの名無しさん [2018/09/14(金) 13:41:49.29 ID:5xDSXwp0.net]
fromが無いから

989 名前:デフォルトの名無しさん mailto:sage [2018/09/14(金) 15:43:10.38 ID:cjIZJ/+q.net]
>>951
FROMを書きました.下のようにしました.でも,演算子がありませんと怒られます.

UPDATE [working],[products]
SET [working].[value] = [products].[price]
FROM [products]
WHERE ((([working].[name])=[products].[name]));

990 名前:デフォルトの名無しさん mailto:sage [2018/09/14(金) 15:43:55.27 ID:cjIZJ/+q.net]
これも同じように怒られます.

UPDATE [working]
SET [working].[value] = [products].[price]
FROM [products]
WHERE ((([working].[name])=[products].[name]));



991 名前:デフォルトの名無しさん mailto:sage [2018/09/14(金) 18:33:15.77 ID:JMy0VfN7.net]
それだと[products].[price]の後が何だか分からん。

[products].[price]を求めるSQLをそのまま書くかJOIN使った方が良い。

UPDATE [working]
SET [working].[value] = (SELECT [products].[price]
FROM [products]
WHERE ((([working].[name])=[products].[name])));

UPDATE [working]
INNER JOIN [products]
ON [working].[name]=[products].[name]
SET [working].[value] = [products].[price];

スマホからテキトーに書いてるので間違ってたらスマン。

992 名前:デフォルトの名無しさん mailto:sage [2018/09/14(金) 20:41:59.46 ID:cjIZJ/+q.net]
>>954
上のは,更新可能なクエリであることが必要です と怒られました.
下のは成功です.ありがとうございます.

FROMを記載したコードでは出来ないというのが興味深いですね.
クエリーと一般のSQLではコードを処理する方法がかが違うんですかね?
聞きかじりですが,オプティマイザとか実行計画とか言う奴ですかね?

次はクエリを参照するUPDATEを書かないといけないのですが,テーブルならOKでクエリでは怒られるんですよね.
www.10days.org/diary/20090705.htmlとかその他いろいろヒットしますが,VBAからSQLを発行したら出来るんですかね?
とりあえず実験します.






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<273KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef