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

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
317: 2015/05/28(木)11:27 ID:fu7GUEC6(1) AAS
>>316
同じ事を言ってるようにしか見えんが
クラスとオブジェクトはどういう意味で使い分けてるんだ?
メソッドとメンバはどういう意味で使い分けてるんだ?
318: 2015/05/28(木)13:25 ID:/8nOg4qQ(2/2) AAS
馬鹿には無理
319
(3): 2015/05/28(木)18:22 ID:C/2xaBAg(1) AAS
>>315
a = [Forms]![f2]![combobox1].Value
a = Forms("f2").Controls("combobox1").Value

他フォームの値を利用する場合等は、こんな感じで書いてます
個人的にコレクション名が入った方が分かり易いのでこうしています
どちらの書き方が良いとか悪い、というのは無いので書く人次第ですね
320: 2015/05/28(木)21:06 ID:bDSn3nA4(1) AAS
ほほう、勉強になります。
321: 2015/05/29(金)05:39 ID:QOrEbIFI(1) AAS
後者の方がメタプログラミングへの可能性が感じられて良いね
322: 【豚】 2015/06/01(月)08:08 ID:SmEysG22(1) AAS
びっくりおみくじ
323: 2015/06/08(月)08:55 ID:0Vy1Z1yY(1) AAS
>>319
つまりどちらの書き方でも
同じ値が取得出来る
324
(2): 2015/06/11(木)14:05 ID:cKv7S2xh(1/3) AAS
フォーム内のテキストボックスで教えてください。

テキストボックスに値を入れるために選択すると、0が表示されます。
空白の状態から値を入力できるようにするには、どこの設定を変えれば良いのでしょう?
325: 2015/06/11(木)14:06 ID:cKv7S2xh(2/3) AAS
>>324は非連結のテキストボックスの場合です。
326: 2015/06/11(木)14:16 ID:cKv7S2xh(3/3) AAS
>>324は解決しました。
フォームオープン時にVBAで0を設定していました。
他人のソースだったので気がつきませんでした。

スレ汚し失礼いたしました。
327
(1): !omikuji 2015/06/24(水)19:15 ID:QTgmX67K(1) AAS
>>319
クエリの抽出条件に書いてみた。
コレクション(index)の書き方ではダメだった。
328
(1): 2015/06/25(木)03:15 ID:pZAotZeg(1) AAS
>>327
そりゃVBAの構文をクエリに書いても無理でしょうに
329: 2015/06/25(木)05:46 ID:0DqbKMKe(1) AAS
>>328
そうなのですか、ビルダーで作成される以外の記述を試したかったのです。
330
(1): 2015/06/25(木)07:48 ID:tqVIvEYY(1) AAS
お試しで書いたプログラムを納品されたクライアントがかわいそう
331
(1): 2015/07/01(水)22:29 ID:r6P8NuLo(1) AAS
>>330←納品だの客だの何言ってんのこのバカ?
332: 2015/07/02(木)09:39 ID:CcSdJJgr(1) AAS
>>331
Accessでしょっぱい商売やってる、自営業のプログラマなんだろww
ハッキリ言って取るに足らない存在。
333: 2015/07/02(木)15:10 ID:2kk3aD1Z(1) AAS
ツボったω
334: 2015/07/02(木)21:31 ID:UqhUXHzI(1) AAS
俺もしょっぱい2号
335
(1): 2015/07/17(金)07:28 ID:6H2NxaAj(1) AAS
プロジェクトのテーブルに
プロジェクト番号、
作業内容Aの担当者、
作業内容Bの担当者、
作業内容Cの担当者と入力するテーブルがあり、
それとは別に工数入力テーブルで、
各担当者毎にプロジェクトに対しての作業工数を付けたいのですが
省1
336: 2015/07/17(金)12:20 ID:7dLfVbOx(1) AAS
>>335
リレーションって、工数入力テーブルのテーブルレイアウト決まってるのか?
まあ、プロジェクト番号と担当者で参照するだけなんだけど

そのプロジェクトのテーブル含めて、DB設計もうちょっとちゃんと勉強した方が良いんじゃね
337
(1): 2015/07/27(月)17:54 ID:cZFieeEU(1) AAS
VBAのソースが開けなくなる現象ってどうしたらいいの?

decompileつけても治らない

新しいファイル作ってインポートもダメ
338: 2015/07/27(月)20:40 ID:n6WPrg6a(1) AAS
押してもダメなら・・・
339: 2015/07/27(月)20:59 ID:LaMoSGUn(1) AAS
>>337
数年に一回、私もそんな目にあいます。
だいたい復旧出来ないので、バックアップ欠かさずとってます。
どうにかなるなら私も知りたいですが。
340: 2015/07/27(月)21:30 ID:FqSPmPlY(1) AAS
やっぱみんな同じ現象に悩まされてるんだね

ネットワーク共有フォルダ上だと起きやすい

ネットワーク共有フォルダ使わなきゃいいんだけど、うちの情シスが変な縛りかけるからコレしか手がないし
341
(1): 2015/07/27(月)23:01 ID:vqEIRiU+(1) AAS
ソースコードは、単なるテキストデータだろ?

それが開けないのは、
そのデバイスがバックアップ・メンテナンス中などで、
ロックされているのかも
342: 2015/07/28(火)01:08 ID:/CfsPtPn(1) AAS
壊している方は
ネットワーク上で直接開いたり
mdbをフロントとDBに別けなかったり
ほとんど同じパターンですよね

>>341
Accessを使われていない方とお見かけしました
mdbが破損するとソースも壊れる事があります
343
(3): 2015/08/01(土)02:11 ID:Gxa4R9yG(1/2) AAS
Access2010利用

Access起動時の「コンテンツを有効化にする」を押下した直後に、関数を実行する方法はあるのでしょうか?

現在は「AutoExec」マクロから「プロシージャの実行」を行い、対象の関数を実行させていますが、Access起動時の「コンテンツを有効化にする」を押下する前にマクロが実行され、プロシージャが実行出来ない旨のエラーメッセージが表示されてしまいます。

ExcelのAuto_Open関数は「コンテンツを有効化にする」押下後に、処理が始まっていたので、それをAccessでそれを実現したいと思っています。

処理内容は「Accessウィンドウの不可視化
」「メニューバーの不可視化」「対象のフォームを開く」です。
省1
344
(1): 2015/08/01(土)05:30 ID:fplyMpww(1) AAS
>>343
>処理内容は「Accessウィンドウの不可視化
>」「メニューバーの不可視化」「対象のフォームを開く」です。
それ全部マクロなしで設定でできる気がするけど

スタートアップ用のフォーム作って起動時指定して、そのフォームのプロシジャで設定してやれば良いんじゃね
345: 2015/08/01(土)23:31 ID:Gxa4R9yG(2/2) AAS
>>344
ありがとうございます
確かにマクロを使用せずに設定出来ました
更にFormLoadを利用したところ「コンテンツを有効化にする」押下後に動作しました

今まで業務ではExcelばかり利用していましたので、Accessのオプションの多さ、分かりづらさ(自身の無知に起因する事が多いですが…)に戸惑っています
Accessを使いこなせる人は本当にすごいと思いました
346: 2015/08/02(日)05:14 ID:ZRhH79SV(1/2) AAS
ExcelのVBAはExcelというアプリケーションを操作するためのものだけど
AccessのVBAはAccessを使ってアプリケーションを作成するためのものだからな
347
(1): 2015/08/02(日)08:10 ID:u4JV0/NP(1) AAS
2行目”〜Accessというデータベースを操作する〜”のほうが名言ぽくなりませんか
(添削ではありません。提案です)
348
(1): 2015/08/02(日)08:29 ID:dTRZmQiN(1) AAS
>>347
そうは全く思わない
VBAはデータベース操作のためのものではない
あくまでアプリ作成のためのもの
349: 2015/08/02(日)11:40 ID:GsLj6RLA(1/2) AAS
>>348
確かにExcelとは違って、アプリケーションを作っている感覚が非常に強いですね
Access感を感じさせないUIにする事も簡単でしたら
そのせいで、フォームのUIを美しくする為に時間がかかってしまいますw
350: 2015/08/02(日)11:42 ID:GsLj6RLA(2/2) AAS
×:Access感を感じさせないUIにする事も簡単でしたら

○:Access感を感じさせないUIにする事も簡単でした
351: 2015/08/02(日)11:55 ID:LbLYBwwY(1) AAS
データベースの操作もお手軽に出来て便利。
アプリ開発環境としてはどうなの?
私は零細企業の社内システム開発用として便利に使わせて頂いてます。
352: 2015/08/02(日)12:37 ID:Uy/1MbzZ(1) AAS
両者のVBAはデフォルトの参照設定が違うだけですよ
VBA以外は言われている通りAccessの方がはるかに強力ですね
Excelはユーザーフォームくらいです

特殊なレポート印刷なんかは無理してAccessでゴリゴリ書くより
Excelで書式作ってAccessから流した込んだ方が楽だし
データ操作ならAccessじゃないとキツイし
それぞれ得意分野はありますよね
353
(1): 2015/08/02(日)21:08 ID:AR+WC9yM(1/2) AAS
今更だが >>343 はセキュリティの設定だけで回避できるんじゃ?
そもそもその「コンテンツを・・」が出ないようにすることのほうが重要なんでは?
354: 2015/08/02(日)22:38 ID:ZRhH79SV(2/2) AAS
>>353
それはアプリケーション側ではなんとも出来ないので
355
(1): 2015/08/02(日)23:04 ID:AR+WC9yM(2/2) AAS
は?  Access2010利用って書いてあるだろ? たとえそれがRuntimeだとしても
ロケーションを信頼するとかで可能だろ? 不特定多数に配布するケースでも
インストーラを調整することで「なんとも出来ない」は回避するものだろ?
毎回「コンテンツを・・」を表示させるほうがどうかしてるぞ?  そんなの誰が信用してくれるんだ?
356
(1): 2015/08/03(月)11:17 ID:2bNGPX4C(1) AAS
あれ?コンテンツ〜の話って
「プライベート ネットワーク上にある信頼できる場所を許可する] チェック ボックスをオンにして回避するって話ですか?
2010だと↑をオンにしてないと変な場所では最適化も出来なかったような
357: 2015/08/03(月)13:29 ID:cMN9HbGV(1/2) AAS
>>355
アプリケーションが自分自身の信頼性を操作するのか
そんなアプリこそ信用できんわ

>>356
べつにネットワーク上に限った話ではないと思うが
358
(1): 2015/08/03(月)16:54 ID:CU261QGz(1/2) AAS
を? MSが推奨してんのに信用できねえ てか  Accessは使ってやるけどMSの言うことは聞く耳持たねてか 偏ってるな
359: 2015/08/03(月)19:02 ID:cMN9HbGV(2/2) AAS
>>358
MSが何を推奨してるのかしらんが
アプリケーションの意味が通じてないのかね
アプリケーションを.ACCDB(.MDBでも.ACCDEでも良いけど)に置き換えて考えてみ
360: 2015/08/03(月)20:41 ID:CU261QGz(2/2) AAS
その域じゃ無いことが判ったからいいよw その域じゃない奴に諭される謂れわ無いわw
いくつかのキー・ワードで「あぁ、あのことか」って気付けないならこれ以上は時間の無駄  おまえの言うとおりでいいよw
そもそもここはAccessの板だし、おれはAccessの話をしてるんだ アプリケーションのアの字も使って無ぇw

よしんばAccessで作られた業務パッケージをアプリと呼びたいなら呼べばいいが、その業務アプリを動作させるうえで
発生するセキュアに関するメッセージはAccessの基本機能で回避できる って云ってるんだ
それを「信用できねえ」っつーんなら使わなくていいんじゃね? 世の中にはごまんと同様の機能を備えたアプリケーションが存在するだろ
Accessに拘る理由なんざこれっぱかしも無ぇだろ 俺の文章のどれがおまえの琴線に触れたか知ったこっちゃ無いが 「ごめんな」
361: 2015/08/03(月)21:08 ID:Mp/3eH1E(1) AAS
逆鱗(ぎゃくりん)
362: 2015/08/03(月)22:23 ID:C0QRYaFQ(1) AAS
runtime 2010(2013も同じ)の起動時のセキュリティ警告を出ないようにする
外部リンク[htm]:www.mkkobo.com
363
(1): 2015/08/04(火)03:50 ID:Kz/6+HRH(1) AAS
>>343で質問した者です
細かい利用環境等を書いてなかった事で迷惑をかけました
ごめんなさい

会社独自で開発したと思われる共有サーバシステム上に、accdbを置いて利用者は「読み取り専用」で利用します。(accdeは共有サーバ上では起動できません。)

なので、Access内で設定出来るオプション以外は全く自由がきかず、共有サーバ上でaccdbを開くと必ず「コンテンツを有効化にする」ボタンが表示されてしまうのです

今回の問題自体は、FormLoad関数をExcelで言うAutoOpen代わりに使う事で解決出来たと思っています

しかしAccessって、Web上で資料を探すにしても、資料が豊富なExeclVBAに比べてAccessVBAは資料が少なく、更にバージョンによって仕様が大きく変わるので大変ですね
省2
364: 2015/08/04(火)04:09 ID:JacjvlNa(1) AAS
>>363
ファイル共有のプロトコルとかによって制約あるかもしれんが
共有フォルダを信頼できる場所に追加する事は可能だぞ

ただ信頼されてないaccdb(のVBA)から、信頼できる場所を設定とか出来ないし
そんなことができたら信頼できる場所の意味がないからな
365
(2): 2015/08/05(水)15:51 ID:dmHYZv4f(1) AAS
利用環境:Access2010、Win7
現在、国内の物件情報をテーブルに入力して、出力フォームで参照出来るようにしています
テーブルのフィールドは「物件No(主キー)」「物件名」「県」「市」「区」「町」「番地」「物件情報」です

新しいレコードが増えた場合は、入力フォームから、データを入力出来るようにしようと思っています

ここでお聞きしたいのは、入力フォームで新しいレコードを登録しようとした際の「重複チェックの方法」です
物件名は、入手先の情報や、入力者の考えによって
様々な表記ゆれが生じます(例:2棟 二棟 ?棟 ?棟)
省8
366: 2015/08/05(水)16:57 ID:Bc8ICzH9(1) AAS
>>365
挙げられてますが、半角数字のみなど番地の入力制限は必須でしょうね
物件名のフリガナで番地違いもチェックされるみたいですし
十分スマートだと思いますよ

自分だったら番地まで一致した時にアラート出しますね
残りは住所or物件名でソートした物件リストに丸投げしちゃいます
367: 2015/08/05(水)17:07 ID:URaglvwf(1) AAS
>>365
月1くらいで住所は同じ、物件名が違うの重複チェックを動かしてリストに出すような運用にするとか。
難しいことをら考えずに済む。
368: 2015/08/05(水)17:23 ID:ndgPjsPh(1) AAS
なんで郵便番号のフィールドがないのか不思議
369
(1): 2015/08/05(水)22:00 ID:VP6wM0Pb(1) AAS
時代はすでに二十一世紀なんだよ いまさらフリガナでもあるまい
フィールドひとつ追加 lat,lng 緯度・経度 43.386338,144.008751 下六桁あたりで固定すれば
間違いようも無いだろ 不動産業界に身を置きながらなんでそんなことにも気付かない
マップアプリに上の数字コピペしてみりゃ、世界中の誰だって間違いようも無い

なに? じゃあ緯度・経度どうやって調べるだと? そのぐらいじぶんで調べろ 長押しするだけだ
まぁ、ゆえに危険が危ないがな  便利って物はとてつもなく不便なものにも等しいんだ 覚悟して使え

雌阿寒岳山頂が出るはずなんですけど、違う位置を示すマップアプリ有ったら教えてください 使用禁止にしますので
370: 2015/08/05(水)22:40 ID:yfcMdSNW(1) AAS
まあ、ACCESSもVBAも全く関係ない話なんだが
最終的には人間が検査しないとどうしようもないんだろうなと思う
市区町村番地あたりまではルール決めて、そこまで一致なら警告でいいんじゃね
371: 2015/08/06(木)01:30 ID:f5x8JVe4(1) AAS
すみません、郵便番号のフィールドもあります。入力し忘れていました

・1.レコード入力時に、住所関連のフィールドを利用して重複チェックを行い、ヒットした場合は警告を出す
・2.定期的にテーブル内のレコードの重複チェックをする
・3.物件の座標を利用して重複チェックをする

上記3つの案をいただいたと思いますので
1と2を組み合わせて運用したいと考えます

3の案>>369は、完全に自身の頭に無かったアイデアなので驚きました
省3
372: 2015/08/06(木)09:14 ID:/XuT1ECN(1) AAS
警告出すとかVB脳的にダサいから
郵便番号入力してヒットしたらリストボックスに表示させて
番地を半角か全角縛りにしてヒットしたらリストボックスに表示させる
リストボックスが件数ゼロなら新規入力ボタンをイナーブル
あぁ俺それ作りたい
373: 2015/08/07(金)12:16 ID:TsVm0Bt4(1) AAS
人名・地名、固有名詞系はなあ 特殊と考えたほうが無難だからな  例えば・・
吾妻 という人名のふりがなを ある人は「あづま」と入れ別の人は「あずま」と入れてしまったり
じつは「あがつま」と読みます だったり
3-11-22 という地番を三丁目11番22号 三丁目11-22だの、 宛名印刷に合わせて三丁目十一番二十二号としていたり・・
それが結構な確率で頻出するのだからやっかい

それらを一律の規律で縛るのはあまりクレバーとは言えない時代になってるような
鱸 が読めないゆとりのためには「ふりがな」が必要 ってのなら意義あるだろうけど  まあ、おれだけど
374
(1): 2015/08/11(火)19:16 ID:FwE103qy(1) AAS
フォームでFilter関数使おうと思ったら
IntelliSenseが効かなくて
無理に使おうとしてもエラーで使えず
???と思ったら
Filterプロパティとバッティングしてた。
VBA.Filterで解決したんだけど
プロパティの値ってオブジェクト変数無しでもアクセスできるのな。
375: 2015/08/11(火)23:34 ID:AWvgSxoB(1) AAS
>>374
フォームモジュールでそのフォームのプロパティならな
376
(2): 2015/08/12(水)14:59 ID:G2C7HV6B(1/2) AAS
皆様、すみません

フォームAに入力されているテキストボックスAの値(数値)を、
フォームB(データ登録用)を開いた際に自動的にテキストボックスBに入力させないのですが、どうしてもわかりません

openform 〜 , , , , acformadd で記述しています

教えていただけないでしょうか
377
(1): 2015/08/12(水)15:32 ID:Q+lcejU0(1) AAS
>>376
自動入力「させない」になってますが「させたい」って事ですよね?

Form_Load もしくは Form_Open イベントに
Me.テキストボックスB.Value = [Forms]![フォームB]![テキストボックスA].Value
もしくは >>319 みたいに
Me.テキストボックスB.Value = Forms("フォームB").Controls("テキストボックスA").Value

Load、Openどちらでも動くと思いますが、適した方を使ってください
省1
378: 2015/08/12(水)16:26 ID:G2C7HV6B(2/2) AAS
>>377

あっさりとできました
ありがとうございました

たしかにformのイベントでやるべきでしたね、思い付かなかったです
勉強になりました
379: 2015/08/12(水)18:38 ID:6lFy7xXj(1) AAS
>>376
単純に
DoCmd.OpenForm "フォームB", , , , acFormAdd
Forms!フォームB!テキストボックスB.Value = Forms!フォームA!テキストボックスA.Value
で出来ると思うけど?
380
(1): 2015/08/17(月)21:45 ID:7VERYxcQ(1) AAS
今使っているACCESSデータをPC3台で共有しようと思っています。

その場合、テーブルをサーバーPcに、フォームとクエリをクライアントPCに入れて使うと良いとのことでした。

ただいま、フォームを非連結にして、ADOでの追加や更新ができるように変更中です。

質問ですが、
すべてのフォームを非連結にするべきなのでしょうか?
データの追加更新のない、閲覧専用のフォームをネットワークトラフィックを考えて変更すべきでしょうか?

また、分割したテーブルのあるACCESSデータをNASに入れようかとも思っているのですが、PCの場合と動作に違いはでますか?(ここは単にスペックの問題でしょうか?)
省1
381
(1): 2015/08/18(火)01:04 ID:l45kMI9F(1) AAS
テーブルを外部からリンクすれば連結でいける
382
(2): 2015/08/18(火)06:18 ID:KaSAZPht(1) AAS
>>380
テーブルだけのファイルをネット上の共有フォルダに置いて、それのリンクテーブルとその他のオブジェクトが入ったファイルを配布して使うだけ。
フォームの作り直しはしなくて良いと思います。
383: 2015/08/18(火)19:55 ID:LTr8/sln(1) AAS
>>381
>>382

ありがとうございます

今まで作ったフォームをすべて非連結にするのは難しそうなので追加更新するフォームだけにしようと思います。
384
(1): 2015/09/02(水)22:58 ID:U41rngxq(1) AAS
>>382
その他のオブジェクトの入ったファイルは複数人で開いても問題ないのでしょうか?
385: 2015/09/03(木)12:17 ID:TMANfQ/W(1) AAS
>>384
オブジェクトだけのファイルは各パソコンにコピーして使うの。
386
(3): 2015/09/09(水)20:14 ID:k4ZkuMcU(1) AAS
二次元配列からレコードにデータを入れる方法は

With Rcd
.AddNew
For i = 0 to 99
 .Fields(i).Value = x(0,i)
Next
.Update
省8
387: 2015/09/10(木)04:22 ID:t/YL/t1I(1) AAS
>>386
>地道な方法しかないんでしょうか?
地道に見えるんですね・・・。

DoCmd.TransferSpreadSheet
で、ググると
外部リンク[aspx]:msdn.microsoft.com
なるページが出てきまして、そこに・・・
省2
388
(1): 2015/09/11(金)00:19 ID:8grThG6x(1) AAS
>>386
SQL は長くなるけどパフォーマンス気にしてるなら INSERT VALUES 試してみれば?
多少は早くなるかもよ
389
(1): 386 2015/09/11(金)19:59 ID:pqg3O3xw(1) AAS
>>388
SQLがなんとか分かってきたので、今度やってみたいと思います。
ありがとうございました。
390: 2015/09/11(金)21:45 ID:HscreZA4(1) AAS
>>389
TransferSpreadSheetsもう少しがんばれ。
簡単で早いと思うよ。
387さんも言ってるけどEXCEL開く必要は無い。何ならEXCELがインストールされて無くてもインポートやリンクが可能なはず。
391
(4): 2015/09/27(日)15:21 ID:Az8/vHuw(1/3) AAS
質問させてください。
コマンドボタンをクリックしたら、フォーム上の任意の位置にコンボボックスを新規作成させたいんですが、こんな事出来ますか?
392
(1): 2015/09/27(日)15:37 ID:nsZcbsgt(1/2) AAS
似たようなことしたかったときはメニューで代用したな
393: 2015/09/27(日)15:41 ID:Az8/vHuw(2/3) AAS
>>392
詳しく
394
(1): 2015/09/27(日)15:41 ID:nsZcbsgt(2/2) AAS
右クリックでコンテキストのpopupメニューだったかな
395: 2015/09/27(日)15:55 ID:Az8/vHuw(3/3) AAS
>>394
ありがとう
けど、求めてる者と違う感じです…
396: 2015/09/27(日)15:59 ID:uZJD7NWm(1/3) AAS
ACCESSでフォームに直接新規で追加するのは難しい
非表示にしといてボタンクリックで表示させればいいんじゃないか
397: 2015/09/27(日)18:24 ID:sF3uHAKT(1/3) AAS
やぱ難しいですか…
必要に応じて、数に上限定めずコンボボックスを増やしたいので、表示/非表示の方法は望ましくないんです…

仮に無理なら…
質問を変えて、1フォーム中にコンボボックスはいくつまで設置出来ますか?
↑ググれば出そうですが、ついで質問ですいません。
1-
あと 605 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.028s